在 IAM 中创建 SAML 身份提供者 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 IAM 中创建 SAML 身份提供者

IAM SAML 2.0 身份提供程序是 IAM 中的一个实体,该实体描述支持 SAML 2.0 (安全断言标记语言 2.0) 标准的外部身份提供程序 (IdP) 服务。如果您希望在与 SAML 兼容的 IdP(例如,Shibboleth 或 Active Directory 联合身份验证服务)和 Amazon 之间建立信任,以便企业中的用户能够访问 Amazon 资源,则需要使用 IAM 身份提供程序。IAM SAML 身份提供程序用作 IAM 信任策略中的主体。

有关此方案的更多信息,请参阅SAML 2.0 联合身份验证

您可以在 Amazon Web Services Management Console 中或通过使用 Amazon CLI、Tools for Windows PowerShell 或 Amazon API 调用,创建和管理 IAM 身份提供程序。

创建 SAML 提供商后,必须创建一个或多个 IAM 角色。角色是 Amazon 中的一个实体,它没有自己的凭证(与用户一样)。但在此上下文中,角色将动态分配给由组织的 IdP 验证的联合身份用户。该角色允许组织的 IdP 请求临时安全凭证以便访问 Amazon。分配给该角色的策略决定了联合身份用户可在 Amazon 中执行的操作。要创建用于 SAML 联合的角色,请参阅针对第三方身份提供商创建角色(联合身份验证)

最后,在创建角色后,您可通过配置包含有关 Amazon 的信息的 IdP 以及希望联合身份用户使用的角色来完成 SAML 信任。这称为在 IdP 和 Amazon 之间配置信赖方信任。要配置信赖方信任,请参阅配置具有依赖方信任的 SAML 2.0 IdP 并添加陈述

先决条件

在创建 SAML 身份提供商之前,您必须从 IdP 处获得以下信息。

  • 从 IdP 中获取 SAML 元数据文档。此文档包括发布者名称、过期信息以及可用来验证从 IdP 处收到的 SAML 身份验证响应(断言)的密钥。要生成元数据文档,请使用外部 IdP 提供的身份管理软件。

    重要

    此元数据文件包括颁发者名称、过期信息以及可用来验证从 IdP 处收到的 SAML 身份验证响应 (断言) 的密钥。元数据文件必须采用不含字节顺序标记 (BOM) 的 UTF-8 格式编码。要删除 BOM,您可以使用 Notepad++ 等文本编辑工具以 UTF-8 格式对文件进行编码。

    作为 SAML 元数据文档的一部分,X.509 证书必须使用长度至少为 1024 位的密钥。此外,x.509 证书也不能有任何重复的扩展名。您可以使用扩展程序,但扩展程序只能在证书中显示一次。如果 x.509 证书不符合任一条件,则 IdP 将创建失败,并返回 "Unable to parse metadata" 这一错误消息。

    SAML V2.0 元数据互操作性配置文件 1.0 版 所定义,IAM 既不会评估元数据文档的 X.509 证书,也不会在该证书过期时采取任何行动。

有关如何配置许多可用 IdP 以使用 Amazon(包括如何生成所需的 SAML 元数据文档)的说明,请参阅将第三方 SAML 解决方案提供者与 Amazon 集成

有关 SAML 联合身份验证的帮助,请参阅 SAML 联合身份验证故障排除

创建和管理 IAM SAML 身份提供商(控制台)

您可以使用 Amazon Web Services Management Console 来创建、更新和删除 IAM SAML 身份提供商。有关 SAML 联合身份验证的帮助,请参阅 SAML 联合身份验证故障排除

