在您的账户中激活基于主动控制的 Hook - AWS CloudFormation

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

在您的账户中激活基于主动控制的 Hook

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

激活基于主动控制的 Hook(控制台)

激活基于主动控制的 Hook 以在您的账户中使用
  1. 登录 AWS Management Console 并在 https://console.aws.amazon.com/cloudformat ion 上打开 AWS CloudFormation 控制台。

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

  3. 在左侧的导航窗格中,选择 Hook

  4. 在 “挂钩” 页面上,选择 “创建挂钩”,然后选择 “使用控制目录”

  5. “选择控件” 页面上,为主动控制选择一个或多个要使用的主动控制。

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

  6. 选择下一步

  7. Hook 名称中,选择以下选项之一:

    • 提供一个简短的描述性名称,该名称将在之后Private::Controls::添加。例如,如果输入MyTestHook,则完整的 Hook 名称变为Private::Controls::MyTestHook

    • 使用以下格式提供完整的 Hook 名称(也称为别名):Provider::ServiceName::HookName

  8. 对于 Hook 模式,选择当控件评估失败时 Hook 的响应方式:

    • 警告-向用户发出警告,但允许继续执行操作。这对于非关键验证或信息检查很有用。

    • 失败-阻止操作继续进行。这有助于执行严格的合规或安全政策。

  9. 选择下一步

  10. (可选)对于 Hook 过滤器,请执行以下操作:

    1. 筛选条件中,选择应用堆栈名称和堆栈角色筛选器的逻辑:

      • 所有堆栈名称和堆栈角色 — 只有当所有指定的过滤器都匹配时,才会调用 Hook。

      • 任何堆栈名称和堆栈角色 — 如果指定的过滤器中至少有一个匹配,则将调用 Hook。

    2. 对于堆栈名称,请在 Hook 调用中包含或排除特定的堆栈。

      • 对于 “包含”,指定要包含的堆栈名称。当你想要瞄准一小部分特定的堆栈时,请使用此选项。只有此列表中指定的堆栈才会调用 Hook。

      • 对于排除,请指定要排除的堆栈名称。当你想在大多数堆栈上调用 Hook 但排除一些特定的堆栈时,请使用此选项。除此处列出的堆栈外,所有堆栈都将调用 Hook。

    3. 对于堆栈角色,请根据其关联的 IAM 角色在 Hook 调用中包含或排除特定堆栈。

      • 对于 Inc lude,指定一个或多个 IAM 角色 ARNs 来定位与这些角色关联的堆栈。只有由这些角色启动的堆栈操作才会调用 Hook。

      • 对于排除,请 ARNs 为要排除的堆栈指定一个或多个 IAM 角色。Hook 将在除指定角色启动的堆栈之外的所有堆栈上调用。

  11. 选择下一步

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

  13. 准备好继续操作时,选择 “激活挂钩”。

激活基于主动控制的 Hook ()AWS CLI

在继续操作之前,请确认您已经确定了将用于此 Hook 的主动控制。有关更多信息,请参阅AWS Control Tower 控制目录

激活基于主动控制的 Hook 以便在您的账户中使用 ()AWS CLI
  1. 要开始激活 Hook,请使用以下activate-type命令,用您的特定值替换占位符。

    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
  2. 要完成激活 Hook,必须使用 JSON 配置文件对其进行配置。

    使用cat命令创建具有以下结构的 JSON 文件。有关更多信息,请参阅 挂钩配置架构语法参考

    以下示例配置了一个挂钩,该挂钩在和操作期间CREATE对特定 IAM、Amazon 和 Amaz EC2 on S3 资源进行调用。UPDATE它应用三种主动控制措施(CT.IAM.PR.5CT.EC2.PR.17CT.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:设置为 FAILWARN

    • ControlsToApply:指定要使用的主动控制措施。 IDs 有关更多信息,请参阅AWS Control Tower 控制目录

    • (可选)TargetFilters:对于Actions,您可以指定CREATE或或UPDATE两者(默认)来控制何时调用 Hook。CREATE仅指定即可将 Hook 限制为只能CREATE执行操作。其他TargetFilters属性无效。

  3. 使用以下set-type-configuration命令以及您创建的 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