企業はアカウントA(ツールアカウント)にCodePipelineを構築し、アカウントB(本番アカウント)のCodeDeployを使ってデプロイを行っています。アーティファクトはアカウントAのS3バケット(SSE-KMS暗号化)に保存されています。アカウントBのCodeDeployエージェントがS3からアーティファクトを取得できずデプロイが失敗しています。この問題を解決するために必要な設定はどれですか?
SSE-KMS暗号化されたS3オブジェクトへのクロスアカウントアクセスには、S3バケットポリシーによるアクセス許可とKMSキーポリシーによる復号権限の両方が必要です。S3バケットポリシーのみ許可してもKMSキーポリシーが対象プリンシパルを許可していなければ復号できずアクセスが失敗します。アカウントBのCodeDeployサービスロールにkms:Decrypt権限を付与し、KMSキーポリシーでそのロールを許可することが必須です。 選択肢AのS3バケットポリシーへのアクセス許可のみは、kms:Decrypt権限とKMSキーポリシーへの許可設定が含まれていないため、SSE-KMS暗号化オブジェクトの復号に失敗しデプロイが成功しません。 選択肢Cのaws:PrincipalOrgIDコンディション設定は、バケットポリシーのアクセス制御のみであり、KMSキーポリシーへの許可設定とCodeDeployロールへのkms:Decrypt付与が欠落しているため、SSE-KMS暗号化オブジェクトの復号に失敗しデプロイが成功しません。 選択肢DのS3クロスリージョンレプリケーションは、本問題はクロスアカウントのアクセス権限の問題であり、S3クロスリージョンレプリケーションは本質的な解決策となりません。アーティファクトをアカウントBへレプリケーションするアーキテクチャ変更は、権限設定のみで解決できる問題に対して過剰であり運用コストも増大します。