설명
Secrets Manager는 시크릿 값을 KMS로 암호화합니다. 새 시크릿에서 kms_key_id를 지정하지 않으면 AWS 관리형 키 aws/secretsmanager를 사용하므로 키 생략이 평문 저장을 뜻하지는 않습니다.
키 정책과 수명 주기를 직접 관리해야 하는 환경에서는 고객 관리형 키를 명시해야 조직의 기준을 일관되게 적용할 수 있습니다. 필요한 키 통제 수준은 시크릿의 용도와 조직 정책에 따라 정하세요.
잠재적 영향
기본 키만 사용하는 구성이 고객 관리형 키를 요구하는 정책을 충족하지 못할 수 있습니다. 키 종류와 별개로 시크릿 읽기 권한이 과도하면 비밀값이 노출될 수 있습니다.
해결 방법
- 고객 관리형 키가 필요한 시크릿에
kms_key_id를 명시하고 대칭 암호화 KMS 키의 ARN이나 별칭을 사용하세요. - 키 정책과 시크릿 읽기 권한을 함께 검토하고 템플릿에도 조직의 키 선택 기준을 반영하세요.
- 기존 시크릿의 키를 바꾼 뒤에는 필요한 버전을 읽을 수 있는지 확인하고 이전 키에 의존하는 버전의 접근을 유지하세요.
예시
기본 키 사용
hcl
resource "aws_secretsmanager_secret" "example" {
name = "example"
}
새 시크릿은 AWS 관리형 키를 사용합니다. 이 리소스 선언은 시크릿 값 자체를 설정하지 않습니다.
키 명시
hcl
resource "aws_secretsmanager_secret" "example" {
name = "example"
kms_key_id = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
예시 ARN을 실제 고객 관리형 키 ARN으로 바꾸고 키 권한을 준비하세요. 명시적인 키 지정도 시크릿 접근 제한을 대신하지는 않습니다.