

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

AWS CloudFormation Guard 是一款开源的通用 policy-as-code评估工具。Guard 命令行界面 (CLI) 提供了一种 simple-to-use声明性域特定语言 (DSL)，可用于将策略表示为代码。此外，您可以使用 CLI 命令根据这些规则验证结构化分层 JSON 或 YAML 数据。Guard 还提供了一个内置的单元测试框架，用于验证您的规则是否按预期运行。

Guard 不会验证 CloudFormation 模板的有效语法或允许的属性值。您可以使用 [cfn-lint](https://github.com/aws-cloudformation/cfn-python-lint) 工具对模板结构进行彻底检查。

Guard 不提供服务器端强制执行。你可以使用 CloudFormation Hook 来执行服务器端验证和强制执行，在那里你可以阻止或警告操作。

有关 AWS CloudFormation Guard 开发的详细信息，请参阅 [Guard GitHub 存储库](https://github.com/aws-cloudformation/cloudformation-guard/)。

**Topics**
+ [你是第一次使用 Guard 吗？](#first-time-user)
+ [警卫功能](#cfn-guard-feature-overview)
+ [使用带 CloudFormation 钩子的防护](#acessing-cfn-guard)
+ [访问警卫](#using-cfn-guard-hooks)
+ [最佳实践](#best-practices)

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

如果您是首次使用 Guard，我们建议您先阅读以下章节：
+  [设置警卫](setting-up.md)— 本节介绍如何安装 Guard。使用 Guard，您可以使用 Guard DSL 编写策略规则，并根据这些规则验证 JSON 或 YAML 格式的结构化数据。
+  [编写警卫规则](writing-rules.md)— 本节提供了编写策略规则的详细演练。
+  [测试防护规则](testing-rules.md)— 本节提供了详细的演练，用于测试您的规则以验证它们是否按预期运行，并根据您的规则验证 JSON 或 YAML 格式的结构化数据。
+  [根据防护规则验证输入数据](validating-rules.md)— 本节详细介绍如何根据您的规则验证 JSON 或 YAML 格式的结构化数据。
+  [Guard CLI 参考资料](cfn-guard-command-reference.md)— 本节介绍了 Guard CLI 中可用的命令。

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

使用 Guard，您可以编写策略规则来验证任何 JSON 或 YAML 格式的结构化数据，包括但不限于 CloudFormation 模板。Guard 支持对策略检查的整个 end-to-end评估范围。规则在以下业务领域很有用：
+ **预防性治理和合规性（左移测试）**— 根据代表组织安全与合规最佳实践的策略规则，验证基础设施即代码 (IaC) 或基础设施和服务组合。例如，您可以验证 CloudFormation 模板、 CloudFormation 更改集、基于 JSON 的 Terraform 配置文件或 Kubernetes 配置。
+ D@@ **etective 治理和合规性** — 验证配置管理数据库 (CMDB) 资源的一致性，例如 AWS Config基于配置的项目 (CIs)。例如，开发人员可以使用 Guard 策略 AWS Config CIs 来持续监控已部署资源 AWS 和非AWS 资源的状态，检测策略中的违规行为并开始修复。
+ **部署安全**-在部署之前确保更改是安全的。例如，根据策略规则验证 CloudFormation 变更集，以防止导致资源替换的更改，例如重命名 Amazon DynamoDB 表。

## 使用带 CloudFormation 钩子的防护
<a name="acessing-cfn-guard"></a>

你可以使用 CloudFormation Guard 来创作 Hook in CloudFormation Hooks。 CloudFormation Hook 允许您在 CloudFormation 创建、更新或删除操作以及 AWS 云端控制 API 创建或更新操作之前主动强制执行 Guard 规则。Hooks 可确保您的资源配置符合组织的安全、运营和成本优化最佳实践。

有关如何使用 Guard 创作 Gu CloudFormation ard Hook 的详细信息，请参阅 H [ooks *用户指南中的编写防护规则来评估防护CloudFormation 挂钩*的资源](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/guard-hooks-write-rules.html)。

## 访问警卫
<a name="using-cfn-guard-hooks"></a>

要访问 Guard DSL 和命令，必须安装 Guard CLI。有关安装 Guard CLI 的信息，请参阅[设置警卫](setting-up.md)。

## 最佳实践
<a name="best-practices"></a>

编写简单的规则，并使用命名规则在其他规则中引用它们。复杂的规则可能难以维护和测试。