

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

# 准备创建防护挂钩
<a name="guard-hooks-prepare-to-create-hook"></a>

在创建 Guard Hook 之前，必须满足以下先决条件：
+ 您必须已经创建了守卫规则。有关更多信息，请参阅[为 Hook 编写防护规则](guard-hooks-write-rules.md)。
+ 创建 Hook 的用户或角色必须具有足够的权限才能激活 Hook。有关更多信息，请参阅 [为 CloudFormation Hook 授予 IAM 权限](grant-iam-permissions-for-hooks.md)。
+ 要使用 AWS CLI 或软件开发工具包创建 Guard Hook，您必须手动创建具有 IAM 权限的执行角色和允许 CloudFormation 调用 Guard Hook 的信任策略。

## 为 Guard Hook 创建执行角色
<a name="guard-hooks-create-execution-role"></a>

Hook 使用执行角色来获得在你中调用该 Hook 所需的权限 AWS 账户。

如果您从中创建 Guard Hook，则可以自动创建此角色 AWS 管理控制台；否则，您必须自己创建此角色。

以下部分向您展示如何设置权限以创建 Guard Hook。

### 所需的权限
<a name="guard-hooks-execution-role-permissions"></a>

按照《IAM 用户指南》**中[使用自定义信任策略创建角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)的指导，使用自定义信任策略创建角色。

然后，完成以下步骤来设置您的权限：

1. 将以下最低权限策略附加到要用于创建 Guard Hook 的 IAM 角色。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:ListBucket",
           "s3:GetObject",
           "s3:GetObjectVersion"
         ],
         "Resource": [
           "arn:aws:s3:::my-guard-output-bucket/*",
           "arn:aws:s3:::my-guard-rules-bucket"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:PutObject"
         ],
         "Resource": [
           "arn:aws:s3:::my-guard-output-bucket/*"
         ]
       }
     ]
   }
   ```

------

1. 通过向角色添加信任策略，授予您的 Hook 代入该角色的权限。以下显示了您可以使用的信任策略示例。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "hooks.cloudformation.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------