Amazon Service Catalog 中的 Identity and Access Management - Amazon Services Catalog
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Amazon Service Catalog 中的 Identity and Access Management

访问亚马逊 Service Catalog 需要凭据。这些凭证必须有权访问 Amazon Web Services 资源,如 Amazon Services 产品组合或产品。亚马逊 Service Catalog 与 Amazon Identity 和访问管理 (IAM) 集成,让您能够授予亚马逊 Service Catalog 管理员创建和管理产品所需的权限,并授予亚马逊 Service Catalog 最终用户启动产品和管理产品所需的权限。预配置产品。这些策略可以由 Amazon Web Services 创建和管理,也可以由管理员和最终用户分别创建和管理。要控制访问,您需要将这些策略附加到用于 Amazon Service Catalog 的 IAM 用户、组和角色。

Audience

您对 Amazon Identity and Access Management (IAM) 的权限可能取决于您在 Amazon Service Catalog 中所扮演的角色。

管理员作为 Amazon Service Catalog 管理员,您需要对管理员控制台的完全访问权限以及 IAM 权限,这些权限使您能够执行各种任务,如创建和管理产品组合和产品、管理约束以及向最终用户授予访问权限。

最终用户-您需要先授予他们访问 Amazon Service Catalog 最终用户控制台的权限,然后他们才能使用您的产品。他们还可以拥有启动产品和管理预配置产品的权限。

IAM 管理员-如果您是 IAM 管理员,您可能希望了解如何编写策略以管理对 Amazon Service Catalog 的访问的详细信息。要查看您可在 IAM 中使用的 Amazon Services 目录基于身份的策略示例,请参阅预定义 Amazon Web Services 托管策略

预定义 Amazon Web Services 托管策略

Amazon Web Services 创建的托管策略将授予针对常用案例的必要权限。您可以将这些策略附加到 IAM 用户和角色。有关更多信息,请参阅 。Amazon Web Services 托管策略中的IAM 用户指南

以下是针对亚马逊 Service Catalog 的 Amazon Web Services 托管策略。

Administrators
  • AWSServiceCatalogAdminFullAccess - 授予对管理员控制台视图的完全访问权限以及创建和管理产品及产品组合的权限。

  • AWSS 服务目录只读访问-授予对管理员控制台视图的完全访问权限。不授予创建或管理产品和产品组合的访问权限。

最终用户
  • AWSServiceCatalogEndUserFullAccess-授予对最终用户控制台视图的完全访问权限。授予启动产品和管理预配置产品的权限。

  • AWS 服务目录用户只读访问-授予对最终用户控制台视图的只读访问权限。不授予启动产品或管理预配置产品的权限。

将策略附加到 IAM 用户

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Users

  3. 选择 IAM 用户的名称(不是复选框)。

  4. 权限选项卡中,请选择添加权限

  5. Add permissions 页面上,选择 Attach existing policies directly

  6. 选择 Amazon Service Catalog 托管策略旁边的复选框,然后选择后续:审核

  7. Permissions summary (权限摘要) 页面上,选择 Add permissions (添加权限)

  8. (可选)如果管理员需要使用私有 CloudFormation 模板,您必须向管理员授予 Amazon S3 的其他权限。有关更多信息,请参阅 。用户策略示例中的Amazon Simple Storage Service 开发人员指南。

已弃用的策略

以下托管策略已弃用:

  • ServiceCatalogAdminFullAccess - 请改用 AWSServiceCatalogAdminFullAccess

  • ServiceCatalogAdminReadOnlyAccess— 使用AWSS 服务目录只读访问相反。

  • ServiceCatalogEndUserFullAccess - 请改用 AWSServiceCatalogEndUserFullAccess

  • ServiceCatalogEndUserAccess— 使用AWS 服务目录用户只读访问相反。

使用以下过程可确保管理员和最终用户获得使用当前策略的权限。

