説明
CodeBuild の encryption_key は、ビルドの出力成果物を暗号化するキーを指定します。省略するとデフォルトの AWS マネージドキーを使うため、明示されていないことだけで成果物が平文だとは判断できません。
想定される影響
キーポリシーやライフサイクルを直接管理する必要がある環境では、デフォルトのキーだけでは組織の要件を満たさない場合があります。
対処方法
実際の成果物の暗号化設定を確認し、直接管理が必要ならサービスロールが使用できるカスタマーマネージドキーを指定してください。CodePipeline の成果物では、パイプラインのアーティファクトストアも確認してください。プロジェクトのキーですべてのログや環境変数を保護できるわけではありません。
例
この抜粋は、デフォルトのキーを暗黙に使う設定と、alias/aws/s3 を明示する設定の比較です。後者も AWS マネージドキーです。ビルド環境とパイプラインの設定は省略しています。
変更前
yaml
- name: My project
community.aws.codebuild_project:
name: my_project
description: My nice little project v2
service_role: arn:aws:iam::123456789012:role/service-role/code-build-service-role
source:
type: CODEPIPELINE
buildspec: ''
artifacts:
type: CODEPIPELINE
name: my_project
region: us-east-1
state: present
変更後
yaml
- name: My project
community.aws.codebuild_project:
name: my_project
description: My nice little project
service_role: arn:aws:iam::123456789012:role/service-role/code-build-service-role
source:
type: CODEPIPELINE
buildspec: ''
artifacts:
type: CODEPIPELINE
name: my_project
encryption_key: arn:aws:kms:us-east-1:123456789012:alias/aws/s3
region: us-east-1
state: present