CodeBuild のビルド成果物の暗号化キーの確認

CodeBuild の成果物に必要なキー管理の要件に合わせて暗号化を設定します。

説明

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

参考資料