创建 IAM SAML 身份提供程序(控制台)
  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Identity providers(身份提供程序),然后选择 Add provider(添加提供商)。

  3. 对于 Configure provider(配置提供商),选择 SAML

  4. 键入身份提供程序的名称。

  5. 对于 Metadata document(元数据文档),选择 Choose file(选择文件),指定您在 先决条件 中下载的 SAML 元数据文档。

  6. (可选)对于添加标签,您可以添加键值对来帮助识别和组织您的 IdP。您还可以使用标签来控制对 Amazon 资源的访问。要了解有关标记 SAML 身份提供程序的更多信息,请参阅标记 IAM SAML 身份提供者

    选择 Add tag(添加标签)。为每个标签键值对输入值。

  7. 验证您提供的信息。完成后,选择 Add provider(添加提供商)。

  8. 将 IAM 角色分配至身份提供程序,以向身份提供程序管理的外部用户身份授予访问账户中的 Amazon 资源的权限。要了解有关为联合身份创建角色的更多信息,请参阅 针对第三方身份提供商创建角色(联合身份验证)

    注意

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

删除 SAML 提供商(控制台)
  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Identity providers(身份提供程序)。

  3. 选中要删除的身份提供程序旁边的单选按钮。

  4. 选择删除。此时会打开一个新窗口。

  5. 通过在字段中键入 delete 一词以确认您要删除此提供商。然后选择 Delete(删除)。

创建和管理 IAM SAML 身份提供商 (Amazon CLI)

您可以使用 Amazon CLI 来创建、更新和删除 SAML 提供商。有关 SAML 联合身份验证的帮助,请参阅 SAML 联合身份验证故障排除

创建 IAM 身份提供程序并上传元数据文档 (Amazon CLI)
更新 IAM SAML 身份提供商 (Amazon CLI)
要标记现有 IAM 身份提供程序 (Amazon CLI)
要列出现有 IAM 身份提供程序 (Amazon CLI) 的标签
要删除现有 IAM 身份提供程序 (Amazon CLI) 的标签
删除 IAM SAML 身份提供程序 (Amazon CLI)
  1. (可选)要列出所有提供商的信息(例如 ARN、创建日期和过期时间),请运行以下命令:

  2. (可选)要获取有关特定提供商的信息,如 ARN、创建日期、过期日期、加密设置和私钥信息,请运行以下命令:

  3. 要删除 IAM 身份提供程序,请运行以下命令:

创建和管理 IAM SAML 身份提供商 (Amazon API)

您可以使用 Amazon API 来创建、更新和删除 SAML 提供商。有关 SAML 联合身份验证的帮助,请参阅 SAML 联合身份验证故障排除

创建 IAM 身份提供程序并上传元数据文档 (Amazon API)
更新 IAM SAML 身份提供商 (Amazon API)
要标记现有 IAM 身份提供程序 (Amazon API)
要列出现有 IAM 身份提供程序 (Amazon API) 的标签
要删除现有 IAM 身份提供程序的标签 (Amazon API)
删除 IAM 身份提供程序 (Amazon API)
  1. (可选)要列出所有 IdP 的信息(例如 ARN、创建日期和过期时间),请调用以下操作:

  2. (可选)要获取有关特定提供商的信息,如 ARN、创建日期、过期日期、加密设置和私钥信息,请调用以下操作:

  3. 要删除 IdP,请调用以下操作:

后续步骤

创建 SAML 身份提供商后,通过您的 IdP 设置依赖方信任。您还可以在策略中使用 IdP 身份验证响应中的声明控制对角色的访问。

  • 您必须告知 IdP 将 Amazon 作为服务提供商。这称为在 IdP 和 Amazon 之间添加依赖方信任。添加信赖方信任的具体步骤取决于您使用的 IdP。有关详细信息,请参阅配置具有依赖方信任的 SAML 2.0 IdP 并添加陈述

  • 当 IdP 将包含断言的响应发送到 Amazon 时,许多传入断言将映射到 Amazon 上下文密钥。您可以使用 Condition 元素在 IAM 策略中使用这些上下文键来控制对角色的访问权限。有关详细信息,请参阅 为身份验证响应配置 SAML 断言。