07 / 07
감사 로그 분석
CloudTrail + Athena 기반 API 감사, S3 파일 접근 추적, SES 이메일 발송 이력 분석, VPC Flow Logs 트래픽 분석
Audit Infrastructure
감사 로그 분석 환경
실시간 모니터링만으로는 장애 원인 추적과 보안 감사를 충분히 수행할 수 없다. AWS 콘솔의 이벤트 기록은 90일까지만 조회 가능하므로, CloudTrail + S3 + Athena 기반의 장기 감사 로그 분석 환경을 구축하여 365일 보존 + SQL 분석이 가능한 구조를 만들었다.
이후 S3 파일 접근 감사, SES 이메일 발송 이력 추적, VPC Flow Logs 트래픽 분석까지 확장하여 하나의 Athena 환경에서 다양한 감사 요구사항을 통합 관리한다.
365일
로그 보존
S3 라이프사이클 자동 삭제
11+
저장된 쿼리
주요 감사 시나리오 즉시 대응
3종
데이터 소스
CloudTrail · S3 · VPC Flow Logs
~$0
월 비용
S3 저장 비용 수준
Management Events
관리 이벤트 감사
계정 전체의 모든 관리 이벤트(Management Events)를 S3에 영구 저장하고, Athena에 저장된 쿼리를 통해 주요 보안 감사 시나리오에 즉시 대응한다. 멀티 리전 활성화로 모든 리전의 API 호출을 기록하며, IAM 등 글로벌 서비스 이벤트도 포함된다.
저장된 쿼리 — 주요 감사 시나리오
| 쿼리 | 용도 | 기간 |
|---|---|---|
| console-login-history | 콘솔 로그인 이력 (성공/실패) | 24시간 |
| root-account-activity | 루트 계정 사용 이력 | 30일 |
| security-group-changes | SG 규칙 변경 이력 | 7일 |
| iam-changes | IAM 사용자/정책/역할 변경 | 7일 |
| ec2-instance-state-changes | EC2 시작/중지/종료 이력 | 7일 |
| api-error-events | API 호출 에러 (AccessDenied 등) | 24시간 |
| user-activity-summary | 사용자별 API 호출 통계 | 7일 |
S3 Data Events
S3 파일 접근 감사
Presigned URL을 통한 S3 파일 업로드/다운로드 이력을 추적한다. 전체 버킷이 아닌 특정 버킷만 선택적으로 데이터 이벤트를 활성화하여 비용을 최소화했다.
운영 환경
s3-prod-presign-activity
개발 환경
s3-dev-presign-activity
추적 이벤트
PutObject
파일 업로드
GetObject
파일 다운로드
DeleteObject
파일 삭제
HeadObject
메타데이터 조회
SES Email Audit
SES 이메일 발송 감사
SES API 호출은 CloudTrail 관리 이벤트로 기록되므로, S3 데이터 이벤트처럼 별도 설정 없이 기존 Trail에서 바로 조회할 수 있다. 특정 IAM 유저가 SES를 통해 이메일을 발송한 이력을 추적한다.
SendEmail
일반 발송
SendRawEmail
Raw 형식
SendTemplatedEmail
템플릿 기반
SendBulkTemplatedEmail
대량 발송
확인 가능한 정보
requestParameters에서 발신자(Source), 수신자(Destination), 제목(Subject) 확인. responseElements에서 SES MessageId 확인 가능.
운영 환경
ses-prod-email-activity
개발 환경
ses-dev-email-activity
VPC Flow Logs
VPC Flow Logs 트래픽 분석
동일한 Athena 환경을 VPC Flow Logs 분석에도 활용한다. NLB의 TCP 리스너 환경에서 Target Group별 트래픽을 확인해야 할 때, CloudWatch 메트릭이나 NLB 액세스 로그로는 불가능하여 VPC Flow Logs를 사용했다.
Partition Projection 적용
날짜별 파티션이 자동으로 관리되어, 별도 파티션 추가 작업 없이 즉시 쿼리 가능. 동일한 Workgroup과 Database에 테이블만 추가하여 별도 인프라 없이 확장.
Use Cases
활용 시나리오
| 상황 | 사용할 쿼리 |
|---|---|
| 누가 SG를 변경해서 장애가 발생했는지 | security-group-changes |
| 비인가 접근 시도가 있었는지 | api-error-events |
| 루트 계정이 사용된 적 있는지 | root-account-activity |
| 특정 EC2가 누구에 의해 종료됐는지 | ec2-instance-state-changes |
| S3 파일이 언제 누구에 의해 접근됐는지 | s3-prod-presign-activity |
| SES 이메일이 언제 누구에게 발송됐는지 | ses-prod-email-activity |
| NLB 포트별 실제 트래픽 확인 | nlb-port-traffic (VPC Flow Logs) |
| 장애 시 '변경이 없었다'는 사실 확인 | 소거법 — 전체 쿼리 활용 |
실제 활용 사례
Valkey AUTH TOKEN 장애 분석 시, CloudTrail + Athena로 Secrets Manager 변경 이력, ElastiCache API 변경 이력, ECS 배포 이력을 모두 조회하여 "최근 어떤 변경도 없었다"는 사실을 확인. 이를 통해 원인 범위를 좁혀 AUTH TOKEN 불일치 문제를 특정할 수 있었다.