本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Service Catalog 中的身份和
要访问 Amazon Service Catalog,这些凭证必须有权访问 Amazon Web Services 资源,如Amazon Service Catalog 产品组合或产品。Amazon Service Catalog 集成了亚马逊身份和访问管理 (IAM),使您能够授予亚马逊Service Catalog 管理员创建和管理产品所需的权限,并授予亚马逊Service Catalog 终端用户启动产品和管理所需的权限预配置产品。这些策略要么由 Amazon Web Services 创建和管理,要么由管理员和最终用户单独创建和管理。要控制访问权限,您可以将这些策略附加到您在 Amazon Service Catalog 中使用的 IAM 用户、群组和角色。
主题
Audience
您在亚马逊Identity an d Access Management (IAM) 中拥有的权限可能取决于您在亚马逊Service Catalog 中扮演的角色。
您通过亚马逊Identity and Access Management (IAM) 获得的权限还取决于您在亚马逊Service Catalog 中扮演的角色。
管理员作为 Amazon Service Catalog 管理员,您需要对管理员控制台的完全访问权限和 IAM 权限,才能执行诸如创建和管理产品组合和产品、管理限制以及向最终用户授予访问权限等任务。
最终用户-在您的最终用户可以使用您的产品之前,您需要向他们授予访问亚马逊Service Catalog 最终用户控制台的权限。他们还可以拥有启动产品和管理预配置产品的权限。
IAM 管理员-如果您是 IAM 管理员,您可能希望了解如何编写策略以管理对 Amazon Service Catalog 的访问的详细信息。要查看您可在 IAM 中使用的 Amazon Service Catalog 基于身份的策略示例,请参阅预定义的 AAmazon Web Services vice 托管
Amazon Web Services 托管政策Amazon Service Catalog
Amazon 服务负责维护和更新 Amazon 托管策略。您无法更改 Amazon 托管策略中的权限。服务偶尔会向 Amazon 托管式策略添加额外权限以支持新功能。此类更新会影响您找到策略的所有身份(用户、组和角色)。服务最有可能会在新功能启动期间或新操作可用时更新Amazon托管策略。服务不会从 Amazon 托管式策略中删除权限,因此策略更新不会破坏您的现有权限。
此外,Amazon 还支持跨多种服务的工作职能的托管式策略。例如, ReadOnlyAccess Amazon托管策略提供对所有Amazon服务和资源的只读访问权限。当服务启动新功能时,Amazon 会为新操作和资源添加只读权限。有关工作职能策略的列表和说明,请参阅 IAM 用户指南中的适用于工作职能的 Amazon 托管策略。
Amazon Web Services 创建的托管策略将授予针对常用案例的必要权限。您可以将这些策略附加到 IAM 用户和角色。有关更多信息,请参阅 IA M 用户指南中的 Amazon Web Services 科技托管策略。
以下是亚马逊Service Catalog 的Amazon Web Services 托管政策。
- Administrators
-
-
AWSServiceCatalogAdminFullAccess— 授予管理员控制台视图的完全访问权限以及创建和管理产品和产品组合的权限。
-
AWSServiceCatalogAdminReadOnlyAccess— 授予对管理员控制台视图的完全访问权限。不授予创建或管理产品和产品组合的访问权限。
-
- 最终用户
-
-
AWSServiceCatalogEndUserFullAccess— 授予对最终用户控制台视图的完全访问权限。授予启动产品和管理预配置产品的权限。
-
AWSServiceCatalogEndUserReadOnlyAccess— 授予对最终用户控制台视图的只读访问权限。不授予启动产品或管理预配置产品的权限。
-
要向 IAM 用户附加策略,请参阅Amazon Identity and Access Management用户指南中的添加和删除 IAM 身份权限。
Deprecated policies
以下托管策略已弃用:
-
ServiceCatalogAdminFullAccess— AWSServiceCatalogAdminFullAccess改用。
-
ServiceCatalogAdminReadOnlyAccess— AWSServiceCatalogAdminReadOnlyAccess改用。
-
ServiceCatalogEndUserFullAccess— AWSServiceCatalogEndUserFullAccess改用。
-
ServiceCatalogEndUserAccess— AWSServiceCatalogEndUserReadOnlyAccess改用。
使用以下过程可确保管理员和最终用户获得使用当前策略的权限。
要从过时的策略迁移到当前策略,请参阅Amazon Identity and Access Management用户指南中的添加和删除 IAM 身份权限。
适用于 Amazon Service Catalog 的基于身份的策略示例
最终用户的控制台访问权限
AWSServiceCatalogEndUserFullAccess
和 AWSServiceCatalogEndUserReadOnlyAccess
策略授予对 Service Catalog 最终用户控制台视图的访问权限。当具有这些策略之一的用户在 Amazon Web Services Management Console中选择 Service Catalog 时,最终用户控制台视图将显示他们有权限启动的产品。
在最终用户成功启动您授予访问权限的亚马逊Service Catalog 中的产品之前,您必须向他们提供额外的 IAM 权限,以允许他们使用产品的亚马逊 CloudFormation 模板中的每个底层 Amazon Web Services 资源。例如,如果产品模板包含Amazon Relational Database Service (Amazon RDS),则必须向用户 Amazon RDS 授予启动产品的权限。
要了解如何允许最终用户启动产品,同时强制执行 Amazon Web Services 资源的最低访问权限,请参阅使用亚马逊Service Catalog 限制。
如果应用 AWSServiceCatalogEndUserReadOnlyAccess
策略,则您的用户将具有最终用户控制台的访问权限,但他们没有启动产品和管理预配置产品所需的权限。您可以使用 IAM 直接向最终用户授予这些权限,但如果您想限制最终用户对 Amazon Web Services 资源的访问权限,则应将该策略附加到启动角色。然后,您可以使用亚马逊Service Catalog 将启动角色应用于产品的启动约束。有关应用启动角色、启动角色限制和示例启动角色的更多信息,请参阅 Amazon Service Catalog 启动限制。
如果您向用户授予 Amazon Service Catalog 管理员的 IAM 权限,则会改为显示管理员控制台视图。除非您希望最终用户具有管理员控制台视图的访问权限,否则不要授予他们这些权限。
最终用户的产品访问权限
在最终用户可以使用您授予访问权限的产品之前,您必须向他们提供额外的 IAM 权限,以允许他们使用产品的亚马逊 CloudFormation模板中的每个底层 Amazon Web Services 资源。例如,如果产品模板包含Amazon Relational Database Service (Amazon RDS),则必须向用户 Amazon RDS 授予启动产品的权限。
如果应用 ServiceCatalogEndUserAccess 策略,则您的用户将具有最终用户控制台视图的访问权限,但他们没有启动产品和管理预配置产品所需的权限。您可以直接向 IAM 中的最终用户授予这些权限,但如果您想限制最终用户对 Amazon Web Services 资源的访问权限,则应将该策略附加到启动角色。然后,您可以使用亚马逊Service Catalog 将启动角色应用于产品的启动约束。有关应用启动角色、启动角色限制和示例启动角色的更多信息,请参阅 Amazon Service Catalog 启动限制。
管理预配置产品的策略示例
您可以创建自定义策略来帮助满足组织的安全要求。以下示例介绍如何自定义每个操作的访问级别,以提供用户、角色和账户级支持。您可以向用户授予查看、更新、终止和管理以下预配置产品的访问权限:1) 由该用户创建的预配置产品;2) 由其他用户使用该用户的角色创建的预配置产品;或 3) 由该用户登录的账户创建的预配置产品。这种访问权限是分层的,授予账户级访问权限还会授予角色级访问权限和用户级访问权限,而添加角色级访问权限还会授予用户级访问权限,但不授予账户级访问权限。您可以在策略 JSON 中使用 Condition
块作为 accountLevel
、roleLevel
或 userLevel
来指定上述权限。
这些示例也适用于亚马逊Service Catalog API 写入操作的访问级别:UpdateProvisionedProduct
和TerminateProvisionedProduct
,以及读取操作:DescribeRecord
ScanProvisionedProducts
、和ListRecordHistory
。ScanProvisionedProducts
和 ListRecordHistory
API 操作使用 AccessLevelFilterKey
作为输入,该键的值对应于此处讨论的 Condition
块级别 (accountLevel
等同于“Account”的 AccessLevelFilterKey
值、“Role”的 roleLevel
值和“User”的 userLevel
值)。有关更多信息,请参阅 Amazon 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":"*" } ] }
换句话说,未在 Amazon Service Catalog 的任何策略中指定Condition
区块被视为指定"servicecatalog:accountLevel"
访问权限。注意,accountLevel
访问权限包含 roleLevel
和 userLevel
访问权限。
示例:最终用户访问预配置产品
下面的策略将用户的访问权限限制为只能读写自己创建的预配置产品和关联记录。
{ "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 身份和访问进行故障排除
使用以下信息可帮助您诊断和修复在使用 and IAM 时可能遇到Service Catalog的常见问题。
主题
我无权在 Service Catalog 中执行操作
如果 Amazon Web Services Management Console 告诉您,您无权执行某个操作,则必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。当 IAM 用户尝试使用控制台查看有关 API 的详细信息,但不具有虚构 my-example-widgetaws:GetWidget
权限时,会发生以下示例错误。
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: aws:GetWidget on resource: my-example-widget
在这种情况下,Mateo 请求他的管理员更新其策略,以允许他使用 aws:GetWidget
操作访问 my-example-widget
资源。
我无权执行iam:PassRole
如果您收到错误消息,提示您无权执行 iam:PassRole
操作,则必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。请求该人员更新您的策略,以便允许您将角色传递给 Amazon Service Catalog。
有些 Amazon 服务允许您将现有角色传递到该服务,而不是创建新服务角色或服务相关角色。为此,您必须具有将角色传递到服务的权限。
当名为marymajor 的 IAM 用户尝试使用控制台在中执行操作时,会发生以下示例错误Amazon Service Catalog。但是,服务必须具有服务角色所授予的权限才可执行操作。Mary 不具有将角色传递到服务的权限。
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
在这种情况下,Mary 请求她的管理员来更新其策略,以允许她执行 iam:PassRole 操作。
我想要查看我的访问密钥
在创建 IAM 用户访问密钥后,您可以随时查看您的访问密钥 ID。但是,您无法再查看您的秘密访问密钥。如果您丢失了私有密钥,则必须创建一个新的访问密钥对。
访问密钥包含两部分:访问密钥 ID(例如 AKIAIOSFODNN7EXbPxRfi AMPLE)和秘密访问密钥(例如 wJalrXUtnFiCYPLEKEXPLEKEXPLEKEXPLEKEXPLEKEXPLEKEXPLEKEXPLEKEXPLEKEXPLEKEXPLEKEX AKIAIOSFODNN7EXAMPLE
与用户名和密码一样,您必须同时使用访问密钥 ID 和秘密访问密钥对请求执行身份验证。像对用户名和密码一样,安全地管理访问密钥。
请不要向第三方提供访问密钥,即便是为了帮助在Amazon一般参考指南中找到您的规范用户 ID 也不行。 如果您这样做,可能会向某人提供对您的账户的永久访问权限。
当您创建访问密钥对时,系统会提示您将访问密钥 ID 和秘密访问密钥保存在一个安全位置。秘密访问密钥仅在您创建它时可用。如果丢失了您的秘密访问密钥,您必须为 IAM 用户添加新的访问密钥。您最多可拥有两个访问密钥。如果您已有两个密钥,则必须删除一个密钥对,然后再创建新的密钥。要查看说明,请参阅 IAM 用户指南中的管理访问密钥。
我是管理员并希望允许其他人访问 Amazon Service Catalog
要允许其他人访问 Service Catalog,您必须为需要访问权限的人员或应用程序创建一个 IAM 实体(用户或角色)。他们将使用该实体的凭证访问 Amazon。然后,您必须将策略附加到实体,以便在 Service Catalog 中向其授予正确的权限。
要立即开始使用,请参阅 IAM 用户指南中的创建您的第一个 IAM 委派用户和组。
我希望允许我的 Amazon 账户之外的人员访问我的 Amazon Service Catalog 资源
您可以创建一个角色,以便其它账户中的用户或您组织外的人员可以使用该角色来访问您的资源。您可以指定谁值得信赖,可以代入角色。对于支持基于资源的策略或访问控制列表 (ACL) 的服务,您可以使用这些策略向人员授予对您的资源的访问权。
要了解更多信息,请参阅以下内容:
-
要了解是否Service Catalog支持这些功能,请参阅《Amazon Service Catalog管理员指南》Amazon Identity and Access ManagementAmazon Service Catalog中的。
-
要了解如何向您拥有的Amazon账户中的资源提供访问权限,请参阅 IAM 用户指南中的对您拥有的另一个Amazon账户中的 IAM 用户提供访问权限。
-
要了解如何为第三方 Amazon 账户提供您的资源的访问权限,请参阅IAM 用户指南中的 为第三方拥有的 Amazon 账户提供访问权限。
-
要了解如何通过联合身份验证提供访问权限,请参阅 IAM 用户指南中的为经过外部身份验证的用户(联合身份验证)提供访问权限。
-
要了解使用角色和基于资源的策略进行跨账户访问之间的差别,请参阅 IAM 用户指南中的 IAM 角色与基于资源的策略有何不同。
控制访问
Service Catalog 产品组合为管理员提供了对最终用户组的访问控制级别。将用户添加到某个产品组合后,这些用户可以浏览并启动其中的任何产品。有关更多信息,请参阅 管理产品组合。
约束
约束控制在从特定产品组合启动产品时应用于最终用户的规则。您使用约束对产品进行限制,以便进行管理或控制成本。有关约束的更多信息,请参阅 使用 Amazon Service Catalog 限制。
Service Catalog 启动约束使您能够更好地控制最终用户所需的权限。当您的管理员为产品组合中的产品创建启动约束时,启动约束将与最终用户从该产品组合中启动产品时使用的角色 ARN 关联。使用此模式,您可以控制对Amazon资源创建的访问权限。有关更多信息,请参阅 Service Catalog 启动约束。