Amazon web services 为什么以AWS根用户身份登录时不允许角色切换?

Amazon web services 为什么以AWS根用户身份登录时不允许角色切换?,amazon-web-services,amazon-iam,aws-policies,Amazon Web Services,Amazon Iam,Aws Policies,根据AWS文档-当您以AWS帐户根用户身份登录时,无法切换角色 如果我们遵循AWS最佳实践,即不使用root用户执行操作,则此限制是有意义的,并支持AWS不允许角色切换为root用户的原因。但是,当使用Bucket策略时,一个帐户中的root用户可以访问另一个帐户中的Bucket&AWS似乎没有限制这一点,不同于角色(从技术上讲,两者都是使用资源策略的跨帐户操作) 为什么此“根用户限制”仅适用于角色而不适用于存储桶-出于任何安全原因?通常通过IAM用户、IAM组和IAM角色的IAM权限授予对服务

根据AWS文档-当您以AWS帐户根用户身份登录时,无法切换角色

如果我们遵循AWS最佳实践,即不使用root用户执行操作,则此限制是有意义的,并支持AWS不允许角色切换为root用户的原因。但是,当使用Bucket策略时,一个帐户中的root用户可以访问另一个帐户中的Bucket&AWS似乎没有限制这一点,不同于角色(从技术上讲,两者都是使用资源策略的跨帐户操作)


为什么此“根用户限制”仅适用于角色而不适用于存储桶-出于任何安全原因?

通常通过IAM用户、IAM组和IAM角色的IAM权限授予对服务的访问权限

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

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


这些策略用于授予额外的访问权限。它们不涉及“承担”任何其他角色。

对服务的访问通常通过IAM用户、IAM组和IAM角色的IAM权限授予

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

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


这些策略用于授予额外的访问权限。它们不涉及“承担”任何额外的角色。

我认为对于角色的使用和以外部帐户的
根作为原则的桶策略存在一些误解

对于通常不具有某些操作权限的人或事,这些角色是临时的。这可能是来自相同或不同帐户的用户或服务

但是,当您在bucket策略原则中使用其他帐户的
root
时,您将该帐户永久性(直到您手动撤销)信任该bucket的所有或部分操作。您使用
root
作为原则,以便其他帐户的所有者可以将访问权限委托给自己的用户或角色。您完全信任另一个帐户在没有您参与的情况下管理对bucket的访问


当然,如果您不愿意将这种信任给予另一个帐户,您可以将访问权限限制为仅限于给定IAM用户或角色。这显然会限制其他帐户所有者将访问权限委托给您的bucket的能力。

我认为在使用角色和以外部帐户的
root
为原则的bucket策略方面存在一些误解

对于通常不具有某些操作权限的人或事,这些角色是临时的。这可能是来自相同或不同帐户的用户或服务

但是,当您在bucket策略原则中使用其他帐户的
root
时,您将该帐户永久性(直到您手动撤销)信任该bucket的所有或部分操作。您使用
root
作为原则,以便其他帐户的所有者可以将访问权限委托给自己的用户或角色。您完全信任另一个帐户在没有您参与的情况下管理对bucket的访问


当然,如果您不愿意将这种信任给予另一个帐户,您可以将访问权限限制为仅限于给定IAM用户或角色。这显然会限制另一个帐户的所有者授权访问您的存储桶的能力。

谢谢Marcin,我理解您的解释,但重新表述了我的问题-“为什么一个帐户的root用户不能临时在另一个帐户中担任角色”&为什么只允许IAM用户?@abhishekpalakkalliyath我认为这是aws不使用root帐户的原则。这是少了一个使用root帐户的原因。如果允许的话,ppl只会用root测试角色问题——它不能作为iam用户工作,也许它会作为root用户工作?与linux中的类似-命令不起作用,所以尝试sudo。只是我的猜测。也许也有一些技术原因。Marcin说得通——如果AWS也对S3存储桶的根用户应用类似的限制的话&事实上,这就是我试图通过我最初的问题澄清的:——)@abhishekpalakkalliyath我明白你的意思了。我对此没有答案。作为bucket所有者,您不必添加此类权限。您可以从其他帐户选择任何IAM用户或角色,也可以创建自己的角色。它不必是来自其他帐户的root用户。谢谢Marcin,我理解你的解释,但重新表述了我的问题——“为什么一个帐户的root用户不能暂时在另一个帐户中扮演角色”&为什么只允许IAM用户?@Abhishekpalakkalliyath我认为这是aws不使用root帐户的原则。这是少了一个使用root帐户的原因。如果允许的话,ppl只会用root测试角色问题——它不能作为iam用户工作,也许它会作为root用户工作?与linux中的类似-命令不起作用,所以尝试sudo。只是我的猜测。也许有一些技术上的原因