

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

# 在您的账户中激活基于主动控制的 Hook
<a name="proactive-controls-hooks-activate-hooks"></a>

以下主题向您展示了如何在您的账户中激活基于主动控制的 Hook，这使其可用于激活该挂钩的账户和区域。

**重要**  
在继续操作之前，请确认您拥有使用 Hook 所需的权限，并从控制 CloudFormation 台查看主动控件。有关更多信息，请参阅 [为 CloudFormation Hook 授予 IAM 权限](grant-iam-permissions-for-hooks.md)。

**Topics**
+ [激活基于主动控制的 Hook（控制台）](#proactive-controls-hooks-activate-hook-console)
+ [激活基于主动控制的 Hook ()AWS CLI](#proactive-controls-hooks-activate-hooks-cli)

## 激活基于主动控制的 Hook（控制台）
<a name="proactive-controls-hooks-activate-hook-console"></a>

**激活基于主动控制的 Hook 以在您的账户中使用**

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/cloudformat](https://console.aws.amazon.com/cloudformation/) ion 上打开 CloudFormation 控制台。

1. 在屏幕顶部的导航栏上，选择要创建 Hook in AWS 区域 的位置。

1. 在左侧的导航窗格中，选择 **Hook**。

1. 在 “**挂钩**” 页面上，选择 “**创建挂钩**”，然后选择 “**使用控制目录”**。

1. 在 **“选择控件**” 页面上，为**主动控制**选择一个或多个要使用的主动控制。

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

1. 选择**下一步**。

1. 在 **Hook 名称**中，选择以下选项之一：
   + 提供一个简短的描述性名称，该名称将在之后`Private::Controls::`添加。例如，如果输入*`MyTestHook`*，则完整的 Hook 名称变为`Private::Controls::MyTestHook`。
   + 使用以下格式提供完整的 Hook 名称（也称为别名）：`Provider::ServiceName::HookName`。

1. 对于 **Hook 模式**，选择当控件评估失败时 Hook 的响应方式：
   + **警告**-向用户发出警告，但允许继续执行操作。这对于非关键验证或信息检查很有用。
   + **失败**-阻止操作继续进行。这有助于执行严格的合规或安全政策。

1. 选择**下一步**。

1. （可选）对于 **Hook 过滤器**，请执行以下操作：

   1. 在**筛选条件**中，选择应用堆栈名称和堆栈角色筛选器的逻辑：
      + **所有堆栈名称和堆栈角色** — 只有当所有指定的过滤器都匹配时，才会调用 Hook。
      + **任何堆栈名称和堆栈角色** — 如果指定的过滤器中至少有一个匹配，则将调用 Hook。

   1. 对于**堆栈名称**，请在 Hook 调用中包含或排除特定的堆栈。
      + 对于 “**包含**”，指定要包含的堆栈名称。当你想要瞄准一小部分特定的堆栈时，请使用此选项。只有此列表中指定的堆栈才会调用 Hook。
      + 对于**排除**，请指定要排除的堆栈名称。当你想在大多数堆栈上调用 Hook 但排除一些特定的堆栈时，请使用此选项。除此处列出的堆栈外，所有堆栈都将调用 Hook。

   1. 对于**堆栈角色**，请根据其关联的 IAM 角色在 Hook 调用中包含或排除特定堆栈。
      + 对于 **Inc** lude，指定一个或多个 IAM 角色 ARNs 来定位与这些角色关联的堆栈。只有由这些角色启动的堆栈操作才会调用 Hook。
      + 对于**排除，请 ARNs 为要排除**的堆栈指定一个或多个 IAM 角色。Hook 将在除指定角色启动的堆栈之外的所有堆栈上调用。

1. 选择**下一步**。

1. 在 “**查看并激活**” 页面上，查看您的选择。要进行更改，请在相关部分选择**编辑**。

1. 准备好继续操作时，选择 “**激活挂钩**”。

## 激活基于主动控制的 Hook ()AWS CLI
<a name="proactive-controls-hooks-activate-hooks-cli"></a>

在继续操作之前，请确认您已经确定了将用于此 Hook 的主动控制。有关更多信息，请参阅[AWS Control Tower 控制目录](https://docs.aws.amazon.com/controltower/latest/controlreference/controls-reference.html)。

**激活基于主动控制的 Hook 以便在您的账户中使用 ()AWS CLI**

1. 要开始激活 Hook，请使用以下[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/activate-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/activate-type.html)命令，用您的特定值替换占位符。

   ```
   aws cloudformation activate-type --type HOOK \
     --type-name AWS::ControlTower::Hook  \
     --publisher-id aws-hooks \
     --type-name-alias MyOrg::Security::ComplianceHook \
     --region us-west-2
   ```

1. 要完成激活 Hook，必须使用 JSON 配置文件对其进行配置。

   使用**cat**命令创建具有以下结构的 JSON 文件。有关更多信息，请参阅 [挂钩配置架构语法参考](hook-configuration-schema.md)。

   以下示例配置了一个挂钩，该挂钩在和操作期间`CREATE`对特定 IAM、Amazon EC2 和 Amazon S3 资源进行调用。`UPDATE`它应用三种主动控制措施（`CT.IAM.PR.5`、`CT.EC2.PR.17`、`CT.S3.PR.12`），根据合规性标准验证这些资源。该挂钩在`WARN`模式下运行，这意味着它将用警告标记不合规的资源，但不会阻止部署。

   ```
   $ cat > config.json
   {
     "CloudFormationConfiguration": {
       "HookConfiguration": {
         "HookInvocationStatus": "ENABLED",
         "TargetOperations": ["RESOURCE"],
         "FailureMode": "WARN",
         "Properties": {
           "ControlsToApply": "CT.IAM.PR.5,CT.EC2.PR.17,CT.S3.PR.12"
         },
         "TargetFilters": {
           "Actions": [
             "CREATE",
             "UPDATE"
           ]
         }
       }
     }
   }
   ```
   + `HookInvocationStatus`：设置`ENABLED`为可启用挂钩。
   + `TargetOperations`：设置`RESOURCE`为，因为这是基于主动控制的 Hook 唯一支持的值。
   + `FailureMode`：设置为 `FAIL` 或 `WARN`。
   + `ControlsToApply`：指定要使用的主动控制措施。 IDs 有关更多信息，请参阅[AWS Control Tower 控制目录](https://docs.aws.amazon.com/controltower/latest/controlreference/controls-reference.html)。
   + （可选）`TargetFilters`：对于`Actions`，您可以指定`CREATE`或或`UPDATE`两者（默认）来控制何时调用 Hook。`CREATE`仅指定即可将 Hook 限制为只能`CREATE`执行操作。其他`TargetFilters`属性无效。

1. 使用以下[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-configuration.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-configuration.html)命令以及您创建的 JSON 文件来应用配置。用您的特定值替换占位符。

   ```
   aws cloudformation set-type-configuration \
     --configuration file://config.json \
     --type-arn "arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyOrg-Security-ComplianceHook" \
     --region us-west-2
   ```