步骤 5:创建启动角色 - Amazon Service Catalog
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

步骤 5:创建启动角色

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

您稍后分配给简单 Amazon S3 桶 Terraform 产品作为启动约束的 IAM 角色(启动角色)必须具有以下权限:

  • 您的 Terraform 产品基础 Amazon 资源的访问权限。在本教程中,这包括对 s3:CreateBucket*s3:DeleteBucket*s3:Get*s3:List*s3:PutBucketTagging Amazon S3 操作的访问权限。

  • 自 Amazon Service Catalog 拥有的 Amazon S3 存储桶中读取 Amazon S3 模板的访问权限

  • CreateGroupListGroupResourcesDeleteGroupTag 资源组操作的访问权限。借助这些操作,Amazon Service Catalog 能够管理资源组和标签

要在 Amazon Service Catalog 管理员账户中创建启动角色
  1. 登录 Amazon Service Catalog 管理员账户后,遵照 IAM 用户指南在 JSON 选项卡上创建新策略的说明进行操作。

  2. 为您的简单 Amazon S3 存储桶 Terraform 产品创建策略。此策略必须在创建启动角色之前创建,并且包含以下权限:

    • s3— 允许 Amazon Service Catalog 列出、读取、写入、预配置和标记 Amazon S3 产品的完全权限。

    • s3— 允许对 Amazon Service Catalog 拥有的 Amazon S3 存储桶的访问权限。要部署产品,Amazon Service Catalog 需要预配置构件的访问权限。

    • resourcegroups— 允许 Amazon Service Catalog 创建、列出、删除和标记 Amazon Resource Groups。

    • tag— 允许 Amazon Service Catalog 的标记权限。

    注意

    根据您要部署的基础资源,您可能需要修改示例 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. 请选择下一步标签

    2. 选择下一步,审核

    3. 查看策略页面上,输入 S3ResourceCreationAndArtifactAccessPolicy 作为名称

    4. 选择创建策略

  3. 在导航窗格中,选择角色,然后选择创建角色

  4. 对于选择可信实体,选择自定义信任策略,然后输入以下 JSON 策略:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "GivePermissionsToServiceCatalog", "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account_id:root" }, "Action": "sts:AssumeRole", "Condition": { "StringLike": { "aws:PrincipalArn": [ "arn:aws:iam::accounti_id:role/TerraformEngine/TerraformExecutionRole*", "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogExternalParameterParserRole*", "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogTerraformOSParameterParserRole*" ] } } } ] }
  5. 选择下一步

  6. 策略列表中,选择您刚才创建的 S3ResourceCreationAndArtifactAccessPolicy

  7. 选择下一步

  8. 对于 Role name(角色名称),输入 SCLaunch-S3product

    重要

    启动角色名称必须以 “SCLaunch” 开头,后跟所需的角色名称。

  9. 选择创建角色

    重要

    在 Amazon Service Catalog 管理员账户中创建启动角色后,您还必须在 Amazon Service Catalog 最终用户账户中创建相同的启动角色。最终用户账户中的角色必须与管理员账户中的角色同名并包含相同的策略。

要在 Amazon Service Catalog 最终用户账户中创建启动角色
  1. 以管理员身份登录最终用户账户,遵照 IAM 用户指南在 JSON 选项卡上创建新策略的说明进行操作。

  2. 重复上述要在 Amazon Service Catalog 管理员账户中创建启动角色中的步骤 2-10。

注意

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

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