本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Service Catalog 启动约束
启动约束指定 Amazon Identity and Access Management(IAM)角色,用户启动、更新或终止产品时 Amazon Service Catalog 将担任此角色。IAM 角色是一个权限集合,用户或 Amazon 服务可临时利用这些权限来使用 Amazon 服务。有关介绍性示例,请参阅:
-
Amazon CloudFormation 产品类型:步骤 6:添加启动约束以分配 IAM 角色
-
Terraform 开源或 Terraform 云产品类型:步骤 5:创建启动角色
启动约束适用于产品组合中的产品(产品-产品组合关联)。启动约束不适用于产品组合层面,也不适用于跨所有产品组合的某个产品。要将启动约束与产品组合中的所有产品相关联,您必须将启动约束分别应用于每个产品。
如果没有启动约束,最终用户必须使用自己的 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 角色一起使用
注意
无法在启动角色中分配 servicecatalog:ProvisionProduct
、servicecatalog:TerminateProvisionedProduct
和 servicecatalog:UpdateProvisionedProduct
权限。您必须使用 IAM 角色,如授予 Amazon Service Catalog 最终用户权限部分中的内联策略步骤所示。
注意
要在 Amazon Service Catalog 控制台中查看预配置的 Cloudformation 产品和资源,最终用户需要 Amazon CloudFormation 读取权限。在控制台中查看预配置产品和资源不会使用启动角色。
创建启动角色
-
通过 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 Terraform 产品需要额外的启动角色配置。有关更多信息,请查看 Terraform 开源产品入门中的步骤 5:创建启动角色。
-
选择 角色。
-
选择创建新角色。
-
输入角色名称并选择 Next Step。
-
在 Amazon Service Catalog 旁边的Amazon服务角色下,选择选择。
-
在 Attach Policy 页面上,选择 Next Step。
-
要创建角色,请选择 Create Role。
将策略附加到新角色
-
选择您创建的角色以查看角色详细信息页面。
-
选择 Permissions 选项卡,展开 Inline Policies 部分。然后选择 click here。
-
选择 Custom Policy,然后选择 Select。
-
输入策略的名称,然后将以下内容粘贴到 Policy Document 编辑器中:
"Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":"*", "Condition":{ "StringEquals":{ "s3:ExistingObjectTag/servicecatalog:provisioning":"true" } } ] }
注意
为启动约束配置启动角色时,您必须使用以下字符串:
"s3:ExistingObjectTag/servicecatalog:provisioning":"true"
。 -
为产品使用的每个额外服务的策略添加一行。例如,要为 Amazon Relational Database Service (Amazon RDS) 添加权限,请在
Action
列表中的最后一行的末尾键入逗号,然后添加以下行:"rds:*"
-
选择应用策略。
应用启动约束
您配置启动角色后,将该角色作为启动约束分配给产品。此操作将通知 Amazon Service Catalog 在最终用户启动产品时担任角色。
将角色分配给产品
-
通过以下网址打开 Service Catalog 控制台:https://console.aws.amazon.com/servicecatalog/
。 -
选择包含产品的产品组合。
-
选择约束选项卡并选择创建约束。
-
自产品中选择产品,然后在约束类型下选择启动。选择继续。
-
在启动约束 部分,您可以从自己的账户中选择 IAM 角色、输入 IAM 角色 ARN 或输入角色名称。
如果您指定角色名称,当账户使用启动约束时,将使用账户中具有该名称的 IAM 角色。此方法允许使用与账户无关的启动角色约束,因此您可以为每个共享账户创建更少的资源。
注意
在创建启动约束的账户中,以及使用此启动约束启动产品的用户账户中,都必须存在给定的角色名称。
-
指定 IAM 角色后,选择 创建。
在启动限制中添加混淆代理
Amazon Service Catalog 支持为使用担任角色请求运行的 API 提供混淆代理保护。添加启动约束时,您可以使用启动角色信任策略中的 sourceAccount
和 sourceArn
条件来限制启动角色访问权限。它可确保启动角色由可信来源调用。
在以下示例中,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 控制台启动产品并成功预配置了产品。要在将约束发布给用户前对其进行测试,请创建包含相同产品的测试产品组合,并使用该产品组合测试约束。
启动产品
-
在 Amazon Service Catalog 控制台的菜单中,选择 Service Catalog、最终用户。
-
选择产品以打开产品详细信息页面。在启动选项表中,确认已显示角色的 Amazon 资源名称 (ARN)。
-
选择启动产品。
-
继续执行启动步骤,填入任何所需信息。
-
确认产品已成功启动。