为什么作为AWS根用户登录时不允许角色切换?

4
根据AWS文档此处 - 您无法在以AWS帐户根用户身份登录时切换角色
如果我们遵循AWS最佳实践,即不使用根用户执行操作,则此限制是有道理的,并支持为什么AWS不允许根用户切换角色。但是,在使用Bucket策略时,一个帐户中的根用户可以访问另一个帐户中的Bucket,而AWS似乎不像角色那样限制它(从技术上讲,两者都是使用资源策略的跨帐户操作)。
为什么这个“根用户限制”只适用于角色而不适用于buckets - 任何安全原因吗?
2个回答

2

通常情况下,通过 IAM 用户、IAM 组和 IAM 角色的 IAM 权限来授予访问服务的权限。

一些 AWS 服务还允许创建策略,以授予对该特定服务的某些方面的访问权限。例如:

  • Amazon S3 存储桶策略
  • Amazon SQS 队列访问策略
  • Amazon SNS 访问策略

这些策略可用于授予跨帐户访问权限,以及 未经身份验证的访问,例如向 Amazon S3 存储桶中的对象公开访问,以及发送未经身份验证的消息到 Amazon SQS 队列。

这些策略用于授予其他访问权限。它们不涉及“假设”任何其他角色。


谢谢约翰 - 为什么假设承担额外角色只限于IAM用户,即“为什么不能让一个账户的根用户暂时承担另一个账户的角色”? - Abhishek Palakkal Kaliyath
4
在AWS早期,只有根用户登录。它可以做所有的事情。随着时间的推移,人们希望增加细粒度安全性,因此创建了IAM。根账户是旧时代的“遗留物”,不符合IAM安全模型。扮演角色是IAM的一个功能,而根账户不是IAM实体。最近,随着AWS组织的出现,可以创建没有根用户登录的帐户(而是使用IAM管理员角色)。这只是一点历史,而不是“为什么”的解释。 - John Rotenstein
谢谢John,你的评论让我稍微安心了一些 :-) - Abhishek Palakkal Kaliyath

1
我认为在使用角色和桶策略与外部帐户的root作为原则方面存在一些误解。
角色意味着临时假定,适用于通常没有某些操作权限的人或事物。这可以是来自同一或不同帐户的用户或服务。
然而,当您在桶策略原则中使用其他帐户的root时,您将为该帐户提供对桶的所有或某些操作的永久(直到您手动撤销)信任。您使用root作为原则,以便其他帐户的所有者可以委派访问其自身用户或角色的访问权限。您完全信任其他帐户管理对桶的访问,无需您参与其中。
当然,如果您不愿意向其他帐户提供这种信任,您可以仅将对您的桶的访问限制为特定的IAM用户或角色。这显然会限制其他帐户的所有者委派对您的桶的访问权限的能力。

谢谢Marcin,我理解你所解释的内容,但是重新表述我的问题——“为什么一个账户的root用户不能暂时地在另一个账户中扮演角色”,而且为什么只有IAM用户被允许? - Abhishek Palakkal Kaliyath
1
@AbhishekPalakkalKaliyath 我认为这是基于 AWS 不使用 root 账户的原则。这是不使用 root 账户的一个更少的理由。如果允许使用 root 账户,人们可能会用 root 测试角色问题 - 作为 IAM 用户无法解决,也许作为 root 可以解决?就像在 Linux 中一样 - 一个命令不起作用,所以尝试使用 sudo。这只是我的猜测。也许还有一些技术上的原因。 - Marcin
有道理,Marcin。如果AWS在S3桶上也对根用户应用类似的限制就好了,事实上这正是我想通过我的原始问题澄清的内容。 - Abhishek Palakkal Kaliyath
1
@AbhishekPalakkalKaliyath 我明白你的意思。对此我没有答案。作为存储桶的所有者,你不需要添加这样的权限。你可以选择其他账户中的任何IAM用户或角色,或者创建自己的角色。它不必是来自其他账户的根角色。 - Marcin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接