無限ノック › DOP 練習問題一覧 › 問題
DOPSDLC の自動化

企業はアカウントA(ツールアカウント)にCodePipelineを構築し、アカウントB(本番アカウント)のCodeDeployを使ってデプロイを行っています。アーティファクトはアカウントAのS3バケット(SSE-KMS暗号化)に保存されています。アカウントBのCodeDeployエージェントがS3からアーティファクトを取得できずデプロイが失敗しています。この問題を解決するために必要な設定はどれですか?

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

解説

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へレプリケーションするアーキテクチャ変更は、権限設定のみで解決できる問題に対して過剰であり運用コストも増大します。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DOP の問題一覧に戻る