cloudformation-validate を使用してテンプレートを検証する
GitHub で入手できるオープンソースの cloudformation-validate プロジェクト
ツールには必要なルールと CloudFormation リソース定義が含まれているため、インストール後はネットワークアクセスや AWS 認証情報なしで実行できます。
検証方法を選択する
-
コマンドライン –
cfn-validateを実行して、ターミナルまたは自動構築からディレクトリ内にある 1 つのテンプレートまたはすべてのテンプレートをチェックします。 -
ライブラリ – Rust、Node.js、Python、Go、または JVM アプリケーションにバリデータを追加し、コード内の結果を処理します。
-
AWS CDK – CDK がテンプレートを合成した後で、それらを自動的に検証します。
-
カスタムルール – CEL、Rego、または Guard ルール言語で記述されたチェックを追加します。サポートされているルール形式と例については、GitHub の「カスタムルールリファレンス
」を参照してください。Guard ルール構文については、本ガイドの「Guard を使用してテンプレートを検証する」を参照してください。
コマンドラインツールをインストールする
GitHub で 最新の cfn-validate リリースcfn-validate ファイルをダウンロードします。GitHub の「インストールガイドcfn-validate に変更し、PATH に追加して、ダウンロードしたファイルを検証します。
検証を実行する
このコマンドは次の構文を使用します。
cfn-validateTEMPLATE_OR_DIRECTORY[OPTIONS]
1 つのテンプレートをチェックします。
cfn-validate template.yaml
ディレクトリを渡して、すべての .yaml、.yml、および .json ファイルを再帰的にチェックします。
cfn-validate ./templates/
コマンドは、構造化された JSON 検証レポートを標準出力に書き込みます。簡潔な出力には --format standard、デフォルトの詳細レポートには --format detailed を使用します。
コマンドは、エラーや致命的な診断が見つからないときは 0、エラーや致命的な診断が見つかったときは 1 を返し、使用法エラーや初期化エラー (無効なオプションや存在しないファイルなど) については 2 を返します。
すべてのエンジン、フィルター、出力形式、およびパラメータについては、GitHub の「cfn-validate CLI リファレンス
カスタムルールを追加する
--rule-source を使用してカスタムの Rego または CEL ルールファイルを読み込みます。--guard-rule-source を使用して Guard ルールファイルまたはディレクトリを読み込みます。どちらのオプションも、繰り返し指定して複数のルールソースを読み込むことができます。
cfn-validate template.yaml --rule-source ./rules/my-rule.rego cfn-validate template.yaml --guard-rule-source ./guard-rules/
ルールの形式と例については、GitHub の「カスタムルールリファレンス
検証ライブラリを埋め込む
使用しているプログラミング言語の公開パッケージをインストールして、同一のオフラインチェックをアプリケーションから実行します。検証エンジンを 1 度だけ作成し、複数のテンプレートに再利用して、各テンプレートに返される構造化診断を処理します。ライブラリ API を使用して、カスタムの CEL、Rego、または Guard ルールを設定することもできます。
| 言語 | 公開パッケージ | API と例 |
|---|---|---|
| Rust | crates.io の cloudformation-validate |
Rust API と例 |
| Node.js | npm の @aws/cloudformation-validate |
Node.js API と例 |
| Python | PyPI の cloudformation-validate |
Python API と例 |
| Go | CloudFormation Validate Go モジュール |
Go API と例 |
| JVM (Java または Kotlin) | Maven Central の software.amazon.cloudformation:cloudformation-validate |
JVM API と例 |
インストール手順とサポートされているプラットフォームについては、「言語バインディングのインストールガイド
すべての言語の完全な例と各 API ガイドへのリンクについては、GitHub のプロジェクトドキュメントで「ライブラリとしての埋め込み
AWS CDK で使用する
AWS CDK を使用する場合、バリデータを個別にインストールする必要はありません。AWS CDK コンストラクトライブラリには、CloudFormation テンプレートの合成後に同一のチェックを自動的に実行するデフォルトの CloudFormationValidatePlugin が含まれています。
cdk synth
CDK は、考えられるデプロイ失敗とベストプラクティス検出結果を検証結果とともに報告します。カスタムの Rego または Guard ルールを追加する場合は、CloudFormationValidatePlugin を明示的に設定できます。
プラグインの設定、確認、および検証レポートについては、「AWS CDK API リファレンス」の「テンプレートとポリシーの検証」を参照してください。
検証スコープを理解する
ローカル検証の制限とデプロイ前に実行する手順については、「検証スコープを理解する」を参照してください。