

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

# 步骤 5：创建启动角色
<a name="getstarted-launchrole-Terraform"></a>

在此步骤中，您将创建一个 IAM 角色（启动角色），指定 Terraform 配置引擎在最终用户启动 Terra HashiCorp form 产品时 AWS Service Catalog 可以承担的权限。

 您稍后分配给简单 Amazon S3 桶 Terraform 产品作为启动约束的 IAM 角色（启动角色）必须具有以下权限：
+ 访问您的 Terraform 产品的底层 AWS 资源。在本教程中，这包括对 `s3:CreateBucket*`、`s3:DeleteBucket*`、`s3:Get*`、`s3:List*` 和 `s3:PutBucketTagging` Amazon S3 操作的访问权限。
+ 在 AWS Service Catalog自有的 Amazon S3 存储桶中读取对亚马逊 S3 模板的访问权限 
+ 对 `CreateGroup`、`ListGroupResources`、`DeleteGroup` 和 `Tag` 资源组操作的访问权限。这些操作 AWS Service Catalog 允许管理资源组和标签

**在 AWS Service Catalog 管理员帐户中创建启动角色**

1. 登录 AWS Service Catalog 管理员账户后，按照 *IAM 用户指南*中 [JSON 选项卡上创建新策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)的说明进行操作。

1. 为您的简单 Amazon S3 存储桶 Terraform 产品创建**策略**。此策略必须在创建启动角色之前创建，并且包含以下权限：
   +  `s3`— 允许列出、读取、写入、配置和标记 Amazon S3 产品的 AWS Service Catalog 全部权限。
   +  `s3`— 允许访问拥有的 Amazon S3 存储桶。 AWS Service Catalog要部署产品， AWS Service Catalog 需要预配置构件的访问权限。
   +  `resourcegroups`— AWS Service Catalog 允许创建、列出、删除和标记 AWS Resource Groups。
   +  `tag`— 允许 AWS Service Catalog 标记权限。
**注意**  
 根据您要部署的基础资源，您可能需要修改示例 JSON 策略。

   在 JSON 策略文档中，粘贴以下内容：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "s3:GetObject",
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "s3:ExistingObjectTag/servicecatalog:provisioning": "true"
                   }
               }
           },
           {
               "Action": [
                   "s3:CreateBucket*",
                   "s3:DeleteBucket*",
                   "s3:Get*",
                   "s3:List*",
                   "s3:PutBucketTagging"
               ],
               "Resource": "arn:aws:s3:::*",
               "Effect": "Allow"
           },
           {
               "Action": [
                   "resource-groups:CreateGroup",
                   "resource-groups:ListGroupResources",
                   "resource-groups:DeleteGroup",
                   "resource-groups:Tag"
               ],
               "Resource": "*",
               "Effect": "Allow"
           },
           {
               "Action": [
                   "tag:GetResources",
                   "tag:GetTagKeys",
                   "tag:GetTagValues",
                   "tag:TagResources",
                   "tag:UntagResources"
               ],
               "Resource": "*",
               "Effect": "Allow"
           }
       ]
   }
   ```

------

1. 

   1. 请选择**下一步**，**标签**。

   1. 选择**下一步，****审核**。

   1. 在**查看策略**页面上，输入 **S3ResourceCreationAndArtifactAccessPolicy** 作为**名称**。

   1. 选择**创建策略**。

1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

1. 对于**选择可信实体**，选择**自定义信任策略**，然后输入以下 JSON 策略：

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

1. 在**策略**列表中，选择您刚才创建的 `S3ResourceCreationAndArtifactAccessPolicy`。

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

1. 对于**角色名称**，输入 **SCLaunch-S3product**。
**重要**  
启动角色名称**必须**以 “SCLaunch” 开头，后跟所需的角色名称。

1. 选择**创建角色**。
**重要**  
在 AWS Service Catalog 管理员帐户中创建启动角色后，还必须在 AWS Service Catalog 最终用户帐户中创建相同的启动角色。最终用户账户中的角色必须与管理员账户中的角色同名并包含相同的策略。

**在 AWS Service Catalog 最终用户账户中创建启动角色**

1. 以管理员身份登录最终用户账户，遵照 *IAM 用户指南*中[在 JSON 选项卡上创建新策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)的说明进行操作。

1. 重复上述在* AWS Service Catalog 管理员帐户中创建启动角色中的*步骤 2-10。

**注意**  
在 AWS Service Catalog 最终用户账户中创建启动角色时，请确保在自定义信任策略**AccountId**中使用相同的管理员。

现在您已经在管理员账户和最终用户账户中创建了启动角色，可以向产品添加启动约束了。