← AlertHub

07 / 07

감사 로그 분석

CloudTrail + Athena 기반 API 감사, S3 파일 접근 추적, SES 이메일 발송 이력 분석, VPC Flow Logs 트래픽 분석

CloudTrailAthenaS3 AuditSESVPC Flow Logs
개요 & 아키텍처모니터링 & 트리거알림 채널 구현YAML 기반 설정 관리설계 포인트문제 해결감사 로그 분석

Audit Infrastructure

감사 로그 분석 환경

실시간 모니터링만으로는 장애 원인 추적과 보안 감사를 충분히 수행할 수 없다. AWS 콘솔의 이벤트 기록은 90일까지만 조회 가능하므로, CloudTrail + S3 + Athena 기반의 장기 감사 로그 분석 환경을 구축하여 365일 보존 + SQL 분석이 가능한 구조를 만들었다.

이후 S3 파일 접근 감사, SES 이메일 발송 이력 추적, VPC Flow Logs 트래픽 분석까지 확장하여 하나의 Athena 환경에서 다양한 감사 요구사항을 통합 관리한다.

AWS API 호출CloudTrailS3 (365일)Athena (SQL)

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-changesSG 규칙 변경 이력7일
iam-changesIAM 사용자/정책/역할 변경7일
ec2-instance-state-changesEC2 시작/중지/종료 이력7일
api-error-eventsAPI 호출 에러 (AccessDenied 등)24시간
user-activity-summary사용자별 API 호출 통계7일

S3 Data Events

S3 파일 접근 감사

Presigned URL을 통한 S3 파일 업로드/다운로드 이력을 추적한다. 전체 버킷이 아닌 특정 버킷만 선택적으로 데이터 이벤트를 활성화하여 비용을 최소화했다.

IAM UserPresigned URLS3 PutObject/GetObjectCloudTrailAthena

운영 환경

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를 사용했다.

NLB ENIVPC Flow LogsS3Athena (SQL)

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 불일치 문제를 특정할 수 있었다.

문제 해결