从已弃用策略迁移到当前策略

  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Policies

  3. 在搜索字段中,键入 ServiceCatalog 以筛选策略列表。选择 ServiceCatalogAdminFullAccess 的名称 (不是复选框)。

  4. 对于每个附加实体 (用户、组或角色),执行以下操作:

    1. 打开实体的摘要页面。

    2. 添加过程链接 = "附加管理策略" 中描述的某个当前策略

      添加第个中描述的某个当前策略过程:将策略附加到 IAM 用户

    3. 权限选项卡上 ServiceCatalogAdminFullAccess 的旁边,选择分离策略。当系统提示进行确认时,选择分离

  5. ServiceCatalogEndUserFullAccess 重复上述过程。

适用于 Amazon Service Catalog 的基于身份的策略示例

最终用户的控制台访问

这些区域有:AWSServiceCatalogEndUserFullAccessAWS 服务目录用户只读访问策略授予对 Amazon Service Catalog 最终用户控制台视图的访问权限。当具有这些策略之一的用户在 Amazon 管理控制台中选择 Amazon Service Catalog 时,最终用户控制台视图将显示他们有权限启动的产品。

您必须先向最终用户提供其他 IAM 权限以允许他们在产品的 Amazon CloudFormation 模板中使用每个基础 Amazon Web SerService Catalog 资源,然后他们才能从您向其授予访问权限的 Amazon CloudFormation 模板中成功启动产品。例如,如果产品模板包含 Amazon Relational Database Service (Amazon RDS),则您必须向用户授予用于启动产品的 Amazon RDS 权限。

要了解如何使最终用户能够在执行对 Amazon Web Services 资源的最小访问权限的同时启动产品,请参阅使用亚马逊 Service Catalog 约束

如果您应用AWS 服务目录用户只读访问策略,则您的用户将具有最终用户控制台的访问权限,但他们没有启动产品和管理预配置产品所需的权限。您可以直接使用 IAM 的最终用户授予这些权限,但如果您想限制最终用户拥有的对 Amazon Web Services vicess 资源的访问权限,则应将策略附加到启动角色。然后使用 Amazon Services 目录将启动角色应用于商品的启动约束。有关应用启动角色、启动角色限制和示例启动角色的更多信息,请参阅亚马逊 Service Catalog 启动限制

注意

如果您向用户授予 Amazon Service Catalog 管理员的 IAM 权限,则会显示管理员控制台视图。除非您希望最终用户具有管理员控制台视图的访问权限,否则不要授予他们这些权限。

最终用户的产品访问

您必须先向最终用户提供其他 IAM 权限以允许他们在产品的 Amazon CloudFormation 模板中使用每个基础 Amazon Web Services vice 资源,然后他们才能使用您向其授予访问权限的产品。例如,如果产品模板包含 Amazon Relational Database Service (Amazon RDS),则您必须向用户授予用于启动产品的 Amazon RDS 权限。

如果应用 ServiceCatalogEndUserAccess 策略,则您的用户将具有最终用户控制台视图的访问权限,但他们没有启动产品和管理预配置产品所需的权限。您可以直接向 IAM 中的最终用户授予这些权限,但如果您想限制最终用户拥有的对 Amazon Web Services vicess 资源的访问权限,则应将策略附加到启动角色。然后使用 Amazon Services 目录将启动角色应用于商品的启动约束。有关应用启动角色、启动角色限制和示例启动角色的更多信息,请参阅亚马逊 Service Catalog 启动限制

用于管理预配置产品的示例策略

您可以创建自定义策略来帮助满足组织的安全要求。以下示例介绍如何自定义每个操作的访问级别,以提供用户、角色和账户级支持。您可以向用户授予查看、更新、终止和管理以下预配置产品的访问权限:1) 由该用户创建的预配置产品;2) 由其他用户使用该用户的角色创建的预配置产品;或 3) 由该用户登录的账户创建的预配置产品。这种访问模式是分层的 - 授予账户级访问权限时会同时授予角色级和用户级访问权限,添加角色级访问权限时会授予用户级访问权限,但不会授予账户级访问权限。您可以在策略 JSON 中使用 Condition 块作为 accountLevelroleLeveluserLevel 来指定上述权限。

