DOPSDLC の自動化複数選択
ある企業は AWS Organizations による複数アカウント構成を採用しています。「ToolingAccount」(アカウントA)の AWS CodePipeline が「ProductionAccount」(アカウントB)に AWS CloudFormation スタックをデプロイするクロスアカウントパイプラインを構築しています。デプロイステージで CodePipeline がアカウントB の CloudFormation を操作できるようにするために、最低限必要な IAM の設定として正しいものを 2 つ選択してください。
AアカウントA の CodePipeline サービスロールのポリシーに、アカウントB に作成したデプロイロールの ARN を対象とした sts:AssumeRole アクションを許可するステートメントを追加する
✓ 正解
アカウントA の CodePipeline サービスロールが AssumeRole を発行するための許可ポリシーです。クロスアカウントの発信側として最低限必要な設定です。
BアカウントB に CloudFormation 操作権限を持つ IAM ロールを作成し、その信頼ポリシー(Trust Policy)においてアカウントA の CodePipeline サービスロール ARN をプリンシパル(Principal)として sts:AssumeRole を許可する
✓ 正解
アカウントB のデプロイロールの信頼ポリシーでアカウントA の CodePipeline ロール ARN を Principal とし、受信側の信頼関係を確立します。双方向設定の受信側として必須です。
CAWS Organizations のサービスコントロールポリシー(SCP: Service Control Policy)に codepipeline.amazonaws.com サービスプリンシパルからのすべてのアクションを明示的に許可する Allow ステートメントを追加し、アカウントB に適用する
SCP は Deny の緩和には使えますが権限の付与はできません。
DアカウントA とアカウントB の両方で AWS CodePipeline のサービスリンクロール(Service-Linked Role)を作成し、両ロール間の相互信頼ポリシーを手動で設定する
CodePipeline にはクロスアカウント向けサービスリンクロールは存在しません。
EAWS Resource Access Manager(RAM)を使用してアカウントA の CodePipeline リソースをアカウントB と共有登録し、クロスアカウントアクセスを自動的に付与する
RAM は CodePipeline リソースの共有に対応していません。
解説
アカウントA の CodePipeline サービスロールのポリシーに、アカウントB に作成したデプロイロールの ARN を対象とした sts:AssumeRole アクションを許可するステートメントを追加する、アカウントB に CloudFormation 操作権限を持つ IAM ロールを作成し、その信頼ポリシー(Trust Policy)においてアカウントA の CodePipeline サービスロール ARN をプリンシパル(Principal)として sts:AssumeRole を許可する。
クロスアカウントデプロイには AssumeRole の双方向設定が必須です。アカウントA の CodePipeline サービスロールがアカウントB のロールを引き受けられる権限(A)と、アカウントB のロールがアカウントA のロールからの引き受けを信頼するポリシー(B)の両方が必要です。
選択肢CのSCP は Deny の緩和には使えますが権限の付与はできません。
選択肢DのCodePipeline にはクロスアカウント向けサービスリンクロールは存在しません。
選択肢EのRAM は CodePipeline リソースの共有に対応していません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →