ある企業はAWS Organizationsで管理するマルチアカウント環境を持っており、DevOpsアカウント上のCodePipelineから本番アカウントへCloudFormationスタックをデプロイしたいと考えています。アーティファクトはDevOpsアカウントのS3バケットに保存されています。このクロスアカウントデプロイを安全に実現するために必要な設定を2つ選択してください。
本番アカウントにIAMロールを作成し、DevOpsアカウントのCodePipelineサービスロールARNをプリンシパルとするsts:AssumeRoleのトラストポリシーを設定したうえで、CloudFormationおよびS3の必要な権限を付与する DevOpsアカウントのS3アーティファクトバケットにKMSカスタマーマネージドキー(CMK)による暗号化を設定し、本番アカウントのクロスアカウントロールがkms:Decryptを実行できるようキーポリシーを更新する CodePipelineのクロスアカウントデプロイには2つの設定が必須です。 ①本番アカウントにクロスアカウントIAMロールを作成し、DevOpsアカウントのCodePipelineがAssumeRoleできるトラストポリシーを設定します。 ②S3アーティファクトバケットはKMS CMKで暗号化が必要です(SSE-S3のAWSマネージドキーはクロスアカウントでの復号が不可)。本番アカウントのロールにkms:Decrypt権限を付与することでアーティファクト取得が可能になります。SCPはアクセスを制限する機能であり許可の付与には使えません。CORSはWebブラウザ向けでIAM APIコールには無関係、Transit GatewayはVPCネットワーク接続用です。