

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

# 什么是 CloudFormation 挂钩？
<a name="what-is-cloudformation-hooks"></a>

CloudFormation Hooks 是一项功能，可帮助确保您的 CloudFormation 资源、堆栈和变更集符合组织的安全、运营和成本优化最佳实践。 CloudFormation Hook 还可以确保您的 AWS 云端控制 API 资源达到相同级别的合规性。借 CloudFormation 助 Hook，您可以提供在配置之前主动检查 AWS 资源配置的代码。如果发现不合规的资源，则 CloudFormation 要么操作失败并阻止资源置备，要么发出警告并允许置备操作继续进行。

你可以使用 Hook 来强制执行各种要求和指导方针。例如，与安全相关的挂钩可以验证安全组是否具有适用于您的 [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) 的相应入站和出站流量规则。与成本相关的挂钩可以将开发环境限制为仅使用较小的 [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) 实例类型。专为数据可用性而设计的挂钩可以强制执行 [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) 的自动备份。

## Hook 实现选项
<a name="hook-implementation-options"></a>

CloudFormation 为实现 Hook 提供了多种选项，使您可以灵活地选择最适合自己需求的方法。

### AWS Control Tower 主动控制
<a name="hook-control-tower-proactive-controls"></a>

 AWS Control Tower 控制目录提供标准化的主动控件，您可以将其作为 Hook 来实现。这种方法可以节省设置时间，并帮助您根据组织中的 AWS 最佳实践验证资源配置，而无需编写代码。

### Guard 规则
<a name="hook-guard-hooks"></a>

AWS CloudFormation Guard 是一种 policy-as-code评估工具，它提供了一种特定于域的语言，用于为 Hook 编写自定义评估逻辑。这种方法允许您使用 Guard 的声明语法定义合规性检查，无需丰富的编程知识即可轻松创建和维护评估逻辑。

### Lambda 函数
<a name="hook-lambda-hooks"></a>

您还可以使用 Lambda 函数实现 Hook，这样您就可以充分利用 Lambda 的强大功能和灵活性来实现评估逻辑。您可以使用任何 Lambda 支持的运行时语言，并根据需要与其他 AWS 服务集成。

### 自定义挂钩
<a name="hook-custom-hooks"></a>

对于高级用例，您可以使用 [CloudFormation CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html) 支持的编程语言编写自己的评估逻辑。这种方法为实施组织特定的治理要求提供了最大的灵活性。作为[CloudFormation 注册表](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html)中支持的扩展类型，您的自定义 Hook 可以公开和私下分发和激活。