担任角色的方法 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

担任角色的方法

您必须先对用户授予切换到您创建的角色的权限,然后用户、应用程序或服务才能使用该角色。您可使用附加到组或用户的任何策略授予所需权限。授予权限后,用户可以从 Amazon Web Services Management Console、适用于 Windows PowerShell 的工具、Amazon Command Line Interface(Amazon CLI)和 AssumeRole API 中代入角色。

重要

当您以编程方式而不是在 IAM 控制台中创建角色,则除最长可达 64 个字符的 RoleName 外,您还可以选择添加最长 512 个字符的 Path。不过,如果您打算通过 Amazon Web Services Management Console 中的 Switch Role(切换角色)功能使用角色,则组合的 PathRoleName 不能超过 64 个字符。

用于代入角色的方法决定了谁可以代入该角色,以及角色会话可以持续多长时间。使用 AssumeRole* API 操作时,您所担任的 IAM 角色为资源。调用 AssumeRole* API 操作的用户或角色是主体。

下表比较了代入角色的方法。

担任角色的方法 谁可以担任角色 用于指定凭证生命周期的方法 凭证生命周期 (最小值 | 最大值 | 默认值)
Amazon Web Services Management Console 用户(通过切换角色 Role(角色)“Summary(摘要)”页面上的 Maximum session duration(最长会话持续时间) 15 分 | 最大会话持续时间设置² | 1 小时
assume-role CLI 或 AssumeRole API 操作 用户或角色¹ duration-seconds CLI 或 DurationSeconds API 参数 15 分 | 最大会话持续时间设置² | 1 小时
assume-role-with-saml CLI 或 AssumeRoleWithSAML API 操作 使用 SAML 验证的任何用户 duration-seconds CLI 或 DurationSeconds API 参数 15 分 | 最大会话持续时间设置² | 1 小时
assume-role-with-web-identity CLI 或 AssumeRoleWithWebIdentity API 操作 使用 OIDC 提供者验证身份的任何用户 duration-seconds CLI 或 DurationSeconds API 参数 15 分 | 最大会话持续时间设置² | 1 小时
使用 构造的控制台 URLAssumeRole 用户或角色 URL 中的 SessionDuration HTML 参数 15 分钟 | 12 小时 | 1 小时
使用 构造的控制台 URLAssumeRoleWithSAML 使用 SAML 验证的任何用户 URL 中的 SessionDuration HTML 参数 15 分钟 | 12 小时 | 1 小时
使用 构造的控制台 URLAssumeRoleWithWebIdentity 使用 OIDC 提供者验证身份的任何用户 URL 中的 SessionDuration HTML 参数 15 分钟 | 12 小时 | 1 小时

¹ 使用一个角色的凭证担任其他角色称为 role chaining(角色链)。在使用角色链时,新凭证的最大持续时间限制为 1 小时。当您使用角色向 EC2 实例上运行的应用程序授予权限时,则这些应用程序不受制于此限制。

² 该设置可以具有 1 小时到 12 小时之间的值。有关修改最大会话持续时间设置的详细信息,请参阅 IAM 角色管理。该设置确定在获取角色凭证时可请求的最大会话持续时间。例如,在使用 AssumeRole* API 操作担任角色时,您可以使用 DurationSeconds 参数指定会话长度。可以使用该参数指定 900 秒(15 分钟)到角色的最大会话持续时间设置之间的角色会话长度。在控制台内切换角色的 IAM 用户被授予最大会话持续时间或其用户会话中的剩余时间(以较少者为准)。假定您在角色上设置 5 小时的最大持续时间。已登录到控制台 10 小时(默认最多 12 小时)的 IAM 用户切换到该角色。可用角色会话持续时间为 2 小时。要了解如何查看您的角色的最大值,请参阅本页后面的更新角色的最长会话持续时间

注意
  • 最大会话持续时间设置不限制 Amazon 服务建立的会话。

  • Amazon EC2 IAM 角色凭证不受角色中配置的会话持续时间上限的限制。

  • 要允许用户在角色会话中重新代入当前角色,请将角色 ARN 或 Amazon Web Services 账户 ARN 指定为角色信任策略中的主体。提供计算资源(例如 Amazon EC2、Amazon ECS、Amazon EKS 和 Lambda)的 Amazon Web Services 服务会提供临时凭证并自动更新这些凭证。这样可以确保您始终拥有一组有效的凭证。对于这些服务,无需重新代入当前角色即可获得临时凭证。但是,如果您需要传递 会话标签 或者 会话策略,则需要重新代入当前角色。要了解如何修改角色信任策略以添加主体角色 ARN 或 Amazon Web Services 账户 ARN,请参阅 更新角色信任策略