説明
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