View a markdown version of this page

步骤 5:创建启动角色 - AWS Service Catalog

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

步骤 5:创建启动角色

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

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

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

  • 对 AWS Service Catalog自有的 Amazon S3 存储桶中的 Amazon S3 模板的读取权限

  • 对 CreateGroup、ListGroupResources、DeleteGroup 和 Tag 资源组操作的访问权限。这些操作 AWS Service Catalog 允许管理资源组和标签

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

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

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

    • 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. 请选择下一步,标签。

    2. 选择下一步,审核。

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

    4. 选择创建策略。

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

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

    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::123456789012:root" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::123456789012:role/TerraformEngine/TerraformExecutionRole*", "arn:aws:iam::123456789012:role/TerraformEngine/ServiceCatalogExternalParameterParserRole*", "arn:aws:iam::123456789012:role/TerraformEngine/ServiceCatalogTerraformOSParameterParserRole*" ] } } } ] }
  5. 选择下一步。

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

  7. 选择下一步。

  8. 对于角色名称,输入 SCLaunch-S3product。

    重要

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

  9. 选择创建角色。

    重要

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

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

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

注意

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

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