DVA-C02セキュリティHARD単一選択

ある開発者は CodePipeline から本番環境の CloudFormation スタックをデプロイしています。CodePipeline の実行ロールには必要な権限を与えていますが、CloudFormation スタックデプロイ時に IAM ロールが作成される場合に「InsufficientCapabilitiesException」が発生しています。最も適切な対処法はどれですか?

  1. A. CodePipeline の実行ロールに iam:* の権限を追加する
  2. B. CloudFormation スタックのデプロイアクションで CAPABILITY_IAM または CAPABILITY_NAMED_IAM を Capabilities に指定する
  3. C. CloudFormation スタックを手動でデプロイしてから CodePipeline のデプロイステップをスキップする
  4. D. IAM ロールの作成を別の CloudFormation スタックに分離して先にデプロイする
解答と解説を見る

正解: B

CloudFormation がスタックの中で IAM リソース(ロール・ポリシーなど)を作成する場合、意図しない権限昇格を防ぐために明示的な Capabilities の指定が必要です。CAPABILITY_IAM は自動生成名の IAM リソースに、CAPABILITY_NAMED_IAM はカスタム名の IAM リソースに必要です。CodePipeline の CloudFormation デプロイアクション設定でこの値を指定することで解決します。A の iam:* の追加は必要以上の権限付与であり最小権限に反します(Capabilities の指定とは別の問題)。C は自動化を放棄する回避策です。D は問題の根本原因を解決しておらず、分離してもCAPABILITY_IAMの指定は依然必要です。

▸ この試験を本気で演習する(全150問・無料)