설명
Lambda는 환경 변수를 기본적으로 저장 중 암호화합니다. SAM 함수에 KmsKeyArn이 없다는 이유만으로 환경 변수가 암호화되지 않았다고 볼 수는 없습니다. 고객 관리 키는 키 정책과 수명 주기를 직접 제어해야 할 때 사용합니다.
잠재적 영향
조직이 요구하는 별도 키 관리나 접근 통제 기준을 충족하지 못할 수 있습니다.
해결 방법
고객 관리 키가 필요하면 KmsKeyArn에 키 ARN을 지정하고 필요한 키 권한을 설정하세요. 실제 비밀값은 템플릿에 넣지 말고 Secrets Manager 등으로 관리하세요.
예시
예시는 키 선택의 차이만 보여 줍니다. example-token은 실제 비밀값이 아니며, KMS 설정이 소스 파일의 값을 암호화하지는 않습니다. 이미지 URI는 생략했습니다.
변경 전
yaml
Resources:
Function:
Type: AWS::Serverless::Function
Properties:
PackageType: Image
Environment:
Variables:
API_TOKEN: example-token
변경 후
yaml
Resources:
Function:
Type: AWS::Serverless::Function
Properties:
PackageType: Image
Environment:
Variables:
API_TOKEN: example-token
KmsKeyArn: arn:aws:kms:ap-northeast-2:123456789012:key/12345678-1234-1234-1234-123456789012