본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] S3 Access log 활성화 방법

by 알 수 없는 사용자 2023. 12. 20.

안녕하세요. 이쁜이와 멋쟁이의 "BTC_준호" 입니다. 

오늘은 S3 Access log에 대해 이야기해보겠습니다.

Amazon S3

S3 Access Logs는 S3 버킷의 access 요청에 대한 상세한 내용을 기록합니다.


사전 준비 사항

1. 권한: S3 버킷을 관리할 수 있는 IAM 권한이 필요합니다.

서버 액세스 로깅을 활성화하면 S3 콘솔이 S3 로그 전달 그룹에 대한 액세스를 포함하도록 버킷 정책을 자동으로 업데이트합니다.

2. S3버킷: S3 Access logging을 활성화하기 위해서는 두 가지 버킷이 필요합니다.

하나는 로깅을 활성화할 Source 버킷, 다른 하나는 생성된 로그 데이터를 저장할 별도의 Logging 버킷입니다.

Source 버킷과 Logging 버킷이 동일한 경우 로그가 계속해서 들어오게 되는 로깅 루프(logging loop)가 일어날 수 있으니 주의해야 합니다.


S3 Access logging 설정하기

1. S3 관리 콘솔 접속
AWS 관리 콘솔에 로그인하고 'S3' 서비스로 이동합니다.

 

2. 대상 버킷 선택
로그를 기록하고자 하는 S3 버킷을 선택합니다.


3. Access log 기능 활성화
버킷의 '속성(Properties)' 탭으로 이동합니다.
'서버 액세스 로깅(Server access logging)' 섹션을 찾아 ‘편집’>’서버 엑세스 로깅
활성화’> ‘변경 사항 저장’ 버튼을 클릭합니다.

4. 로그 파일 저장을 위한 버킷 설정

로그 파일을 저장할 대상 버킷을 지정합니다.
로그 파일에 대한 접두사(/s3-logs/)를 설정하여 로그 파일을 쉽게 식별할 수 있도록 합니다.

 

5. 설정 확인 및 저장
로그 파일의 형식과 이름 규칙을 설정할 수 있습니다. 모든 설정을 확인하고 '변경 사항 저장'을 클릭합니다.
일반적으로 액세스 로그가 설정된 후 모든 요청이 제대로 로깅되고 전달되려면 한 시간 이상 소요됩니다.


6. 로그 확인하기
Source 버킷의 객체에 엑세스 이후 Logging 버킷을 확인해보면 s3-logs파일이 자동으로 생성된 것을 확인할 수 있습니다.

s3-logs파일에 들어가면 액세스 로그가 저장되어 있습니다.


S3 log 예시

79a5 my-bucket [12/Mar/2023:14:23:45 +0000] 192.0.2.200 - 3E57427F33A59F2E REST.GET.OBJECT my-photo.jpg "GET /my-bucket/my-photo.jpg HTTP/1.1" 200 - 1243 1243 12 10 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" -

위 log는 S3 access log입니다. 아래와 같이 분석해보겠습니다.

  • 소스 IP: 192.0.2.200
  • 버킷 이름: my-bucket
  • 요청 시간: [12/Mar/2023:14:23:45 +0000]
  • 요청된 객체: my-photo.jpg
  • HTTP 메소드와 응답 상태: GET 요청으로 200 상태 코드 (성공) 응답
  • 데이터 크기: 요청된 객체의 크기는 1243 바이트
  • 요청 처리 시간: 12 밀리초
  • 리퍼러 및 유저 에이전트: 요청을 보낸 유저 에이전트는 Googlebot 

엑세스 로깅이 활성화되면, 해당 S3 버킷을 사용하는 모든 요청에 대한 정보가 로그 파일에 기록됩니다. 이로 인해 로그 데이터의 양이 상당히 많아질 수 있습니다. 
Amazon S3 버킷에서 서버 액세스 로그를 사용하는 데 따른 별도의 요금은 청구되지 않습니다. 단, 로그 파일의 일반적인 스토리지 요금이 발생합니다.

AWS S3 서버 액세스 로깅은 대부분의 요청을 기록하지만, 모든 요청이 기록되거나 전송되는 것을 보장하지는 않습니다.
요청이 실제로 처리된 후, 시간이 오래지나 전송되거나 전혀 전송되지 않을 수도 있습니다.

 

감사합니다.

댓글