

# 从用户切换到 IAM 角色（控制台）
<a name="id_roles_use_switch-role-console"></a>

以 IAM 用户、IAM Identity Center 中的用户、SAML 联合角色或 Web 联合身份角色登录时，您可以切换角色。*角色* 指定可用于访问所需的 Amazon 资源的一组权限。但是，您没有登录到角色，不过一旦以 IAM 用户身份登录，您就可以切换为 IAM 角色。这会临时搁置原始用户权限，而向您提供分配给角色的权限。角色可以在您自己的账户中或任何其他 Amazon Web Services 账户 中。有关角色、其权益以及如何创建角色的更多信息，请参阅[IAM 角色](id_roles.md)和[IAM 角色创建](id_roles_create.md)。

您的用户权限和切换为的角色的权限不会累积。一次只有一组权限处于活动状态。切换到一个角色后，您将临时放弃用户权限并使用分配给该角色的权限。退出该角色后，您的用户权限将自动恢复。

当您在 Amazon Web Services 管理控制台中切换角色时，控制台总是使用您的原始凭证对切换操作进行授权。例如，如果您切换到角色 A，则 IAM 使用您的原始凭证确定是否允许您担任角色 A。如果随后*在使用角色 A* 时尝试切换到角色 B，Amazon 仍会使用您的**原始**凭证对切换进行授权，而不是使用角色 A 的凭证。

**注意**  
当您以 IAM Identity Center 的用户、SAML 联合角色或 Web 身份联合角色登录时，您将在开始会话时代入 IAM 角色。例如，当 IAM Identity Center 中的用户登录 Amazon Web Services 访问门户时，他们必须选择与角色相关的权限集，然后才能访问 Amazon 资源。

## 角色会话
<a name="id_roles_iam_user-switch-role-sessions"></a>

当您切换角色时，Amazon Web Services 管理控制台 会话默认持续 1 小时。IAM 用户会话默认为 12 小时，其他用户可能会定义不同的会话持续时间。在控制台内切换角色时，您将被授予角色最长会话持续时间或您的用户会话中的剩余时间（以较短者为准）。您不能通过代入角色来延长会话持续时间。

例如，假定角色的最长会话持续时间为 10 小时。当您决定切换到该角色时，您已登录控制台 8 小时。您的用户会话还剩 4 小时，因此允许的角色会话持续时间为 4 小时，而不是最长会话持续时间 10 小时。。下表显示了如何在控制台中切换角色时确定 IAM 用户的会话持续时间。


| IAM 用户会话剩余时间... | 角色会话持续时间... | 
| --- | --- | 
| 小于角色最长会话持续时间 | 用户会话中的剩余时间 | 
| 大于角色最长会话持续时间 | 等于最长会话持续时间值 | 
| 等于角色最长会话持续时间 | 等于最长会话持续时间值（近似值） | 

