使用 IAM 角色
您必须先对用户授予切换到您创建的角色的权限,然后用户、应用程序或服务才能使用该角色。您可使用附加到组或用户的任何策略来授予所需权限。本部分描述如何授予用户使用角色的权限。它还解释了用户如何从 Amazon Web Services Management Console、Tools for Windows PowerShell、Amazon Command Line Interface (Amazon CLI) 和 AssumeRole
API 切换到角色。
重要
当您以编程方式而不是在 IAM 控制台中创建角色,则除最长可达 64 个字符的 RoleName
外,您还可以选择添加最长 512 个字符的 Path
。不过,如果您打算通过 Amazon Web Services Management Console 中的 Switch Role(切换角色)功能使用角色,则组合的 Path
和 RoleName
不能超过 64 个字符。
您可以从 Amazon Web Services Management Console中切换角色。您可以调用 Amazon CLI 或 API 操作或使用自定义 URL 以担任角色。您使用的方法决定了谁可以担任该角色,以及角色会话可以持续多长时间。使用 AssumeRole*
API 操作时,您所担任的 IAM 角色为资源。调用 AssumeRole*
API 操作的用户或角色是主体。
比较使用角色的方法 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
担任角色的方法 | 谁可以担任角色 | 用于指定凭证生命周期的方法 | 凭证生命周期 (最小值 | 最大值 | 默认值) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Amazon Web Services Management Console | 用户(通过切换角色) | Role(角色)“Summary(摘要)”页面上的 Maximum session duration(最长会话持续时间) | 15 分钟 | 1 小时 | 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 操作 |
使用 Web 身份提供程序验证的任何用户 | duration-seconds CLI 或 DurationSeconds API 参数 |
15 分 | 最大会话持续时间设置² | 1 小时 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
使用 构造的控制台 URLAssumeRole |
用户或角色 | URL 中的 SessionDuration HTML 参数 |
15 分钟 | 12 小时 | 1 小时 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
使用 构造的控制台 URLAssumeRoleWithSAML |
使用 SAML 验证的任何用户 | URL 中的 SessionDuration HTML 参数 |
15 分钟 | 12 小时 | 1 小时 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
使用 构造的控制台 URLAssumeRoleWithWebIdentity |
使用 Web 身份提供程序验证的任何用户 | URL 中的 SessionDuration HTML 参数 |
15 分钟 | 12 小时 | 1 小时 |
¹ 使用一个角色的凭证担任其他角色称为 role chaining(角色链)。在使用角色链时,新凭证的最大持续时间限制为 1 小时。当您使用角色向 EC2 实例上运行的应用程序授予权限时,则这些应用程序不受制于此限制。
² 该设置可以具有 1 小时到 12 小时之间的值。有关修改最大会话持续时间设置的详细信息,请参阅 修改角色。该设置确定在获取角色凭证时可请求的最大会话持续时间。例如,在使用 AssumeRole* API 操作担任角色时,您可以使用 DurationSeconds
参数指定会话长度。可以使用该参数指定 900 秒(15 分钟)到角色的最大会话持续时间设置之间的角色会话长度。在控制台内切换角色的 IAM 用户被授予最大会话持续时间或其用户会话中的剩余时间(以较少者为准)。假定您在角色上设置 5 小时的最大持续时间。已登录到控制台 10 小时(默认最多 12 小时)的 IAM 用户切换到该角色。可用角色会话持续时间为 2 小时。要了解如何查看您的角色的最大值,请参阅本页后面的查看角色的最大会话持续时间设置。
注意
-
最大会话持续时间设置不限制 Amazon 服务建立的会话。
-
要允许用户在角色会话中重新代入当前角色,请将角色 ARN 或 Amazon Web Services 账户 ARN 指定为角色信任策略中的主体。提供计算资源的 Amazon Web Services(例如 Amazon EC2、Amazon ECS、Amazon EKS 和 Lambda)会提供临时凭证并自动轮换这些凭证。这样可以确保您始终拥有一组有效的凭证。对于这些服务,无需重新代入当前角色即可获得临时凭证。但是,如果您需要传递 会话标签 或者 会话策略,则需要重新代入当前角色。要了解如何修改角色信任策略以添加主体角色 ARN 或 Amazon Web Services 账户 ARN,请参阅 修改角色信任策略(控制台)。
主题
查看角色的最大会话持续时间设置
您可以使用 Amazon Web Services Management Console 或通过使用 Amazon CLI 或者 Amazon API 来指定角色的最大会话持续时长。在使用 Amazon CLI 或 API 操作代入角色时,您可以为 DurationSeconds
参数指定一个值。您可以使用该参数指定 900 秒(15 分钟)到角色的最大会话持续时间设置之间的角色会话持续时间。在指定该参数之前,应查看您的角色的该设置。如果指定的 DurationSeconds
参数值高于最大设置,操作将失败。
查看角色的最大会话持续时间(控制台)
-
在 IAM 控制台的导航窗格中,选择 Roles。
-
选择要查看的角色的名称。
-
在 Maximum session duration(最长会话持续时间)旁,查看为角色授予的最大会话长度。这是您可以在您的 Amazon CLI 或 API 操作中指定的最长会话持续时间。
查看角色的最大会话持续时间设置 (Amazon CLI)
-
如果您不知道要承担的角色名称,请运行以下命令列出账户中的角色:
-
要查看角色的最大会话持续时间,请运行以下命令。然后,查看最大会话持续时间参数。
查看角色的最大会话持续时间设置 (Amazon API)
-
如果您不知道要承担的角色名称,请调用以下操作以列出账户中的角色:
-
要查看角色的最大会话持续时间,请运行以下操作。然后,查看最大会话持续时间参数。