설명
CloudTrail 로그는 계정 활동과 보안 이벤트를 추적하는 핵심 자료입니다. SSE-KMS를 활성화하지 않은 로그와 다이제스트 파일도 SSE-S3로 암호화되므로 kms_key_id 생략이 평문 저장을 뜻하지는 않습니다.
SSE-KMS를 사용하면 로그를 읽을 때 필요한 S3 권한에 더해 KMS 복호화 권한을 통제할 수 있습니다. 감사 로그에 별도의 키 정책과 수명 관리를 요구하는 환경에서는 이를 명시적으로 구성하세요.
잠재적 영향
별도 KMS 키가 필요한 감사 기준을 충족하지 못할 수 있습니다. 반대로 키 정책이 잘못되면 로그 전달이나 분석자의 읽기가 중단될 수 있으므로, 접근 제한과 지속적인 로그 수집을 함께 확인해야 합니다.
해결 방법
- 필요한 경우
kms_key_id에 로그 버킷과 같은 리전의 KMS 키를 지정하세요. - CloudTrail이 로그를 암호화하고 승인된 분석자가 복호화할 수 있도록 키 정책을 구성하고 S3 버킷 권한도 제한하세요.
- 변경 후 새 로그의 전달과 읽기를 확인하고, 보존 중인 로그를 읽는 데 필요한 키와 권한을 유지하세요.
예시
실제 로그 버킷과 CloudTrail 전달을 허용하는 버킷 정책이 필요합니다. 버킷 이름과 키 ARN은 환경에 맞게 바꾸세요.
KMS 키 생략
hcl
resource "aws_cloudtrail" "example" {
name = "trail"
s3_bucket_name = "bucketlog1"
}
추적에 KMS 키를 명시하지 않습니다. 이것만으로 로그가 암호화되지 않았다고 볼 수는 없습니다.
KMS 키 지정
hcl
resource "aws_cloudtrail" "example" {
name = "trail"
s3_bucket_name = "bucketlog1"
kms_key_id = "arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012"
}
같은 추적에 KMS 키를 지정합니다. 키 ARN만 추가하지 말고 CloudTrail과 로그 조회 주체의 권한도 함께 준비하세요.