S3 Access Logs
- 감사 목적으로 S3 버킷에 대한 모든 액세스를 기록할 수 있음
- 승인 또는 거부된 모든 계정에서 S3에 대한 모든 요청은 다른 S3 버킷에 로깅되어 이후부터 분석이 가능
- 데이터 분석 도구를 이용해서 분석하거나 Amazon Athena를 사용해 분석 가능
- 사용자가 버킷에 요청을 보내고 버킷은 다른 버킷인 로깅 버킷으로의 로깅이 활성화 되어있을 때,
S3 액세스 로그를 활성화하면 로깅 버킷으로 모든 요청이 로깅됨
S3 Access Logs: Warning
- 모니터링 중인 버킷을 로깅 버킷으로 설정하면 안 됨
만약 모니터링 버킷을 로깅 버킷으로 사용하게 되면 로깅 루프가 생기게 되어 버킷의 크기가 기하급수적 증가 - 애플리케이션 버킷이면서 모든 로그를 수신하기도 하는 로깅 버킷이 있을 때,
사용자가 객체를 넣을 때마다 버킷이 자기 내부에 로깅함으로써 로깅 루프가 생성되고
새 객체에 로깅될 새 객체를 생성하고 이는 또 새 객체에 로깅되는 무한 로깅 루프가 생겨 버킷의 크기가 기하급수적 증가
그러므로 애플리케이션 버킷과 로깅 버킷은 꼭 분리해야 함
<S3 액세스 로그 실습>
- 액세스 로깅 용 버킷 생성
demo-s3-access-logs-stephane-2020으로 버킷을 생성한 후 이 버킷을 다른 버킷의 액세스 로깅 용으로 사용하도록
demo-stephane-s3-bucket-2020을 선택하고 Properties 탭에서 서버 액세스 로깅을 활성화한 후 위를 대상 버킷으로 지정
그 후 s3://demo-s3-access-logs-stephane-2020/logs/를 입력하여 모든 서버 액세스 로그가 해당 폴더 하에 저장되도록 함
+) 서버 액세스 로깅을 활성화하는 것만으로 해당 버킷이 로깅 버킷에 기록할 권한이 생기는 이유
서버 액세스 로깅을 활성화함으로써 S3 콘솔이 액세스를 S3 로그 전송 그룹에 포함하도록
버킷 액세스 제어 목록인 ACL을 자동으로 업데이트하게 되므로 S3 전송 그룹이 S3 버킷에 객체 쓰기할 권한을 가지게 됨
- 액세스 로깅 확인
활성화가 된 후 버전 목록을 켜고 coffee.jpg 파일을 선택해서 열게 되면 버킷에 약간의 트래픽을 생성한 후
한 시간에서 두 시간 정도 후에 demo-s2-access-logs-stephane 버킷에 로깅됨
해당 폴더 내에는 S3 버킷에 실행되어 온 여러 액세스 로그들이 저장되며
이를 텍스트 편집기로 열어서 내용을 확인해보면 요청 ID, 생성된 버킷, 요청 시간과 날짜, 소스 IP 주소, GET 방식 확인 분석 가능
이 후 이런 유형의 액세스 로그를 Athena를 사용해 대규모로 분석하여 승인 문제, 공격 등을 파악할 수 있음
'Cloud > AWS' 카테고리의 다른 글
[SAA] S3 사전 서명된 URL (0) | 2022.03.27 |
---|---|
[SAA] S3 복제 (리전 간 동일한 리전) (0) | 2022.03.27 |
[SAA] S3 기본 암호화 (0) | 2022.03.27 |
[SAA] S3 MFA Delete (0) | 2022.03.27 |
[SAA] AWS SDK 개요 (0) | 2022.03.23 |