AWS Identity and Access Management
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

向用户授予切换角色的权限

当您创建用于跨账户访问的角色时,您在拥有角色和资源的账户 (信任账户) 和包含用户的账户 (可信账户) 之间建立了信任。为此,可将可信账户的编号指定为该角色的信任策略中的 Principal。这可能会允许可信账户中的任何用户代入该角色。要完成配置,可信账户的管理员必须为该账户中的特定组或用户提供切换到该角色的权限。

要向用户授予切换到某个角色的权限,可为用户创建新策略或编辑现有策略以添加所需元素。您随后可向用户发送链接,以使用户进入已填写所有详细信息的 Switch Role 页面。或者,您可以为用户提供包含角色的账户 ID 号或账户别名以及角色名称。用户随后转到 Switch Role 页面,然后手动添加详细信息。有关用户如何切换角色的详细信息,请参阅切换到角色 (AWS 管理控制台)

请注意,您只能在以 IAM 用户身份登录时切换角色。如果您以 AWS 账户根用户 身份登录,则无法切换角色。

重要

您无法将 AWS 管理控制台 中的角色切换到需要 ExternalID 值的角色。您只能通过调用支持 ExternalID 参数的 AssumeRole API 来切换到此类角色。

备注

  • 本主题讨论了用户 的策略,因为我们最终会向用户授予完成任务的权限。但是,最好不要直接向单个用户授予权限。为方便管理,我们建议向 IAM 组分配策略并授予权限,然后使得用户成为相应组的成员。

  • 当您在 AWS 管理控制台 中切换角色时,控制台总是使用您的原始证书对切换操作进行授权。无论您作为 IAM 用户、SAML 联合角色还是 Web 联合身份角色登录,上述情形均适用。例如,如果您切换到 RoleA,它会使用您的原始用户或联合角色凭证确定是否允许您担任 RoleA。如果您在使用 RoleA 时尝试切换到 RoleB,仍会使用您的原始用户或联合角色凭证对您切换到 RoleB 的尝试进行授权,而不会使用 RoleA 的证书。

创建或编辑策略

为用户授予代入角色的权限的策略必须包含一个语句,该语句对 sts:AssumeRole 操作以及 Resource 元素中的角色的 Amazon 资源名称 (ARN) 具有 Allow 效果,如以下示例所示。获得了该策略 (通过组成员资格或直接附加) 的用户可以切换到指定角色。

注意

请注意,如果 Resource 设置为 *,则用户可在信任用户的账户的任何账户中代入任何角色 (角色的信任策略将用户的账户指定为 Principal)。作为最佳实践,我们建议您遵循最低权限原则并且仅为用户所需的角色指定完整的 ARN。

以下示例演示了一个策略,该策略仅允许用户代入一个账户中的角色,并通过通配符 (*) 另外指定:如果角色名称以字符“Test”开头并后跟任何其他字符组合,则用户只能切换到该账户中的角色。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws-cn:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/Test*" } }

注意

角色向用户授予的权限不会添加到用户已获得的权限。当用户切换到某个角色时,用户可临时放弃其原始权限以换取由该角色授予的权限。用户退出该角色时,将自动恢复原始用户权限。例如,如果用户的权限允许使用 Amazon EC2 实例,但是角色的权限策略未授予这些权限,则在使用角色时,用户无法在控制台中使用 Amazon EC2 实例,并且通过 AssumeRole 获取的临时凭证不可以编程方式用于 Amazon EC2 实例。

向用户提供信息

创建一个角色并向用户授予切换为该角色的权限后,您必须向该用户提供角色名称和账户 ID 号或包含该角色的账户别名。通过向用户发送使用账户 ID 和角色名称预配置的链接,可使用户更轻松地执行操作。在 Create Role 向导的最终页面上,或在启用了跨账户功能的任何角色的 Role Summary 页面上,都可以看到角色链接。

注意

如果您使用 AWS CLI、Windows PowerShell 工具 或 AWS API 创建了角色,则可使用路径以及名称创建角色。如果您这样做,则必须向您的用户提供完整的路径和角色名称以便在 AWS 管理控制台的 Switch Role 页面上键入。例如:division_abc/subdivision_efg/role_XYZ

重要

如果您以编程方式而不是在 IAM 控制台中创建角色,则除最长可达 64 个字符的 RoleName 外,您还可以选择添加最长 512 个字符的 Path。但是,要通过 AWS 控制台中的切换角色功能使用角色,则组合的 PathRoleName 不能超过 64 个字符。

您还可使用以下格式手动构建链接。请用您的账户 ID 或别名及角色名称替换请求中以下两个参数:

https://signin.aws.amazon.com/switchrole?account=YourAccountIDorAliasHere&roleName=pathIfAny/YourRoleNameHere

我们建议您将用户定向到切换到角色 (AWS 管理控制台)主题以指导他们完成该过程。

注意

出于安全原因,您可使用 AWS CloudTrail 来审核角色切换。如果为账户启用了 CloudTrail,则 IAM 会记录使用角色的临时安全凭证执行的操作。有关更多信息,请参阅 AWS CloudTrail User Guide中的 CloudTrail 事件引用