这些示例也适用于 Amazon Service Catalog API 写入操作的访问级别:UpdateProvisionedProductTerminateProvisionedProduct,并读取操作:DescribeRecordScanProvisionedProducts, 和ListRecordHistoryScanProvisionedProductsListRecordHistory API 操作使用 AccessLevelFilterKey 作为输入,该键的值对应于此处讨论的 Condition 块级别 (accountLevel 等同于“Account”的 AccessLevelFilterKey 值、“Role”的 roleLevel 值和“User”的 userLevel 值)。有关更多信息,请参阅 。亚马逊 Service Catalog 开发者指南

例如:对预配置产品的完全管理员访问

下面的策略允许自由读写账户级目录中的预配置产品和记录。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "servicecatalog:*" ], "Resource":"*", "Condition": { "StringEquals": { "servicecatalog:accountLevel": "self" } } } ] }

该策略的功能等同于下面的策略:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "servicecatalog:*" ], "Resource":"*" } ] }

换言之,未指定Condition块等同于指定亚马逊 Service Catalog 的所有策略中的块等同于指定"servicecatalog:accountLevel"访问。注意,accountLevel 访问权限包含 roleLeveluserLevel 访问权限。

例如:最终用户对预配置产品的访问

下面的策略将用户的访问权限限制为只能读写自己创建的预配置产品和关联记录。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:DescribeRecord", "servicecatalog:ListLaunchPaths", "servicecatalog:ListRecordHistory", "servicecatalog:ProvisionProduct", "servicecatalog:ScanProvisionedProducts", "servicecatalog:SearchProducts", "servicecatalog:TerminateProvisionedProduct", "servicecatalog:UpdateProvisionedProduct" ], "Resource": "*", "Condition": { "StringEquals": { "servicecatalog:userLevel": "self" } } } ] }

例如:对预配置产品的部分管理员访问

如果将下面的两个策略应用到同一个用户,可产生称作“管理员部分访问权限”的访问类型 - 即提供完全的只读访问和有限的写入访问。这意味着用户能够查看账户级目录中的任何预配置产品或关联记录,但无法对不归该用户所有的任何预配置产品或记录执行任何操作。

第一个策略允许用户对自己创建的预配置产品执行写入操作,但不允许对其他用户创建的预配置产品执行写入操作。第二个策略允许用户对所有用户、角色或账户创建的预配置产品执行读取操作。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ListLaunchPaths", "servicecatalog:ProvisionProduct", "servicecatalog:SearchProducts", "servicecatalog:TerminateProvisionedProduct", "servicecatalog:UpdateProvisionedProduct" ], "Resource": "*", "Condition": { "StringEquals": { "servicecatalog:userLevel": "self" } } } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "servicecatalog:DescribeRecord", "servicecatalog:ListRecordHistory", "servicecatalog:ScanProvisionedProducts" ], "Resource": "*", "Condition": { "StringEquals": { "servicecatalog:accountLevel": "self" } } } ] }

Amazon Service Catalog 身份和访问疑难解答

可以使用以下信息,以帮助您诊断和修复在使用 Amazon Service Catalog 和 Amazon Identity and Access Management 时可能遇到的常见问题。

我无权在 Amazon Service Catalog 中执行操作

如果 Amazon 管理控制台指示您无权执行操作,则必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。如果 mateojackson IAM 用户尝试使用控制台查看有关虚构的 my-example-resource 的详细信息,但不具有虚构的 Access: getWidget 权限,则会出现以下示例错误。

User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: awes:GetWidget on resource: my-example-widget

在这种情况下,Mateo 请求管理员更新其策略,以允许他使用 Access: GetWidget 操作访问我的示例小部件资源。

