在多账户 AWS 环境中,我将如何在 IAM 用户登录时强制他/她承担角色?

Posted

技术标签:

【中文标题】在多账户 AWS 环境中,我将如何在 IAM 用户登录时强制他/她承担角色?【英文标题】:In a multi-account AWS environment, how would I force a role assumption on a IAM user when he/she logs in? 【发布时间】:2017-06-01 10:05:19 【问题描述】:

我正在管理一个包含合并账单的多账户 AWS 环境。同时,我将所有 IAM 用户创建集中在一个别名(帐户)下,以进行有效管理。但他们的资源位于基于项目创建的其他 AWS 账户中。

我已经使用 IAM 角色设置了跨 AWS 账户的委派访问,它可以正常工作。但是,这些用户每次登录时都需要手动切换角色。这很麻烦。如何强制这些用户在登录时自动获取此类角色?

【问题讨论】:

这是为跨账户角色访问而设计的。为什么不在他们最常使用的帐户中创建组?目前据我所知,如果他们需要控制台访问不同的帐户,没有真正的解决方案。 我是唯一管理设置的人,所以我的目标是一次性实现多个目标:(1) 集中用户管理 (2) 按项目划分帐单 (3) 每个用户登录到他们的本地环境而没有太多麻烦 【参考方案1】:

您可以向他们提供链接,以直接登录他们认为“本地”的帐户。如果他们未登录基本账户 AWS 将强制登录该账户,然后自动切换角色。

您可以使用以下格式自己手动构建链接: https://signin.aws.amazon.com/switchrole?account=account_id_number&roleName=role_name&displayName=text_to_display 您的管理员向您提供 account_id_number 和 role_name。对于 text_to_display,请参阅以下过程中步骤 5 中的说明。

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html

【讨论】:

以上是关于在多账户 AWS 环境中,我将如何在 IAM 用户登录时强制他/她承担角色?的主要内容,如果未能解决你的问题,请参考以下文章

如何将驻留在账户 A 中的 s3 存储桶的访问权限授予来自多个 aws 账户的不同 iam 用户?

如何使用 terraform 创建具有访问权限和密钥的 AWS IAM 服务账户

IAM 用户可以为我的 AWS 账户上的服务付费吗?

编写 IAM 策略,其中任何具有 EC2 完全访问权限的用户都不能删除 AWS 账户中任何其他用户的实例

如何将 S3 存储桶锁定到特定用户和 IAM 角色

更改 IAM 用户密钥时如何更新 Elastic Beanstalk 环境变量中的 AWS 凭证?