

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

# 什麼是 AWS CloudFormation Guard？
<a name="what-is-guard"></a>

AWS CloudFormation Guard 是一種開放原始碼的通用型政策即程式碼評估工具。Guard 命令列界面 (CLI) 提供simple-to-use宣告式網域特定語言 (DSL)，可用來將政策表達為程式碼。此外，您可以使用 CLI 命令，根據這些規則驗證結構化階層式 JSON 或 YAML 資料。Guard 也提供內建的單元測試架構，以驗證您的規則是否如預期般運作。

Guard 不會驗證 CloudFormation 範本的有效語法或允許的屬性值。您可以使用 [cfn-lint](https://github.com/aws-cloudformation/cfn-python-lint) 工具對範本結構執行徹底檢查。

Guard 不提供伺服器端強制執行。您可以使用 CloudFormation Hooks 來執行伺服器端驗證和強制執行，您可以在其中封鎖或警告操作。

如需 AWS CloudFormation Guard 開發的詳細資訊，請參閱 [Guard GitHub 儲存庫](https://github.com/aws-cloudformation/cloudformation-guard/)。

**Topics**
+ [您是第一次使用 Guard 嗎？](#first-time-user)
+ [Guard 功能](#cfn-guard-feature-overview)
+ [搭配 CloudFormation 勾點使用 Guard](#acessing-cfn-guard)
+ [存取 Guard](#using-cfn-guard-hooks)
+ [最佳實務](#best-practices)

## 您是第一次使用 Guard 嗎？
<a name="first-time-user"></a>

如果您是第一次使用 Guard，建議您先閱讀以下章節：
+  [設定 Guard](setting-up.md) – 本節說明如何安裝 Guard。透過 Guard，您可以使用 Guard DSL 撰寫政策規則，並根據這些規則驗證 JSON 或 YAML 格式的結構化資料。
+  [撰寫 Guard 規則](writing-rules.md) – 本節提供撰寫政策規則的詳細演練。
+  [測試 Guard 規則](testing-rules.md) – 本節提供詳細的逐步解說，用於測試您的規則以驗證它們是否如預期般運作，並根據規則驗證 JSON 或 YAML 格式的結構化資料。
+  [根據 Guard 規則驗證輸入資料](validating-rules.md) – 本節提供詳細的逐步解說，讓您根據規則驗證 JSON 或 YAML 格式的結構化資料。
+  [Guard CLI 參考](cfn-guard-command-reference.md) – 本節說明 Guard CLI 中可用的命令。

## Guard 功能
<a name="cfn-guard-feature-overview"></a>

使用 Guard，您可以撰寫政策規則來驗證任何 JSON 或 YAML 格式的結構化資料，包括但不限於 CloudFormation 範本。Guard 支援政策檢查的完整end-to-end評估範圍。規則在下列商業網域中很有用：
+ **預防性控管和合規 （左移測試）** – 根據代表組織安全與合規最佳實務的政策規則，驗證基礎設施為程式碼 (IaC) 或基礎設施和服務組合。例如，您可以驗證 CloudFormation 範本、CloudFormation 變更集、JSON 型 Terraform 組態檔案或 Kubernetes 組態。
+ **Detective 控管和合規** – 驗證組態管理資料庫 (CMDB) 資源的一致性，例如 AWS Config以組態項目 CIs)。例如，開發人員可以使用針對 AWS Config CIs Guard 政策來持續監控已部署 AWS 和非AWS 資源的狀態、偵測政策違規，以及開始修復。
+ **部署安全** – 確保變更在部署之前是安全的。例如，根據政策規則驗證 CloudFormation 變更集，以防止導致資源取代的變更，例如重新命名 Amazon DynamoDB 資料表。

## 搭配 CloudFormation 勾點使用 Guard
<a name="acessing-cfn-guard"></a>

您可以使用 CloudFormation Guard 在 CloudFormation Hooks 中撰寫勾點。CloudFormation Hooks 可讓您在 CloudFormation 建立、更新或刪除操作，以及 AWS 雲端控制 API 建立或更新操作之前，主動強制執行您的 Guard 規則。勾點可確保您的資源組態符合組織的安全性、營運和成本最佳化最佳實務。

如需如何使用 Guard 撰寫 CloudFormation Guard Hooks 的詳細資訊，請參閱*CloudFormation 《Hooks 使用者指南》中的* [Write Guard 規則來評估 Guard Hooks 的資源](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/guard-hooks-write-rules.html)。

## 存取 Guard
<a name="using-cfn-guard-hooks"></a>

若要存取 Guard DSL 和 命令，您必須安裝 Guard CLI。如需安裝 Guard CLI 的詳細資訊，請參閱 [設定 Guard](setting-up.md)。

## 最佳實務
<a name="best-practices"></a>

撰寫簡單的規則，並使用具名規則來參考其他規則中的規則。複雜的規則可能難以維護和測試。