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

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

Amazon Service Catalog 启动约束

启动约束指定 Amazon Identity and Access Management(IAM)角色,用户启动、更新或终止产品时 Amazon Service Catalog 将担任此角色。IAM 角色是一个权限集合,用户或 Amazon 服务可临时利用这些权限来使用 Amazon 服务。有关介绍性示例,请参阅:

启动约束适用于产品组合中的产品(产品-产品组合关联)。启动约束不适用于产品组合层面,也不适用于跨所有产品组合的某个产品。要将启动约束与产品组合中的所有产品相关联,您必须将启动约束分别应用于每个产品。

如果没有启动约束,最终用户必须使用自己的 IAM 凭证启动和管理产品。为此,他们必须具有针对 Amazon CloudFormation、 产品所使用的 Amazon 服务和 Amazon Service Catalog 的权限。通过使用启动角色,您可改为将最终用户的权限限定为他们对该产品所需的最小权限。有关最终用户权限的更多信息,请参阅Amazon Service Catalog 中的 Identity and Access Management

要创建和分配 IAM 角色,您必须拥有以下 IAM 管理权限:

  • iam:CreateRole

  • iam:PutRolePolicy

  • iam:PassRole

  • iam:Get*

  • iam:List*

配置启动角色

您向产品分配的作为启动约束的 IAM 角色必须拥有使用以下项的权限:

对于 Cloudformation 产品

  • arn:aws:iam::aws:policy/AWSCloudFormationFullAccess Amazon CloudFormation 托管策略

  • 产品 Amazon CloudFormation 模板中的服务

  • 自服务拥有的 Amazon S3 存储桶中读取 Amazon CloudFormation 模板的访问权限。

对于 Terraform 产品

  • 产品的 Amazon S3 模板中使用的服务

  • 自服务拥有的 Amazon S3 存储桶中读取 Amazon S3 模板的访问权限。

  • resource-groups:Tag 用于在 Amazon EC2 实例中进行标记(Terraform 预置引擎在执行配置操作时担任)

  • resource-groups:CreateGroup 用于资源组标记(Amazon Service Catalog 用于创建资源组和分配标签时担任)

IAM 角色的信任策略必须允许 Amazon Service Catalog 担任该角色。在以下过程中,您选择 Amazon Service Catalog 作为角色类型时,将自动设置信任策略。如果您不使用控制台,请参阅如何将信任策略与 IAM 角色一起使用中的为担任角色的 Amazon 服务创建信任策略部分。

注意

无法在启动角色中分配 servicecatalog:ProvisionProductservicecatalog:TerminateProvisionedProductservicecatalog:UpdateProvisionedProduct 权限。您必须使用 IAM 角色,如授予 Amazon Service Catalog 最终用户权限部分中的内联策略步骤所示。

注意

要在 Amazon Service Catalog 控制台中查看预配置的 Cloudformation 产品和资源,最终用户需要 Amazon CloudFormation 读取权限。在控制台中查看预配置产品和资源不会使用启动角色。

创建启动角色
  1. 通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

    Terraform 产品需要额外的启动角色配置。有关更多信息,请查看 Terraform 开源产品入门中的步骤 5:创建启动角色

  2. 选择 角色

  3. 选择创建新角色

  4. 输入角色名称并选择 Next Step

  5. Amazon Service Catalog 旁边的Amazon服务角色下,选择选择

  6. Attach Policy 页面上,选择 Next Step

  7. 要创建角色,请选择 Create Role

将策略附加到新角色
  1. 选择您创建的角色以查看角色详细信息页面。

  2. 选择 Permissions 选项卡,展开 Inline Policies 部分。然后选择 click here

  3. 选择 Custom Policy,然后选择 Select

  4. 输入策略的名称,然后将以下内容粘贴到 Policy Document 编辑器中:

    "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":"*", "Condition":{ "StringEquals":{ "s3:ExistingObjectTag/servicecatalog:provisioning":"true" } } ] }
    注意

    为启动约束配置启动角色时,您必须使用以下字符串:"s3:ExistingObjectTag/servicecatalog:provisioning":"true"

  5. 为产品使用的每个额外服务的策略添加一行。例如,要为 Amazon Relational Database Service (Amazon RDS) 添加权限,请在 Action 列表中的最后一行的末尾键入逗号,然后添加以下行:

    "rds:*"
  6. 选择应用策略

应用启动约束

您配置启动角色后,将该角色作为启动约束分配给产品。此操作将通知 Amazon Service Catalog 在最终用户启动产品时担任角色。

将角色分配给产品
  1. 通过以下网址打开 Service Catalog 控制台:https://console.aws.amazon.com/servicecatalog/

  2. 选择包含产品的产品组合。

  3. 选择约束选项卡并选择创建约束

  4. 产品中选择产品,然后在约束类型下选择启动。选择继续

  5. 启动约束 部分,您可以从自己的账户中选择 IAM 角色、输入 IAM 角色 ARN 或输入角色名称。

    如果您指定角色名称,当账户使用启动约束时,将使用账户中具有该名称的 IAM 角色。此方法允许使用与账户无关的启动角色约束,因此您可以为每个共享账户创建更少的资源。

    注意

    在创建启动约束的账户中,以及使用此启动约束启动产品的用户账户中,都必须存在给定的角色名称。

  6. 指定 IAM 角色后,选择 创建

在启动限制中添加混淆代理

Amazon Service Catalog 支持为使用担任角色请求运行的 API 提供混淆代理保护。添加启动约束时,您可以使用启动角色信任策略中的 sourceAccountsourceArn 条件来限制启动角色访问权限。它可确保启动角色由可信来源调用。

在以下示例中,Amazon Service Catalog 最终用户属于账户 111111111111。Amazon Service Catalog 管理员为产品创建 LaunchConstraint 时,最终用户可以在启动角色信任策略中指定以下条件,将担任角色限制为账户 111111111111。

"Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:servicecatalog:us-east-1:111111111111:*" }, "StringEquals":{ "aws:SourceAccount":"111111111111" } }

使用 LaunchConstraint 预配置产品的用户必须具有相同的 AccountId (111111111111)。否则,为防止滥用启动角色,操作将出现 AccessDenied 错误并失败。

以下 Amazon Service Catalog API 已通过混淆代理保护得到保护:

  • LaunchConstraint

  • ProvisionProduct

  • UpdateProvisionedProduct

  • TerminateProvisionedProduct

  • ExecuteProvisionedProductServiceAction

  • CreateProvisionedProductPlan

  • ExecuteProvisionedProductPlan

对 Amazon Service Catalog 的 sourceArn 保护仅支持模板化 ARN,例如“arn:<aws-partition>:servicecatalog:<region>:<accountId>:”。它不支持特定的资源 ARN。

验证启动约束

要确认 Amazon Service Catalog 使用角色启动产品,从 Amazon Service Catalog 控制台启动产品并成功预配置了产品。要在将约束发布给用户前对其进行测试,请创建包含相同产品的测试产品组合,并使用该产品组合测试约束。

启动产品
  1. 在 Amazon Service Catalog 控制台的菜单中,选择 Service Catalog最终用户

  2. 选择产品以打开产品详细信息页面。在启动选项表中,确认已显示角色的 Amazon 资源名称 (ARN)。

  3. 选择启动产品

  4. 继续执行启动步骤,填入任何所需信息。

  5. 确认产品已成功启动。