为什么需要角色相对于IAM组来访问另一个AWS账户中的资源?

如何解决为什么需要角色相对于IAM组来访问另一个AWS账户中的资源?

我试图理解为什么您需要IAM“角色”来访问其他IAM帐户中的资源,以及为什么AWS不能仅对IAM组执行相同的操作。

每当我问人们这个问题时,谈话似乎就绕圈了:
他们:“要向另一个IAM帐户中的用户授予对资源的访问权限,您必须授予他们承担IAM角色的权限,然后向该IAM角色授予对您的资源的访问权限。”
我:“我了解这一点,但是为什么不创建一个可以访问该资源的IAM组,然后将其他帐户中的那些用户添加到您的IAM组中呢?”
他们:“您不能将用户从另一个AWS账户添加到您账户中的IAM组。”
我:“我也理解这一点,但是为什么AWS仅允许您通过使用角色来进行跨账户权限?为什么让AWS创建一个IAM组然后添加您就没有那么有意义了?来自其他帐户的IAM用户是否属于该组?”

可能有一些简单的单句信息解释了为什么必须采用这种方式,一旦有人告诉您,这一切都说得通,但这不在文档中,我也不知道它是什么。什么事?

解决方法

我会说安全是主要原因。 IAM角色仅提供临时凭据。出于安全原因,良好做法是尽可能使用此类凭据的方法。

当然,您也可以在您的帐户中创建IAM用户,并将相关的访问密钥提供给其他帐户的用户。有时这是首选,例如以启用对某些资源的只读访问。但是问题在于,除非手动禁用或删除,否则IAM用户凭据是永久。出于安全原因,不建议将永久凭据泄露给您的帐户。

来自docs

我们建议使用这种方法来实施最低特权原则。这意味着将提升权限的使用限制为仅在特定任务需要它们时使用。 使用角色,可以帮助防止意外更改敏感环境,尤其是将它们与审核结合使用时,可以帮助确保仅在需要时使用角色。

,

一句话答案是亚马逊选择了这种方式。

从操作的角度来看,如果将访问密钥与帐户关联,则可以大大简化寿命。另一种方法是为每个请求分别指定一个帐户。

从组织管理的角度来看,树木比森林更容易理解。我的意思是,所有内容都从帐户的IAM根分支出来。如果您允许整个AWS Universe中的任意用户访问任意帐户中的任意资源,那么您将面临管理上的噩梦。

作为最后一条评论的补充,早期的AWS服务具有基于资源的策略。现在不鼓励使用基于身份的策略,并且较新的服务没有资源策略。

最后,从安全角度来看,如果在每个租户周围建立坚固的围墙,则多租户环境的控制要容易得多。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?