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

[AWS] S3 Server Access Logging

by BTC_마루 2024. 2. 2.

안녕하세요 비티시보이즈입니다.

오늘의 주제는 Amazon S3 서버 액세스 로깅 사용 설정입니다.

 


 

S3 서버 액세스 로깅이란??

S3(Server Access Logging) 서버 액세스 로깅은 Amazon S3에서 제공하는 기능으로, S3 버킷에 저장되는 객체에 대한 모든 액세스 요청을 기록하는 기능입니다. 

 

여기서 액세스는 객체(파일)의 읽기 또는 쓰기와 관련된 모든 작업을 포함합니다.

 

사진 출처

 

- S3 서버 액세스 로깅은 S3 버킷에 대한 액세스를 기록하여 해당 버킷에 대한 액세스 패턴과 통계를 생성합니다.

- 로그는 특정 형식으로 구성되며, 로그의 각 항목은 특정 이벤트에 대한 세부 정보를 기록합니다

 

 

S3 서버 액세스 로깅을 사용하는 이유

1. 보안 감사 및 규정 준수

: S3 서버 액세스 로깅을 사용하면 누가 언제, 어떤 종류의 액세스를 했는지에 대한 기록을 생성할 수 있어서 보안 감사와 규정 준수를 강화할 수 있습니다.

 

2. 액세스 모니터링

: 로깅을 통해 버킷과 객체에 대한 액세스 패턴을 이해하고 모니터링할 수 있습니다. 이는 비정상적인 액세스를 탐지하고 대응하는 데 도움이 됩니다.

 

3. 재현 가능한 이벤트 추적

: 특정 이벤트(읽기 또는 쓰기)를 식별하고 추적하여 문제 해결 및 재현이 가능하게 합니다.

 

 

Amazon S3는 기본적으로 서버 액세스 로그를 수집하지 않습니다. 로깅을 활성화하면 Amazon S3는 선택된 대상 버킷에 소스 버킷에 대한 액세스 로그를 전송합니다. 

 

그래서 로깅용 버킷을 생성하고 해당 버킷에 액세스 로깅을 설정 해야 합니다.

 

로깅용 버킷에 대한 액세스 로깅을 자기 자신으로 설정하면 어떻게 될까요?

공식 Docs에서는 아래와 같이 설명하고 있습니다.

대상 버킷에는 서버 액세스 로깅을 활성화해서는 안 됩니다. 소스 버킷 자체를 포함하여 소스 버킷과 동일한 리전에 있는 자신의 고유 버킷에 로그를 전달할 수 있습니다. 
그러나 원본 버킷에 로그를 전송하면 로그의 무한 루프가 발생하므로 권장되지 않습니다. 
로그 관리를 간소화하기 위해서는 액세스 로그를 다른 버킷에 저장하는 것이 좋습니다.

 

 

콘솔에서 서버 액세스 로깅 사용 설정

1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

 

2. 버킷 목록에서 서버 액세스 로깅을 사용 설정하려는 버킷의 이름을 선택합니다.

 

3. [속성(Properties)]을 선택합니다.

 

4. 서버 액세스 로깅 섹션에서 편집을 선택합니다.

 

5. 서버 액세스 로깅에서 활성화를 선택합니다.

 

6. 대상 버킷에서 버킷과 원하는 경우 접두사를 지정합니다. 접두사를 지정하는 경우 로그를 더 쉽게 찾을 수 있도록 접두사 뒤에 슬래시(/)를 포함하는 것이 좋습니다.

 

- 접두사를 슬래시(/)와 함께 지정하면 로그 객체를 더 쉽게 구분할 수 있습니다. 예를 들어 접두사 값을 logs/로로 지정할 경우 Amazon S3가 만드는 각 로그 객체의 키는 다음과 같이 logs/ 접두사로 시작합니다.

logs/2013-11-01-21-32-16-E568B2907131C0C0


- 접두사 값을 logs로 지정하는 경우 로그 객체는 다음과 같이 나타납니다.

logs2013-11-01-21-32-16-E568B2907131C0C0


 

7. 로그 객체 키 형식에서 다음 중 하나를 수행합니다.

 

- 날짜 기반이 아닌 분할을 선택하려면 [DestinationPrefix][YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]을 선택합니다.

- 날짜 기반 분할을 선택하려면 [DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]을 선택한 다음 S3 이벤트 시간 또는 로그 파일 전송 시간을 선택합니다.

 

 

8. Save changes(변경 사항 저장)를 선택합니다.

 

- 버킷에서 서버 액세스 로깅을 활성화하면 콘솔이 소스 버킷에서 로깅을 사용 설정하고 대상 버킷에서 로깅 서비스 보안 주체(logging.s3.amazonaws.com)에 s3:PutObject 권한을 부여하도록 버킷 정책을 업데이트합니다. 이 버킷 정책에 대한 자세한 내용은 버킷 정책을 사용하여 로깅 서비스 보안 주체에 권한 부여 섹션을 참조하십시오.

 

 

이상으로 S3 서버 액세스 로깅에 대한 포스팅을 마치겠습니다.

 

감사합니다.

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

Amazon Aurora MySQL version 3 Upgrade  (0) 2024.03.26
AWS CloudFormationd으로 기존 리소스 IaC 템플릿 생성하기  (0) 2024.02.19
[AWS] Amazon GuardDuty  (0) 2024.02.02
AWS Log 수집 전략  (0) 2024.01.25
[K8S] Secret  (0) 2024.01.24

댓글