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

あるプラットフォームチームは、全社の開発チームが使用する CloudFormation テンプレートに対して以下の変換をデプロイ前に自動適用したいと考えています。 ①すべてのリソースに標準タグ(CostCenter, Environment, ProjectCode)を自動付与する ②すべての S3 バケットリソースに BucketEncryption プロパティブロックを自動挿入する ③EC2 インスタンスリソースに標準 IAM インスタンスプロファイルを自動追加する。開発チームは既存テンプレートへの変更を最小限にしたい(大幅な書き換えを避けたい)としています。最も適切な実装方法はどれですか?

A
cfn-lint のカスタムルールを CI/CD パイプラインに組み込み、標準タグや暗号化設定が含まれていない場合はデプロイを失敗させ、開発チームに手動修正を促す
cfn-lint カスタムルールは「検証と拒否」のみで、テンプレートに設定を自動追加・変換する機能はありません。開発チームが毎回手動で修正する必要があります。
B
CloudFormation マクロ(Macro)を Lambda 関数で実装し、テンプレート全体を受け取って変換済みテンプレートを返す処理を定義する。開発チームはテンプレートの Transform セクションにマクロ名を追加するだけで自動変換が適用される
✓ 正解
CloudFormation マクロ(Macro)は Lambda 関数を使ってテンプレートをデプロイ前に変換するネイティブ機能です。テンプレートレベルのマクロ(Transform セクション指定)はテンプレート全体を受け取り、変換済みテンプレートを返せます。これにより、タグの自動付与・設定ブロックの自動挿入・リソースプロパティの自動追加が実現でき、開発チームは Transform 宣言の 1 行追加だけで恩恵を受けられます。AWS SAM(AWS::Serverless-2016-10-31 変換)も CloudFormation マクロの仕組みを活用した代表例です。
C
CloudFormation Hooks を実装して各リソースのプロビジョニング前に設定値を検証し、非準拠の場合はデプロイを中止させる
CloudFormation Hooksはリソースプロビジョニングの前後に検証と承認を行う機能ですが、テンプレートの内容を変換(プロパティの自動挿入・タグの自動付与)することはできません。
D
AWS Config 自動修復ルール(Auto Remediation)を設定して、タグ未設定リソースや暗号化未設定の S3 バケットを検出した際に SSM Automation で自動タグ付け・暗号化設定を適用する
AWS Config 自動修復はデプロイ完了後の是正措置であり、非準拠リソースが一時的に存在します。デプロイ前にテンプレートを変換する予防的制御とは目的・タイミングが異なります。

解説

CloudFormation マクロ(Macro)は Lambda 関数を使ってテンプレートをデプロイ前に変換するネイティブ機能です。テンプレートレベルのマクロ(Transform セクション指定)はテンプレート全体を受け取り、変換済みテンプレートを返せます。これにより、タグの自動付与・設定ブロックの自動挿入・リソースプロパティの自動追加が実現でき、開発チームは Transform 宣言の 1 行追加だけで恩恵を受けられます。AWS SAM(AWS::Serverless-2016-10-31 変換)も CloudFormation マクロの仕組みを活用した代表例です。 選択肢Acfn-lint カスタムルールは「検証と拒否」のみで、テンプレートに設定を自動追加・変換する機能はありません。開発チームが毎回手動で修正する必要があります。 選択肢CのCloudFormation Hooksはリソースプロビジョニングの前後に検証と承認を行う機能ですが、テンプレートの内容を変換(プロパティの自動挿入・タグの自動付与)することはできません。 選択肢DのAWS Config 自動修復はデプロイ完了後の是正措置であり、非準拠リソースが一時的に存在します。デプロイ前にテンプレートを変換する予防的制御とは目的・タイミングが異なります。

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

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

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