本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在你的账户中激活 Guard Hook
以下主题向您展示了如何在您的账户中激活 Guard Hook,这样它就可以在激活该挂钩的账户和区域中使用。
激活 Guard Hook(主机版)
激活 Guard Hook 以在你的账户中使用
登录 AWS Management Console 并在 https://console.aws.amazon.com/cloudformat
ion 上打开 AWS CloudFormation 控制台。 -
在屏幕顶部的导航栏上,选择要创建 Hook in AWS 区域 的位置。
-
如果您尚未创建任何防护规则,请创建您的防护规则,将其存储在 Amazon S3 中,然后返回此过程。请参考中的示例规则编写 Guard 规则来评估防护挂钩的资源开始使用。
如果您已经创建了防护规则并将其存储在 S3 中,请继续执行下一步。
注意
存储在 S3 中的对象必须具有以下文件扩展名之一:
.guard
.zip
、或.tar.gz
。 -
对于 Guard Hook 来源,请将您的防护规则存储在 S3 中,请执行以下操作:
-
对于 S3 URI,请指定规则文件的 S3 路径,或者使用浏览 S3 按钮打开对话框来浏览和选择 S3 对象。
-
(可选)对于对象版本,如果您的 S3 存储桶启用了版本控制,则可以选择 S3 对象的特定版本。
每次调用 Hook 时,Guard Hook 都会从 S3 下载您的规则。为防止意外更改或删除,我们建议在配置 Guard Hook 时使用版本。
-
-
(可选)对于 S3 存储桶 for Guard 输出报告,请指定一个 S3 存储桶来存储 Guard 输出报告。此报告包含您的 Guard 规则验证结果。
要配置输出报告目标,请选择以下选项之一:
-
选中 “使用我的 Guard 规则存储在同一个存储桶” 复选框以使用您的 Guard 规则所在的同一个存储桶。
-
选择不同的 S3 存储桶名称来存储 Guard 输出报告。
-
-
(可选)展开防护规则输入参数,然后在 “将您的防护规则输入参数存储在 S3 中” 下提供以下信息:
-
对于 S3 URI,请指定参数文件的 S3 路径,或者使用浏览 S3 按钮打开对话框来浏览和选择 S3 对象。
-
(可选)对于对象版本,如果您的 S3 存储桶启用了版本控制,则可以选择 S3 对象的特定版本。
-
-
选择下一步。
-
在 Hook 名称中,选择以下选项之一:
-
提供一个简短的描述性名称,该名称将在之后
Private::Guard::
添加。例如,如果输入
,则完整的 Hook 名称变为MyTestHook
Private::Guard::
。MyTestHook
-
使用以下格式提供完整的 Hook 名称(也称为别名):
Provider
::ServiceName
::HookName
-
-
对于 Hook 目标,请选择要评估的内容:
-
堆栈-在用户创建、更新或删除堆栈时评估堆栈模板。
-
资源-在用户更新堆栈时评估各个资源的变化。
-
变更集-当用户创建变更集时,评估计划的更新。
-
云控制 API-评估云控制API启动的创建、更新或删除操作。
-
-
在 “操作” 中,选择哪些操作(创建、更新、删除)将调用您的 Hook。
-
对于 Hook 模式,选择规则评估失败时挂钩的响应方式:
-
警告-向用户发出警告,但允许继续执行操作。这对于非关键验证或信息检查很有用。
-
失败-阻止操作继续进行。这有助于执行严格的合规或安全政策。
-
-
对于执行角色,选择 CloudFormation Hook 扮IAM演的角色来从 S3 检索您的警卫规则,并可以选择写回详细的 Guard 输出报告。您可以 CloudFormation 允许自动为您创建执行角色,也可以指定已创建的角色。
-
选择下一步。
-
(可选)对于 Hook 过滤器,请执行以下操作:
-
在资源筛选器中,指定哪些资源类型可以调用 Hook。这样可以确保仅针对相关资源调用 Hook。
-
在筛选条件中,选择应用堆栈名称和堆栈角色筛选器的逻辑:
-
所有堆栈名称和堆栈角色 — 只有当所有指定的过滤器都匹配时,才会调用 Hook。
-
任何堆栈名称和堆栈角色 — 如果指定的过滤器中至少有一个匹配,则将调用 Hook。
注意
对于 Cloud Control API 操作,所有堆栈名称和堆栈角色筛选器都将被忽略。
-
-
对于堆栈名称,在 Hook 调用中包含或排除特定堆栈。
-
对于 “包含”,指定要包含的堆栈名称。当你想要瞄准一小部分特定的堆栈时,请使用此选项。只有此列表中指定的堆栈才会调用 Hook。
-
对于排除,请指定要排除的堆栈名称。当你想在大多数堆栈上调用 Hook 但排除一些特定的堆栈时,请使用此选项。除此处列出的堆栈外,所有堆栈都将调用 Hook。
-
-
对于堆栈角色,请根据其关联角色在 Hook 调用中包含或排除特定堆栈。IAM
-
对于 In clude,指定一个或多个IAM角色ARNs来定位与这些角色关联的堆栈。只有由这些角色启动的堆栈操作才会调用 Hook。
-
在 “排除” 中,ARNs为要排除的堆栈指定一个或多个IAM角色。Hook 将在除指定角色启动的堆栈之外的所有堆栈上调用。
-
-
-
选择下一步。
-
在 “查看并激活” 页面上,查看您的选择。要进行更改,请在相关部分选择编辑。
-
准备好继续操作时,选择 “激活挂钩”。
激活警戒钩 (AWS CLI)
在继续操作之前,请确认您已创建守卫规则和将在此 Hook 中使用的执行角色。有关更多信息,请参阅编写 Guard 规则来评估防护挂钩的资源 和为 Guard Hook 创建执行角色。
激活 Guard Hook 以在你的账户中使用 (AWS CLI)
-
要开始激活 Hook,请使用以下命令 activate-type命令,用您的特定值替换占位符。此命令授权 Hook 使用您的 AWS 账户指定执行角色。
aws cloudformation activate-type --type HOOK \ --type-name AWS::Hooks::GuardHook \ --publisher-id aws-hooks \ --type-name-alias
Private::Guard::MyTestHook
\ --execution-rolearn:aws:iam::123456789012:role/my-execution-role
\ --regionus-west-2
-
要完成激活 Hook,必须使用配置文件对其进行JSON配置。
使用cat命令创建具有以下结构的JSON文件。有关更多信息,请参阅 挂钩配置架构语法参考。
$ cat > config.json { "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus":
"ENABLED"
, "TargetOperations": ["STACK", "RESOURCE", "CHANGE_SET"
], "FailureMode":"WARN"
, "Properties": { "ruleLocation":"s3://amzn-s3-demo-bucket/MyGuardRules.guard"
, "logBucket":"amzn-s3-demo-logging-bucket"
} } } }-
HookInvocationStatus
:设置ENABLED
为可启用挂钩。 -
TargetOperations
:指定要对哪些操作运行 Hook。 -
FailureMode
:设置为FAIL
或WARN
。 -
ruleLocation
:替换为URI存储规则的 S3。存储在 S3 中的对象必须具有以下文件扩展名之一:.guard
.zip
、和。.tar.gz
-
logBucket
:(可选)为 Guard JSON 报告指定 S3 存储桶的名称。
-
-
使用以下内容 set-type-configuration命令以及您创建JSON的文件一起应用配置。用您的特定值替换占位符。
aws cloudformation set-type-configuration \ --configuration
file://config.json
\ --type-arn"arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyTestHook"
\ --regionus-west-2
相关资源
我们提供了模板示例,您可以使用这些示例来了解如何在 CloudFormation 堆栈模板中声明 Guard Hook。有关更多信息,请参阅 AWS::CloudFormation::GuardHook(在 AWS CloudFormation 用户指南中)。