AWS IAM角色与组

Dus*_*Sun 50 amazon-web-services

AWS官方站点将角色视为权限集合,并将组视为用户集合.但他们看起来仍然一样.您将策略附加到组或角色,然后将组或角色分配给用户.角色和群体之间到底有什么区别?

Raz*_*Raz 49

googlers的简短回答:您无法为用户分配角色.

  • group是一群具有相同策略的用户
  • role是服务策略的预设

用户可以根据AWS文档设置角色:

假设一个角色

  • ***你不能给用户分配角色***是让我意识到它们之间的区别的关键句子.角色是一种向某人(客户,供应商,承包商,员工,EC2实例,AWS外部的某些外部应用程序尝试使用您的服务)提供权限的方式,而无需为其创建用户. (11认同)
  • 在我看来,IAM 角色涵盖了 IAM 组的所有用例。每当您需要为用户创建 IAM 组时,只需创建具有相同策略的 IAM 角色并让用户代入该角色即可。那么为什么我们需要 IAM 集团呢? (5认同)
  • “分配”角色给用户和用户“承担”角色有什么区别?我不会说您也可以将组分配给用户。 (4认同)
  • @papiro 假设是临时手动操作,而添加到组是永久的 (3认同)

Nav*_*jay 24

AWS Groups是标准组,您可以将其视为多个用户的集合,并且用户可以属于多个组.

AWS IAM角色是不同的物种; 它们像个人用户一样运行,除了它们主要用于模拟样式并与AWS API调用进行通信而不指定凭据.

鉴于IAM角色略有不同,我只强调这一点.有几种类型的IAM角色,如EC2 IAM角色,Lambda等.如果考虑,您可以启动具有EC2 IAM角色的EC2实例; 因此,任何与AWS API相关的通信都不需要任何AWS Access Key或Secret密钥进行身份验证,而是可以直接调用API(但长期的答案是 - 它使用STS并在后台不断循环使用凭证); 它可以做什么的特权或权限由附加到IAM角色的IAM策略决定.

Lambda IAM Role的工作原理完全相同,只是Lambda函数只能使用Lambda IAM Role等.

  • 这是不正确的.具有IAM角色的EC2实例仍使用访问密钥; 但这些是从实例元数据中检索(自动使用SDK,或手动否则),并且非常短暂.更多详细信息,请访问http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#instance-metadata-security-credentials (7认同)
  • 谢谢克里斯 - 我已经更新了答案。我最初的意图是强调不需要干预访问密钥和秘密。 (2认同)

Ris*_*hak 5

用户:最终用户(Think People)。

组:一个用户的集合在一组权限(许可政策)。

角色:您创建角色并将其分配给AWS资源AWS资源示例可以是客户,供应商,承包商,雇员,EC2实例,AWS外部的某些外部应用程序),但请记住,您无法将角色分配给用户。

  • “客户、供应商、承包商、员工”不就是IAM用户吗?如果没有,怎么办? (6认同)

Ed *_*ton 5

团体

旨在代表在 IAM 中创建的需要相同策略的人类用户。

前任。Dev 1-Dev 8都是开发人员,并且都需要访问权限来创建服务器。

这与传统的用户管理类似。


角色

Roles分发自动凭证和权限。

这有利于两件事:

  1. 非人类授予权限,例如服务/应用程序。

前任。EC2 of type A需要访问S3 of type B.

这是制作系统最常见的用例。

  1. 向联合/外部用户和组授予权限。

前任。Contractor A@Outside Company A需要访问您的Server A.

来自身份提供商的授权将映射到您的 IAM role(s)NOT usersgroups

从技术上讲,这是第 1 点,因为 IdP 需要某种方式来管理在 IAM 外部创建的人类用户

  • 注意:我使用 Jumpcloud 的文章和 AWS 的文档来收集此信息。术语“组”、“角色”和“用户”在 SSO+IdP 和 IAM 的上下文中变得过载。

这是显示它们如何映射的图像roles

需要 10 声望:(

希望这能让上述答案变得清晰。


注意:一种分配Roles给普通 IAM Users& 的方法Groups,但这似乎是不好的做法。