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

使 SAML 2.0 联合用户能够访问 AWS 管理控制台

您可使用一个角色配置符合 SAML 2.0 标准的身份提供商 (IdP) 和 AWS 以允许您的联合身份用户访问 AWS 管理控制台。该角色为用户授予了在控制台中执行任务的权限。如果您希望为 SAML 联合用户提供访问 AWS 的其他方式,请参阅以下主题之一:

概述

下图说明了启用了 SAML 的单一登录的流程。

注意

SAML 的这种特定用途与关于基于 SAML 2.0 的联合身份验证中所述的更常规的用途不同,因为此工作流程将代表用户打开 AWS 管理控制台。这需要使用 AWS SSO 终端节点,而不是直接调用 AssumeRoleWithSAML API。该终端节点将为用户调用 API 并返回将用户的浏览器自动重定向到 AWS 管理控制台的 URL。


          使用 SAML 单一登录 (SSO) 到 AWS 管理控制台

下图说明了以下步骤:

  1. 用户浏览到您的组织的门户网站,并选择转到 AWS 管理控制台的选项。在组织中,门户网站通常充当处理您组织与 AWS 之间的信任交换的 IdP。例如,在 Active Directory 联合身份验证服务中,门户网站 URL 为:https://ADFSServiceName/adfs/ls/IdpInitiatedSignOn.aspx

  2. 该门户网站可验证您的组织用户的身份。

  3. 该门户网站生成一个 SAML 身份验证响应,其中包括识别用户身份的断言以及用户的相关属性。您也可以配置 IdP 以包含一个名为 SessionDuration 的 SAML 断言属性,该属性指定控制台会话的有效时间长度。该门户网站将此响应发送到客户端浏览器。

  4. 该客户端浏览器将被重定向到 AWS Single Sign-On(AWS 单一登录)终端节点并发布 SAML 断言。

  5. 终端节点将代表用户请求临时安全凭证,并创建一个使用这些凭证的控制台登录 URL。

  6. AWS 将登录 URL 作为重定向发回客户端。

  7. 该客户端浏览器将重定向到 AWS 管理控制台。如果 SAML 身份验证响应包含映射到多个 IAM 角色的属性,则系统将首先提示用户选择要用于访问控制台的角色。

从用户的角度来看,整个流程以透明的方式进行:用户在您的组织的内部门户网站开始操作,在 AWS 管理控制台结束操作,无需提供任何 AWS 凭证。

有关如何配置此行为的概述以及指向详细步骤的链接,请参阅以下章节。

将网络配置为适用于 AWS 的 SAML 提供商

在组织的网络中,配置身份存储(例如 Windows Active Directory)以使用基于 SAML 的 IdP,例如 Windows Active Directory 联合身份验证服务、Shibboleth 等。通过使用 IdP,可以生成一个元数据文档,此文档将您的组织描述为 IdP 并且包含身份验证密钥。另外,还要将组织的门户网站配置为将访问 AWS 管理控制台的用户请求路由至 AWS SAML 终端节点,以便使用 SAML 断言进行身份验证。如何配置您的 IdP 来生成 metadata.xml 文件取决于您的 IdP。请参阅您的 IdP 文档以获得指示,或参阅与 AWS 集成第三方 SAML 解决方案提供商以获得指向很多支持的 SAML 提供商 Web 文档。

在 IAM 中创建 SAML 提供商

然后,登录 AWS 管理控制台并转至 IAM 控制台。在此,您创建一个新的 SAML 提供商,这是在 IAM 中包含您的组织的 IdP 的相关信息的实体。在此过程中,您可以上传在上一节中由贵组织中的 IdP 软件生成的元数据文档。有关详细信息,请参阅 创建 IAM SAML 身份提供商

在 AWS 中为您的联合用户配置权限

下一步是创建一个 IAM 角色,用于建立 IAM 与您的组织的 IdP 之间的信任关系,并将您的 IdP 标识为委托人(可信实体)以实现联合目的。该角色还定义了由您的组织的 IdP 进行身份验证的用户可以在 AWS 中执行的操作。您可使用 IAM 控制台创建该角色。在创建指示可担任该角色的人员的信任策略时,应指定您之前在 IAM 中创建的 SAML 提供商以及用户必须匹配才能担任该角色的一个或多个 SAML 属性。例如,您可以指定只允许其 SAML eduPersonOrgDN 值为 ExampleOrg 的用户登录。角色向导会自动添加一个测试 saml:aud 属性的条件,以确保仅出于登录 AWS 管理控制台的目的代入该角色。该角色的信任策略可能如下所示:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Federated": "arn:aws-cn:iam::ACCOUNT-ID-WITHOUT-HYPHENS:saml-provider/ExampleOrgSSOProvider"}, "Action": "sts:AssumeRoleWithSAML", "Condition": {"StringEquals": { "saml:edupersonorgdn": "ExampleOrg", "saml:aud": "https://signin.www.amazonaws.cn/saml" }} }] }

对于该角色中的权限策略,您可以像任何角色、用户或组一样指定权限。例如,如果允许您的组织中的用户管理 Amazon EC2 实例,您可以在权限策略中显式允许 Amazon EC2 操作。您可通过分配一个托管策略 (如 Amazon EC2 完全访问托管策略) 执行此操作。

有关创建用于 SAML IdP 的角色的详细信息,请参阅创建用于 SAML 2.0 联合的角色 (控制台)

完成配置 SAML IdP 并为 SAML 身份验证响应创建断言

创建角色之后,通过安装在以下链接处找到的 saml-metadata.xml 文件,向您的 SAML IdP 告知 AWS 即服务提供商的相关信息:https://signin.www.amazonaws.cn/static/saml-metadata.xml。安装该文件的方式取决于您的 IdP。一些提供商为您提供了键入该 URL 的选项,此时,IdP 将为您获取并安装该文件。另一些提供商则要求您从该 URL 处下载该文件,然后将其作为本地文件提供。请参阅您的 IdP 文档以获得详细信息或参阅与 AWS 集成第三方 SAML 解决方案提供商以获得指向很多支持的 SAML 提供商的 Web 文档。

您还可配置一条信息,您希望 IdP 在身份验证响应期间将此信息作为 SAML 属性传递到 AWS。此信息中的大部分内容作为您可在策略中评估的条件上下文密钥出现在 AWS 中,用来确保只有正确上下文中的授权用户才有权访问您的 AWS 资源。您可以指定时间段来限制可使用控制台的时间,并指定在必须刷新用户的凭证之前用户可访问控制台的最长时间 (最多 12 个小时)。有关详细信息,请参阅 为身份验证响应配置 SAML 断言

本页内容: