View a markdown version of this page

使用 驗證範本 cloudformation-validate - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 驗證範本 cloudformation-validate

開放原始碼cloudformation-validate專案會在本機檢查 JSON 和 YAML CloudFormation 範本,並可在 GitHub 上使用。它可以找到無效的範本結構、中斷的參考、安全問題和最佳實務問題。每個調查結果都包含問題、嚴重性及其在範本中的位置。

此工具包含其所需的規則和 CloudFormation 資源定義,因此會在安裝後在沒有網路存取或 AWS 登入資料的情況下執行。

選擇驗證方法

  • 命令列 – 執行 cfn-validate 從終端機或自動建置檢查目錄中的一個範本或每個範本。

  • 程式庫 – 將驗證程式新增至 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-validate TEMPLATE_OR_DIRECTORY [OPTIONS]

檢查一個範本:

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 上的自訂規則參考。

內嵌驗證程式庫

為您的程式設計語言安裝已發佈的套件,以從您的應用程式執行相同的離線檢查。建立驗證引擎一次,重複使用於多個範本,並處理每個範本傳回的結構化診斷。您也可以透過程式庫 API 設定自訂 CEL、Rego 或 Guard 規則。

如需安裝說明和支援的平台,請參閱語言繫結安裝指南。

如需每種語言的完整範例和每個 API 指南的連結,請參閱 GitHub 上的專案文件中的內嵌為程式庫。

搭配 使用 AWS CDK

如果您使用 AWS CDK,則不需要單獨安裝驗證器。 AWS CDK 建構程式庫包含預設 CloudFormationValidatePlugin,會在合成 CloudFormation 範本後自動執行相同的檢查。

cdk synth

CDK 會報告可能的部署失敗和最佳實務調查結果及其驗證結果。您可以在想要新增自訂 Rego 或 Guard 規則CloudFormationValidatePlugin時明確設定 。

如需外掛程式組態、確認和驗證報告,請參閱 AWS CDK API 參考中的範本和政策驗證。

了解驗證範圍

如需本機驗證的限制和部署前要採取的步驟,請參閱 了解驗證範圍。