ある企業では開発アカウント・本番アカウントの2つのAWSアカウントを運用しています。AWS CodePipelineは開発アカウントに設置されており、本番アカウントのAWS CloudFormationスタックをデプロイするクロスアカウントパイプラインを構築したいと考えています。このクロスアカウントデプロイを正しく実現するために必要な設定をすべて選んでください。(2つ選択)
CodePipelineのクロスアカウントデプロイには次の2点が必須です。 ①クロスアカウントIAMロール(A):本番アカウントにCloudFormationやCodeDeployを実行できるIAMロールを作成し、開発アカウントのCodePipelineサービスロールのARNを信頼ポリシーのPrincipalに指定してAssumeRoleを許可します。パイプラインのアクション設定でこのロールのARNをRoleArnに指定します。 ②S3バケットポリシーとKMSキーポリシーの更新(B):パイプラインのアーティファクトは開発アカウントのS3バケットに保存されますが、本番アカウントのIAMロールがアーティファクトを取得できるようバケットポリシーを更新する必要があります。またアーティファクトはカスタマー管理型KMSキー(CMK)で暗号化する必要があり、本番アカウントのロールがkms:Decrypt/kms:GenerateDataKeyを実行できるようKMSキーポリシーも更新します。 選択肢Cの理由:OrganizationsのOU配置はSCPによるガバナンスに使用しますが、CodePipelineのクロスアカウント動作の前提条件ではありません。OUが同じかどうかに関わらずIAMロールとS3/KMSの設定が必要です。 選択肢Dの理由:IAMユーザーの長期アクセスキーをパイプライン設定に埋め込むことはセキュリティのベストプラクティスに著しく反します。STSのAssumeRoleによる一時認証情報を使用するクロスアカウントIAMロールが推奨されます。