我无权执行 iam:PassRole

如果您收到错误消息,提示您无权执行 IAM: PassRole 操作,则必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。请求该人员更新您的策略,以允许您将角色传递给 Amazon Services 目录。

某些 Amazon 服务允许您将现有角色传递给该服务,而不是创建新的服务角色或服务相关角色。为此,您必须具有将角色传递给该服务的权限。

当名为 marykey 的 IAM 用户尝试使用控制台在 Amazon Services Service Catalog 中执行操作时,会发生以下示例错误。但是,服务必须具有服务角色所授予的权限才可执行操作。Mary 不具有将角色传递到服务的权限。

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

在这种情况下,Mary 请求她的管理员来更新其策略,以允许她执行 IAM: PassRole 操作。

我想要查看我的访问密钥

在创建 IAM 用户访问密钥后,您可以随时查看您的访问密钥 ID。但是,您无法再查看您的秘密访问密钥。如果您丢失了私有密钥,则必须创建一个新的访问密钥对。

访问密钥包含两部分:访问密钥 ID(例如 AKIAIOSFODNN7EXAMPLE)和秘密访问密钥(例如,WjalrxutnFemi /K7mdeng/BPXrsquo 的示例密钥)。

与用户名和密码一样,您必须同时使用访问密钥 ID 和秘密访问密钥对请求执行身份验证。像对用户名和密码一样,安全地管理访问密钥。

请不要为了帮助向第三方提供访问密钥,甚至是为了帮助提供帮助查找规范用户 ID中的亚马逊一般参考指南。如果您这样做,可能会向某人提供对您的账户的永久访问权限。

当您创建访问密钥对时,系统会提示您将访问密钥 ID 和秘密访问密钥保存在一个安全位置。秘密访问密钥仅在您创建它时可用。如果丢失了您的秘密访问密钥,您必须为 IAM 用户添加新的访问密钥。您最多可拥有两个访问密钥。如果您已有两个密钥,则必须删除一个密钥对,然后再创建新的密钥。若要查看说明,请参阅管理访问密钥中的IAM 用户指南

我是管理员并希望允许其他人访问卓越亚马逊 Service Catalog

要允许其他人访问 Amazon Service Catalog,您必须为需要访问权限的人员或应用程序创建一个 IAM 实体(用户或角色)。他们将使用该实体的凭证访问 Amazon。然后,您必须将策略附加到实体,以便在 Amazon Service Catalog 中为他们(它们)授予正确的权限。

要立即开始,请参阅创建您的第一个 IAM 委派用户和组中的IAM 用户指南

我希望允许我的 Amazon 账户以外的人访问我的 Amazon Services 目录资源

您可以创建一个角色,以便其他账户中的用户或您组织外的人员可以使用该角色来访问您的资源。您可以指定谁值得信赖,可以代入角色。对于支持基于资源的策略或访问控制列表 (ACL) 的服务,您可以使用这些策略向人员授予对您的资源的访问权。

要了解更多信息,请参阅以下内容:

控制访问

Amazon Service Catalog 产品组合为管理员提供了对最终用户组的访问控制级别。将用户添加到某个产品组合后,这些用户可以浏览并启动其中的任何产品。有关更多信息,请参阅管理产品组合

Constraints

约束控制在从特定产品组合启动产品时应用于最终用户的规则。您使用约束对产品进行限制,以便进行管理或控制成本。有关约束的更多信息,请参阅使用亚马逊 Service Catalog 约束。

Amazon Services 目录启动约束使您能够更好地控制最终用户所需的权限。当您的管理员为产品组合中的产品创建启动约束时,启动约束将与最终用户从该产品组合中启动产品时使用的角色 ARN 关联。使用此模式,您可以控制对 Amazon Web Services 资源创建的访问权限。有关更多信息,请参阅 。亚马逊 Service Catalog 启动限制