Access-Logs
1 S3 Access Logs
- S3 Access Logs는 감사 목적으로 S3 버킷에 대한 모든 액세스를 기록합니다.
- 모든 계정에서 S3로 이루어진 요청, 승인 또는 거부된 요청은 다른 S3 버킷에 기록됩니다.
- 이 데이터는 데이터 분석 도구를 사용하여 분석할 수 있습니다.
2 주요 기능
2.1 모든 요청 기록
- S3 버킷에 대한 모든 요청을 기록합니다.
- 승인된 요청뿐만 아니라 거부된 요청도 기록됩니다.
- 로그 데이터는 지정된 다른 S3 버킷에 저장됩니다.
2.2 동일한 AWS 리전 내에서 로깅
- 로깅 버킷과 타겟 로깅 버킷은 동일한 AWS 리전에 있어야 합니다.
- 이는 데이터 전송 비용을 줄이고 성능을 최적화하기 위함입니다.
3 로그 형식
- 로그 형식에 대한 자세한 정보는 AWS 문서를 참조하세요.
4 주의 사항
- 로깅 버킷을 모니터링 대상 버킷으로 설정하지 마세요.
- 이는 로깅 루프를 생성하여 버킷 크기가 기하급수적으로 증가할 수 있습니다.
- 로그 데이터의 지연 발생
- S3 액세스 로그는 실시간으로 전달되지 않습니다.
- 로그 전달에는 몇 시간이 걸릴 수 있으므로 즉각적인 모니터링이 필요한 경우 다른 솔루션을 고려해야 합니다.
- CloudTrail 사용을 고려
- 로깅 상태 변경의 지연
- 버킷의 로깅 상태 변경(활성화, 비활성화, 대상 버킷 변경 등)은 즉시 적용되지 않고 최대 한 시간까지 지연될 수 있습니다.
- 이 기간 동안에는 이전 설정과 새 설정이 혼재된 상태로 로그가 생성될 수 있습니다.
5 S3 Access Logs 설정 방법 (콘솔)
- S3 Access Logs를 AWS Management Console을 통해 설정하는 단계별 과정은 다음과 같습니다:
5.1 로그 대상 버킷 생성
- AWS Management Console에 로그인하고 S3 서비스로 이동합니다.
- "버킷 만들기" 버튼을 클릭합니다.
- 로그를 저장할 새 버킷의 이름을 입력합니다 (예: "my-s3-access-logs").
- 리전을 선택합니다 (로그를 생성할 원본 버킷과 동일한 리전이어야 합니다).
- 다른 설정은 기본값을 유지하고 "버킷 만들기"를 클릭합니다.
5.2 로그 대상 버킷 권한 설정
![[Pasted image 20240821234313.png]]
- 새로 생성한 로그 대상 버킷을 선택합니다.
- "Permissions" 탭으로 이동합니다.
- "Bucket policy" 섹션에서 클릭하고 "Edit"을 선택합니다.
- 다음 정책을 추가합니다 (YOUR-BUCKET-NAME을 실제 버킷 이름으로 변경)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "logging.s3.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*"
}
]
}
5.3 원본 버킷에 로깅 활성화
![[Pasted image 20240821234420.png]]
- S3 콘솔에서 로깅을 활성화할 원본 버킷을 선택합니다.
- "속성" 탭으로 이동합니다.
- "서버 액세스 로깅" 섹션을 찾아 "편집" 버튼을 클릭합니다.
- "서버 액세스 로깅 활성화" 체크박스를 선택합니다.
- "대상 버킷" 드롭다운에서 앞서 생성한 로그 대상 버킷을 선택합니다.
- (선택사항) "대상 접두사"에 로그 파일의 접두사를 입력합니다 (예: "logs/").
- "변경 사항 저장"을 클릭합니다.
5.4 로그 확인
![[Pasted image 20240821234451.png]]
- 몇 시간 후, 로그 대상 버킷을 확인합니다.
- 지정한 접두사 (또는 루트)에 로그 파일이 생성되었는지 확인합니다.
- 로그 파일을 다운로드하여 내용을 확인할 수 있습니다.
5.5 로깅 비활성화 (필요시)
- 원본 버킷의 "속성" 탭으로 이동합니다.
- "서버 액세스 로깅" 섹션에서 "편집"을 클릭합니다.
- "서버 액세스 로깅 비활성화" 체크박스를 선택합니다.
- "변경 사항 저장"을 클릭합니다.
참고 자료