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

创建用于 SAML 2.0 联合的角色 (控制台)

利用联合身份验证,您可以为从第三方身份提供商 (IdP) 登录的用户提供对 AWS 资源的访问权限。要配置联合身份验证,您需要配置提供商,然后创建一个 IAM 角色来确定联合身份用户将拥有哪些权限。有关联合和身份提供商的更多信息,请参阅身份提供商和联合

您必须先完成以下先决条件步骤,然后才能创建用于 SAML 2.0 联合的角色:

准备创建用于 SAML 2.0 联合的角色

  1. 在创建用于 SAML 联合的角色之前,必须在 IAM 中创建 SAML 提供商。有关更多信息,请参阅 创建 SAML 身份提供商

  2. 为已进行 SAML 2.0 身份验证的用户要代入的角色准备策略。正如任何角色一样,SAML 联合的角色含两个策略。一个是信任策略,其中规定谁可担任该角色(可信实体,即委托人)。另一个策略 (权限策略) 指定允许或拒绝联合用户访问的实际 AWS 操作和资源 (类似于用户或资源策略)。

    对于 SAML 2.0 提供商,该策略必须包括类似以下内容的 Statement 元素:

    信任策略必须为 Allow 操作授予 sts:AssumeRoleWithSAML 效果。在此角色中使用两个值,通过这两个值,可确保只有您的应用程序可代入此角色:

    • 对于 Principal 元素,使用字符串 {"Federated":ARNofIdentityProvider}。将 ARNofIdentityProvider 替换为您在步骤 1 中创建的 SAML 身份提供商的 ARN。

    • 对于 Condition 元素,使用 StringEquals 条件测试 SAML 响应中的 saml:aud 属性是否匹配 AWS 的 SAML 联合终端节点。

    注意

    由于可信实体的策略使用表示 SAML 响应中的值的策略变量,您必须将该策略的 Version 元素设置为 2012-10-17 或更高的受支持版本。

    以下示例说明了为 SAML 联合身份用户设计的角色的信任策略:

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

    将委托人 ARN 替换为您在 IAM 中创建的 SAML 提供商的实际 ARN。它会具备您自己的账户 ID 和实际提供商名称。

    完成先决条件步骤后,您可以创建角色本身。

要创建用于基于 SAML 的联合的角色,请执行以下操作

  1. 确保已在 IAM 中创建了 SAML 提供商,如 关于基于 SAML 2.0 的联合身份验证 中所述。

  2. 在 IAM 控制台的导航窗格中,选择角色,然后选择创建角色

  3. 选择 SAML 2.0 federation 角色类型。

  4. SAML Provider (SAML 提供商) 列表中,选择要创建用于它的角色的提供商。

  5. 选择 SAML 2.0 访问级别方法。

    • 选择 Allow programmatic access only 以创建可从 AWS API 以编程方式代入的角色。

    • 选择允许编程访问和 AWS 管理控制台访问以创建可以编程方式和从控制台中担任的角色。

    通过这两种方法创建的角色类似,但也可从控制台代入的角色包括包含带特定条件的信任策略。该条件显式确保将 SAML 受众 (SAML:aud 属性) 设置为 SAML 的 AWS 登录终端节点 (https://signin.aws.amazon.com/saml)。

  6. 如果创建用于编程访问的角色,请从 Attribute 列表中选择一个属性。然后在 Value 框中,键入一个将包含在角色中的值。这样可仅限来自其 SAML 身份验证响应 (断言) 包括您指定的属性的身份提供商的用户可访问该角色。必须指定至少一个属性,以确保您的角色限于您所在组织中的一部分用户。

    如果要创建用于编程访问和控制台访问的角色,则将自动添加 SAML:aud 属性,并将其设置为 AWS SAML 终端节点的 URL (https://signin.aws.amazon.com/saml)。

  7. 要将更多与属性相关的条件添加到信任策略,请选择 Add condition (optional),选择其他条件,然后指定值。

    注意

    列表显示最常用的 SAML 属性。IAM 支持其他可用于创建条件的属性。(有关支持的属性列表,请参阅主题 IAM JSON 策略元素参考中的 SAML 联合可用的密钥。)如果您需要列表中未显示的受支持的 SAML 属性的条件,可以在创建角色后通过编辑信任策略来添加该条件。

  8. 审查您的 SAML 2.0 信任信息,然后选择 Next: Permissions

  9. 选择一个或多个要附加到角色的权限策略。默认状态下,角色没有权限。选中用于分配您希望联合身份用户拥有的权限的策略旁的框。然后选择 Next: Review

  10. 对于 Role name,键入有助于识别此角色的作用的角色名称。角色名称在您的 AWS 账户内必须是唯一的。名称不区分大小写。例如,您无法同时创建名为 PRODROLEprodrole 的角色。由于多个单位可能引用该角色,角色创建完毕后无法编辑角色名称。

  11. (可选) 对于 Role description,键入新角色的描述。

  12. 检查角色,然后选择 Create role

创建角色后,通过使用有关 AWS 的信息和希望您的联合身份用户使用的角色来配置您的身份提供商软件,以完成 SAML 信任。这称为在 IdP 和 AWS 之间配置信赖方信任。有关更多信息,请参阅 配置具有信赖方信任的 SAML 2.0 IdP 并添加断言