설명
CloudWatch Logs는 로그 데이터를 기본적으로 저장 암호화합니다. kms_key_id를 생략했다고 로그가 평문으로 저장되는 것은 아닙니다. 다만 고객 관리형 KMS 키가 필요한 환경에서는 기본 암호화만으로 조직의 키 정책·수명 관리 요구사항을 충족하지 못할 수 있습니다.
로그에는 운영 정보, 오류 메시지, 사용자 활동과 보안 이벤트가 포함될 수 있습니다. 필요한 키 통제 수준과 로그 읽기 권한을 함께 검토해야 합니다.
잠재적 영향
고객 관리형 키가 필수인 환경에서는 키 정책을 직접 관리하지 않는 로그 그룹이 암호화 운영 기준을 충족하지 못할 수 있습니다. KMS 키를 연결해도 과도한 로그 읽기 권한이나 로그에 기록된 비밀값 문제는 별도로 해결해야 합니다.
해결 방법
- 고객 관리형 키가 필요하면
kms_key_id에 사용할 키 ARN을 지정하세요. CloudWatch Logs가 해당 키를 사용할 수 있도록 키 정책과 권한을 구성하세요. - 새 키 연결은 이후 수집되는 로그에 적용됩니다. 기존 로그를 읽는 데 필요한 이전 키와 권한은 유지하세요.
- 로그 읽기 권한과 보존 기간을 제한하고, 비밀값이 로그에 기록되지 않도록 관리하세요.
예시
기본 저장 암호화
hcl
resource "aws_cloudwatch_log_group" "example" {
name = "Yada"
tags = {
Environment = "production"
Application = "serviceA"
}
retention_in_days = 1
}
서비스 기본 암호화를 사용하며 고객 관리형 키를 지정하지 않습니다.
고객 관리형 키 지정
hcl
resource "aws_cloudwatch_log_group" "example" {
name = "Yada"
tags = {
Environment = "production"
Application = "serviceA"
}
retention_in_days = 1
kms_key_id = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
예시 ARN을 실제 키 ARN으로 바꾸고 키 사용 권한을 확인하세요. 이 연결은 이전에 수집된 로그를 새 키로 다시 암호화하지 않습니다.