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

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

您可以使用 SAML 2.0 联合身份验证而不必在 AWS 账户中创建 IAM 用户。利用身份提供商 (IdP),您可以管理 AWS 外部的用户身份,并向这些外部用户身份授予访问您账户中的 AWS 资源的权限。有关联合和身份提供商的更多信息,请参阅身份提供商和联合

创建用于 SAML 的角色的先决条件

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

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

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

  2. 为已进行 SAML 2.0 身份验证的用户要代入的角色准备策略。正如任何角色一样,用于 SAML 联合的角色包含两个策略。一个是指定谁可以代入角色的信任策略。另一个是指定允许或拒绝联合身份用户访问的 AWS 操作和资源的权限策略。

    在为角色创建信任策略时,必须使用三个值来确保只有您的应用程序可以代入此角色:

    • 对于 Action 元素,使用 sts:AssumeRoleWithSAML 操作。

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

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

    以下示例信任策略是为 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 的角色

在完成先决条件步骤后,您可以创建用于基于 SAML 的联合身份验证的角色。

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

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

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

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

  4. 对于 SAML 提供商,请为您的角色选择提供商。

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

    • 选择只允许编程访问以创建可从 AWS API 或 AWS CLI 以编程方式代入的角色。

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

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

  6. 如果创建用于编程访问的角色,请从属性列表中选择一个属性。然后在 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. IAM 包括您的账户中的 AWS 托管策略和客户托管策略的列表。选择要用于权限策略的策略,或选择创建策略以打开新的浏览器选项卡并从头开始创建新策略。有关更多信息,请参阅过程创建 IAM 策略(控制台)中的步骤 4。在您创建策略后,关闭该选项卡并返回到您的原始选项卡。选中您希望 Web 身份用户具有的权限策略旁边的复选框。如果您愿意,此时可以不选择任何策略,稍后将策略附加到角色。默认情况下,角色没有权限。

  10. (可选)设置权限边界。这是一项高级功能。

    打开设置权限边界部分,然后选择使用权限边界控制最大角色权限。选择要用于权限边界的策略。

  11. 选择 Next: Review

  12. 对于角色名称,键入角色名称。角色名称在您的 AWS 账户内必须是唯一的。名称不区分大小写。例如,您无法同时创建名为 PRODROLEprodrole 的角色。由于其他 AWS 资源可能引用该角色,角色创建完毕后无法编辑角色名称。

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

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

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