ある企業は、中央集権型のツーリングアカウント(アカウントA)でAWS CodePipelineを運用し、ステージングアカウント(アカウントB)と本番アカウント(アカウントC)にCloudFormationスタックをデプロイしています。アーティファクト用S3バケットはアカウントAに存在します。DevOpsエンジニアは以下の設定を既に完了しています: ①アカウントBとCに、アカウントAのCodePipelineサービスロールを引き受けるクロスアカウントIAMロールを作成 ②S3バケットポリシーでアカウントBとCへのGetObject/PutObjectを許可 しかし、デプロイは「KMS: Access Denied」エラーで依然として失敗しています。この問題を解決するために必要な手順を2つ選択してください。
AWS管理型KMSキー(デフォルト)はアカウントをまたいだ使用が不可能です。クロスアカウントパイプラインでは、カスタマー管理型KMSキー(CMK)を作成してCodePipelineのアーティファクト暗号化に使用するよう設定し、そのCMKのキーポリシーで対象アカウント(B・C)のクロスアカウントIAMロールにkms:Decryptを許可する必要があります。IAMロールとS3バケットポリシーは設定済みのため、KMS設定が唯一の未対応項目です。 選択肢AのS3 Transfer Accelerationはクロスアカウントの転送速度を改善するものであり、KMSアクセス拒否エラーの解決策ではありません。 選択肢DのVPCピアリングはプライベートネットワーク接続を提供するものであり、KMSアクセス拒否エラーの解決策ではありません。 選択肢EのSCPは組織レベルのアクセス制御であり、既存のIAMロール信頼関係の代替にはなりません。