새벽 4시, 보안팀에서 전화가 온다. "어떤 IAM 계정이 프로덕션 S3 버킷을 퍼블릭으로 열었어요. 누가 했는지 추적할 수 있나요?" 이 순간 CloudTrail이 켜져 있느냐 없느냐, Trail이 S3에 저장돼 있느냐 없느냐, Log File Validation이 활성화돼 있느냐 없느냐가 사건의 해결 여부를 결정한다. CloudTrail은 AWS에서 일어나는 모든 API 호출의 감사 로그다. 운영자의 관점에서 이 서비스의 설계 원칙과 실무 패턴을 이해하는 것이 오늘의 목표다.
감사 로그의 가장 중요한 속성 두 가지는 **Non-repudiation(부인 방지)**과 **Tamper-evidence(변조 감지)**다.
Non-repudiation은 암호학 용어다. "나는 그 행위를 하지 않았다"는 주장을 기술적으로 반박할 수 있어야 한다. 디지털 서명이 이 속성을 제공한다. CloudTrail에서는 IAM 자격증명(accessKeyId, sessionToken, userAgent)이 모든 이벤트에 포함되어 "이 자격증명으로 이 API가 호출됐다"는 사실을 입증한다.
Tamper-evidence는 로그가 변조됐음을 감지할 수 있어야 한다는 속성이다. CloudTrail Log File Validation이 SHA-256 해시 체인으로 이를 구현한다.