설명
AWS 관리형 키 aws/secretsmanager도 시크릿 값을 KMS로 암호화합니다. 이 키를 사용한다는 사실만으로 암호화가 약하거나 시크릿이 공개되는 것은 아닙니다.
다만 AWS 관리형 키의 키 정책은 직접 변경할 수 없습니다. 키 정책과 수명 주기를 조직이 직접 관리해야 하는 환경에서는 고객 관리형 KMS 키가 필요할 수 있습니다.
잠재적 영향
조직의 키 통제 기준을 충족하지 못할 수 있습니다. 고객 관리형 키를 사용하더라도 과도한 시크릿 읽기 권한은 별도로 제한해야 하며, 키 권한을 잘못 변경하면 애플리케이션이 시크릿을 읽지 못할 수 있습니다.
해결 방법
- 조직의 요구사항에 따라 고객 관리형 대칭 암호화 KMS 키를 선택하고
kms_key_id에 ARN이나 별칭을 지정하세요. - 시크릿 정책, IAM 권한과 키 정책을 함께 검토하고 필요한 주체에게만 읽기·키 사용 권한을 부여하세요.
- 키 변경 후 필요한 시크릿 버전을 실제로 읽을 수 있는지 확인하세요. 기존 버전에 필요한 이전 키의 접근 권한을 성급하게 제거하지 마세요.
예시
아래는 시크릿 리소스의 키 선택만 보여 주며 시크릿 값은 별도로 관리합니다.
AWS 관리형 키
hcl
resource "aws_secretsmanager_secret" "example" {
name = "test-cloudrail-1"
kms_key_id = "alias/aws/secretsmanager"
}
AWS가 관리하는 키 정책으로 시크릿 값을 암호화합니다.
고객 관리형 키
hcl
resource "aws_secretsmanager_secret" "example" {
name = "test-cloudrail-1"
kms_key_id = "alias/MyAlias"
}
alias/MyAlias를 같은 리전의 실제 고객 관리형 키 별칭으로 바꾸고 호출자의 키 권한을 확인하세요. 키 종류를 바꾸는 것만으로 시크릿 접근 권한이 제한되지는 않습니다.