無限ノック › DOP 練習問題一覧 › 問題
DOP構成管理と Infrastructure as Code (IaC)

あるチームはAWS CDKでインフラを管理しており、CDK Pipelines(cdk-pipelines)を使ってdev→stg→prodの順にデプロイするパイプラインを構築しています。各環境は独立したAWSアカウントに分離されており、次の3要件を満たす必要があります。 ①本番デプロイ前の手動承認 ②パイプライン定義変更時のパイプライン自動更新(self-mutation) ③最小権限でのクロスアカウントデプロイ これらを正しく実現するために最も重要な設計上の考慮事項はどれですか?

A
CodePipelineのcrossAccountKeys: trueを設定してアーティファクトバケットをKMS暗号化し、各ターゲットアカウントにAWSCloudFormationStackSetExecutionRoleを作成してStackSets経由でクロスアカウントデプロイを実現する
CloudFormation StackSet Execution Role はStackSets 専用であり、CDK Pipelines のクロスアカウントデプロイには不要です。
B
CDK PipelinesでStageクラスとして各環境を定義しaddStage()でenv.accountとenv.regionを指定する。各ターゲットアカウントではcdk bootstrap --trust {パイプラインアカウントID}を実行してクロスアカウント信頼を確立する。self-mutationはデフォルト有効(selfMutation: true)でUpdatePipelineステージが自動挿入される。prod StageにはManualApprovalStepをpre条件に追加する
✓ 正解
CDK Pipelines では各ターゲットアカウントで cdk bootstrap --trust {パイプラインアカウント ID} を実行し、ブートストラップ時のIAMロール TrustPolicy にパイプラインアカウントを追加します。self-mutation はデフォルト有効でUpdatePipelineステージが自動挿入され、prod 承認は ManualApprovalStep で実装できます。
C
CDK PipelinesのWave機能でdev・stg・prodをまとめて並列デプロイし、prod Stageのpre条件にManualApprovalStepを設定する。クロスアカウントブートストラップはIAMロールのAssume Role設定のみで実現するためcdk bootstrapは不要
Wave による並列デプロイは dev・stg・prod 順次デプロイ要件に反します。cdk bootstrap は必須です。
D
パイプラインの安定性を優先してselfMutation: falseに設定し、パイプライン更新は専用の更新パイプラインで管理する。クロスアカウントデプロイはCDK AssumeRolePluginで実現し、本番承認はCodePipeline手動アクションをパイプライン定義に直接追加する
selfMutation: false はパイプライン定義変更時の自動更新(②要件)を直接満たせず、AssumeRolePlugin は標準パターンではなく、コードブロックが手動管理になるため効率性に劣ります。

解説

CDK Pipelinesのクロスアカウントデプロイにはcdk bootstrap --trust {パイプラインアカウントID}によるターゲットアカウントのブートストラップが必須です。これによりCDKが作成したデプロイ用IAMロールのTrustポリシーにパイプラインアカウントが追加されます。self-mutationはデフォルト有効でパイプライン先頭にUpdatePipelineステージが自動追加されます。 選択肢AのStackSetExecutionRoleはStackSets専用でCDK Pipelinesには不要です。 選択肢CはWaveの並列実行が順次デプロイ要件に反します。 選択肢Dはselfmutation:falseに設定しているため要件②を直接満たせません。

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

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

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