View a markdown version of this page

什么是 AWS CloudFormation Guard? - AWS CloudFormation Guard

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

什么是 AWS CloudFormation Guard?

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

Guard 不会验证 CloudFormation 模板的有效语法或允许的属性值。您可以使用 cfn-lint 工具对模板结构进行彻底检查。

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

有关 AWS CloudFormation Guard 开发的详细信息,请参阅 Guard GitHub 存储库

你是第一次使用 Guard 吗?

如果您是首次使用 Guard,我们建议您先阅读以下章节:

  • 设置警卫— 本节介绍如何安装 Guard。使用 Guard,您可以使用 Guard DSL 编写策略规则,并根据这些规则验证 JSON 或 YAML 格式的结构化数据。

  • 编写警卫规则— 本节提供了编写策略规则的详细演练。

  • 测试防护规则— 本节提供了详细的演练,用于测试您的规则以验证它们是否按预期运行,并根据您的规则验证 JSON 或 YAML 格式的结构化数据。

  • 根据防护规则验证输入数据— 本节详细介绍如何根据您的规则验证 JSON 或 YAML 格式的结构化数据。

  • Guard CLI 参考资料— 本节介绍了 Guard CLI 中可用的命令。

警卫功能

使用 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 钩子的防护

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

有关如何使用 Guard 创作 Gu CloudFormation ard Hook 的详细信息,请参阅 H ooks 用户指南中的编写防护规则来评估防护CloudFormation 挂钩的资源

访问警卫

要访问 Guard DSL 和命令,必须安装 Guard CLI。有关安装 Guard CLI 的信息,请参阅设置警卫

最佳实践

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