使 SAML 2.0 联合身份用户能够访问 Amazon Web Services Management Console - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使 SAML 2.0 联合身份用户能够访问 Amazon Web Services Management Console

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

概览

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

注意

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


        使用 SAML 单点登录 (SSO) 到 Amazon 管理控制台

下图说明了以下步骤:

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

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

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

  4. 该客户端浏览器将被重定向到 Amazon 单一登录终端节点并发布 SAML 断言。

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

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

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

从用户的角度来看,整个流程以透明的方式进行:用户在您的企业的内部门户网站开始操作,在 Amazon Web Services Management Console 结束操作,无需提供任何 Amazon 凭证。

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

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

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

在 IAM 中创建 SAML 提供商

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

在 Amazon 中为您的联合身份用户配置权限

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

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Federated": "arn:aws:iam::account-id:saml-provider/ExampleOrgSSOProvider"}, "Action": "sts:AssumeRoleWithSAML", "Condition": {"StringEquals": { "saml:edupersonorgdn": "ExampleOrg", "saml:aud": "https://signin.aws.amazon.com/saml" }} }] }
注意

角色信任策略中使用的 SAML IdP 必须与角色位于同一账户中。

您可以在 https://region-code.signin.aws.amazon.com/static/saml-metadata.xml 中包含 saml:aud 属性的区域端点。有关可能的 region-code 值的列表,请参阅 Amazon 登录端点中的 Region(区域)列。

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

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

完成配置并创建 SAML 断言

通过安装位于 https://region-code.signin.aws.amazon.com/static/saml-metadata.xmlhttps://signin.aws.amazon.com/static/saml-metadata.xmlsaml-metadata.xml 文件,通知 SAML IdP Amazon 是您的服务提供商。有关可能的 region-code 值的列表,请参阅 Amazon 登录端点中的 Region(区域)列。

安装该文件的方式取决于您的 IdP。一些提供商为您提供了键入该 URL 的选项,此时,IdP 将为您获取并安装该文件。另一些提供商则要求您从该 URL 处下载该文件,然后将其作为本地文件提供。请参阅您的 IdP 文档以获得详细信息或参阅将第三方 SAML 解决方案提供商与 Amazon 集成以获得指向很多支持的 SAML 提供商的 Web 文档。

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