AWS CloudTrail➡️ 리소스 추적과 S3 객체 업로드 추적 설정하기
1️⃣ CloudTrail이란?
AWS CloudTrail은 AWS 계정 내에서 발생하는 모든 API 호출과 이벤트 활동을 기록하는 서비스입니다.
CloudTrail을 활용하면 다음과 같은 활동을 추적할 수 있습니다:
- 누가 어떤 AWS 리소스에 액세스했는지
- 어떤 IP에서 호출했는지
- 어떤 시간에 어떤 작업(API 호출)을 했는지
- 보안 감사, 변경 기록 추적, 문제 원인 분석에 매우 유용
2️⃣ CloudTrail 구성 요소 요약
관리 이벤트 (Management Events) | AWS 리소스 생성/수정/삭제와 같은 관리 작업 추적 (예: EC2 생성) |
데이터 이벤트 (Data Events) | S3 객체 업로드/다운로드, Lambda 실행 등 리소스 내부에서의 활동 추적 |
CloudTrail 로그 파일 | S3 버킷에 저장되며 JSON 형식으로 기록됨 |
CloudTrail Lake | 이벤트를 저장 및 쿼리할 수 있는 분석용 저장소 (요금 발생) |
3️⃣ 왜 S3 객체 업로드는 별도 설정이 필요한가?
기본적으로 CloudTrail은 관리 이벤트만 무료로 기록합니다.
하지만 S3 객체 업로드(PutObject) 같은 활동은 데이터 이벤트로 분류되어 별도 설정이 필요합니다.
✅ 데이터 이벤트를 활성화 👉🏼누가 어떤 키로 어떤 객체를 업로드했는지 추적 가능.
CloudTrail 이벤트 이해 - AWS CloudTrail
스트림이 활성화된 테이블의 경우 데이터 이벤트의 resources 필드에 AWS::DynamoDB::Stream과 AWS::DynamoDB::Table이 모두 포함됩니다. resources.type으로 AWS::DynamoDB::Table을 지정하는 경우 기본적으로 DynamoDB 테
docs.aws.amazon.com
CloudTail에 대한 블로깅을 한 이유가 위에 개념중에서 3번때문이었다.
작업을 하던 와중에 AWS AccessKey를 변경해서 S3로 업로드 되는 자동화 작업이 잘 수행되어가고 있는지를 트래킹하고 싶었다.
그래서 찾던 와중에 CloudTail이 있었고, 내가 원하는 데이터가 잘 S3에 저장이 되는지는 CloudTail의 기본 트래킹 값에 해당 되지 않았다.
그래서 아래는 이제 CloudTail에서 특정 데이터 이벤트를 설정해서 추적하는 과정을 작성했다.
💻CloudTail 직접 사용하기
1. CloudTail 접속 👉🏼 추적생성
https://ap-northeast-1.console.aws.amazon.com/cloudtrailv2/home?region=ap-northeast-1#/welcome
https://ap-northeast-1.console.aws.amazon.com/cloudtrailv2/home?region=ap-northeast-1#/welcome
ap-northeast-1.console.aws.amazon.com
2. 추적 속성 선택하기
👉🏼 버킷 설정, 버킷 이름, KMS별칭(필수 값) 등등
3. 로그 이벤트 선택 👉🏼해당 하는 이벤트를 선택 / 나는 데이터 관련이라 '데이터 이벤트' 선택
본인이 어떤 로그 이벤트를 받을 지 선택한다.
4. (✨중요✨)관리 이벤트 설정👉🏼 어떤 데이터를 받아서 트래킹 할 것인지 선택한다.
나는 S3에 있는 데이터를 트래킹해야해서 S3전체인 S3::object를 선택
추적이 생성되었다.
이렇게 해서 이제 Backup이 24시간 마다 증분백업이 되기 때문에 추후에 원하는 데이터가 오는지 확인해볼 예정이다.
CloudTail을 활용하면 보안/운영에 매우 우용할 것 같다.
- CloudTrail은 AWS 리소스 변경 추적에 필수인 보안/운영 도구
- S3 객체 업로드 추적은 기본값으로는 안 되며, 데이터 이벤트 설정 필수
- 설정 완료 후 PutObject 활동을 확인해 어떤 주체가 어떤 방식으로 업로드했는지 알 수 있음