使用一个角色的凭证代入其他角色称为[角色链](id_roles.md#iam-term-role-chaining)。使用角色链时，无论为各个角色配置的最长会话持续时间设置如何，会话持续时间都限制为 1 小时。这适用于 Amazon Web Services 管理控制台 角色切换、Amazon CLI 和 API 操作。

**注意**  
某些 Amazon 服务控制台可以在角色会话过期时自动续订角色会话，而无需您执行任何操作。有些可能会提示您重新加载浏览器页面以重新验证您的会话。

## 注意事项
<a name="id_roles_iam_user-switch-role-considerations"></a>
+ 如果您以 Amazon Web Services 账户根用户 身份登录，则无法切换角色。
+ 必须向用户授予通过策略切换角色的权限。有关说明，请参阅[向用户授予切换角色的权限](id_roles_use_permissions-to-switch.md)。
+ 您无法将 Amazon Web Services 管理控制台 中的角色切换到需要 [ExternalId](id_roles_common-scenarios_third-party.md#id_roles_third-party_external-id) 值的角色。您只能通过调用支持 `ExternalId` 参数的 [https://docs.amazonaws.cn/STS/latest/APIReference/API_AssumeRole.html](https://docs.amazonaws.cn/STS/latest/APIReference/API_AssumeRole.html) API 来切换到此类角色。

## 要切换为角色
<a name="id_roles_iam_user-switch-role-console-procedure"></a>

1. 按照《*Amazon 登录 用户指南*》中的 [Sign in to the Amazon Web Services 管理控制台](https://docs.amazonaws.cn/signin/latest/userguide/how-to-sign-in.html) 所述，根据用户类型选择相应的登录过程。

1. 在 Amazon Web Services 管理控制台 中，在右上角的导航栏上选择您的用户名。它通常类似于：***username*@*account\$1ID\$1number\$1or\$1alias***。

1. 选择以下方法之一来切换角色：
   + 选择**切换角色**。
   + 如果选择启用多会话支持，请选择**添加会话**，然后选择**切换角色**。
**注意**  
在 Amazon Web Services 管理控制台中的单个 Web 浏览器中，您最多可以同时登录五个不同的身份。有关详细信息，请参阅《Amazon Web Services 管理控制台入门指南》**中的[登录多个账户](https://docs.amazonaws.cn/awsconsolehelpdocs/latest/gsg/multisession.html)。

1. 在 **Switch Role** 页面上，键入账户 ID 号或账户别名以及管理员提供的角色的名称。
**注意**  
如果您的管理员创建了包含路径的角色（如 `division_abc/subdivision_efg/roleToDoX`），则必须在 **Role** 框中键入完整路径和名称。如果您仅键入角色名称，或组合的 `Path` 和 `RoleName` 超过 64 个字符，角色切换将失败。这是存储角色名称的浏览器 Cookie 的限制。如果发生这种情况，请与您的管理员联系，并要求他们减小路径和角色名称大小。

1. （可选）您可以输入显示名称，并选择在控制台导航栏中突出显示该角色的显示颜色。
   + 对于**显示名称**，键入您希望在此角色处于活动状态时将在导航栏上显示，以替代您的用户名的文本。系统会基于账户和角色信息提供建议名称，但是您可以将它更改为对您有意义的任何名称。
   + 在**显示颜色**中，选择用于突出显示名称的颜色。

   名称和颜色可帮助提醒您此角色处于活动状态的时间，这将更改您的权限。例如，对于向您提供对测试环境的访问权限的角色，您可以将 **Display name**（显示名称）指定为 **Test**，并选择绿色的 **Color**（颜色）。对于向您授予对生产环境的访问权限的角色，您可以将 **Display name**（显示名称）指定为 **Production**，并选择红色作为 **Color**（颜色）。

1. 选择**切换角色**。显示名称和颜色会在导航栏上替换您的用户名，您可以开始使用角色向您授予的权限。

1. 完成需要 IAM 角色的任务之后，您可以切换回原始会话。这将移除该角色提供的其他权限，并使您恢复到标准权限。

   1. 在 IAM 控制台中，在右上角的导航栏中选择角色的 **Display Name**（显示名称）。

   1. 选择**切换回**。

      例如，假设您使用用户名 `123456789012` 登录账号 `Richard`。在使用 `admin-role` 角色后，您要停止使用该角色并返回到您的原始权限。要停止使用该角色，请选择 **admin-role @ 123456789012**，然后选择**切换回**。  
![\[平面定位“切换回”功能以停止使用 IAM 角色并返回原始用户。\]](http://docs.amazonaws.cn/IAM/latest/UserGuide/images/role-stop-using.png)

**提示**  
您使用的最后几个角色将显示在菜单上。下次想要切换到其中的一个角色时，您可以直接选择所需的角色。只有在菜单上未显示角色时，您才需要手动键入账户和角色信息。

## 其他资源
<a name="id_roles_use_switch-role-console_additional_resources"></a>
+ [向用户授予切换角色的权限](id_roles_use_permissions-to-switch.md)
+ [向用户授予权限以将角色传递给 Amazon 服务](id_roles_use_passrole.md)
+ [创建角色，向 IAM 用户授予权限](id_roles_create_for-user.md)
+ [创建向 Amazon 服务委派权限的角色](id_roles_create_for-service.md)
+ [排查 IAM 角色问题](troubleshoot_roles.md)