创建和管理 AWS CloudFormation Hook - AWS CloudFormation

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

创建和管理 AWS CloudFormation Hook

AWS CloudFormation Hook 提供了一种在允许创建、修改或删除堆栈之前评估 CloudFormation 资源的机制。此功能可帮助您确保您的 CloudFormation 资源符合组织的安全、运营和成本优化最佳实践。

要创建 Hook,有四个选项。

  • 作为挂钩的主动控制 — 使用控制目录中的主动控制来评估资源。 AWS Control Tower

  • Guard Hook — 使用 AWS CloudFormation Guard 规则评估资源。

  • Lambda 挂钩 — 将资源评估请求转发给函数。 AWS Lambda

  • Custom Hoo k — 使用您手动开发的自定义 Hook 处理程序。

Proactive controls as Hooks

要通过主动控件创建 Hook,请执行以下步骤:

  1. 导航到 CloudFormation 控制台并开始创建 Hook。

  2. 从控制目录中选择您希望 Hook 评估资源的特定控件。

    每当创建或更新指定资源时,这些控件都将自动适用。您的选择决定了 Hook 将评估哪些资源类型。

  3. 将 Hook 模式设置为警告用户注意不合规行为或防止不合规操作。

  4. 配置可选过滤器以按堆栈名称或堆栈角色包含或排除堆栈。

  5. 完成配置后,激活 Hook 以开始强制执行。

Guard Hook

要创建 Guard Hook,请执行以下步骤:

  1. 使用 Guard 域特定语言 (DSL) 将资源评估逻辑写成警卫策略规则。

  2. 将防护策略规则存储在 Amazon S3 存储桶中。

  3. 导航到 CloudFormation 控制台并开始创建 Guard Hook。

  4. 提供指向您的防护规则的 Amazon S3 路径。

  5. 选择 Hook 将评估的特定目标类型。

    • CloudFormation 资源 (RESOURCE)

    • 整个堆栈模板 (STACK)

    • 零钱套装 (CHANGE_SET)

    • 云控制 API 资源 (CLOUD_CONTROL)

  6. 选择将调用您的 Hook 的部署操作(创建、更新、删除)。

  7. 选择 Hook 在评估失败时的响应方式。

  8. 配置可选过滤器以指定 Hook 应评估哪些资源类型

  9. 配置可选过滤器以按堆栈名称或堆栈角色包含或排除堆栈。

  10. 完成配置后,激活 Hook 以开始强制执行。

Lambda Hook

要创建 Lambda 挂钩,请执行以下步骤:

  1. 将您的资源评估逻辑写成 Lambda 函数。

  2. 导航到 CloudFormation 控制台并开始创建 Lambda 挂钩。

  3. 为您的 Lambda 函数提供亚马逊资源名称 (ARN)。

  4. 选择 Hook 将评估的特定目标类型。

    • CloudFormation 资源 (RESOURCE)

    • 整个堆栈模板 (STACK)

    • 零钱套装 (CHANGE_SET)

    • 云控制 API 资源 (CLOUD_CONTROL)

  5. 选择将调用您的 Hook 的部署操作(创建、更新、删除)。

  6. 选择 Hook 在评估失败时的响应方式。

  7. 配置可选过滤器以指定 Hook 应评估哪些资源类型

  8. 配置可选过滤器以按堆栈名称或堆栈角色包含或排除堆栈。

  9. 完成配置后,激活 Hook 以开始强制执行。

Custom Hook

自定义挂钩是您使用 CloudFormation 命令行界面 (CFN-CLI) 在 CloudFormation注册表中注册的扩展。

要创建自定义 Hook,请执行以下主要步骤:

  1. 启动项目 — 生成开发自定义 Hook 所需的文件。

  2. 为挂钩建模 — 编写一个架构来定义 Hook 和指定可以调用 Hook 的操作的处理程序。

  3. 注册并激活挂钩 — 创建挂钩后,需要在要使用挂钩的账户和区域中注册挂钩,这样即可激活挂钩。

以下主题提供了有关创建和管理 Hook 的更多信息。