首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS中IAM角色与IAM用户的区别

AWS中IAM角色与IAM用户的区别
EN

Stack Overflow用户
提问于 2017-09-13 14:04:28
回答 8查看 47.8K关注 0票数 68

IAM角色和IAM用户之间有什么区别?IAM常见问题有一个条目来解释它,但它很模糊,也不太清楚:

IAM用户具有永久的长期凭据,用于与AWS服务直接交互.IAM角色没有任何凭据,不能直接请求AWS服务。IAM角色是由授权实体承担的,如IAM用户、应用程序或AWS服务(如EC2 )。

我认为IAM角色用于联邦登录(例如使用带有SAML令牌的IdP ),而且它们没有永久访问密钥,您可以像常规IAM用户一样下载这些密钥(“IAM角色没有任何凭据”部分)。

当他们说IAM角色不能直接请求AWS服务时,这是什么意思?我可以登录到AWS控制台(网络控制台)和创建堆栈等,所以它不可能。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2018-01-10 08:00:47

为了理解这种差异,让我们来了解一下我的基本知识。

IAM控件:在您的AWS帐户中,谁(身份验证)可以做什么(授权)。使用IAM的身份验证(Who)是通过用户/组和角色完成的,而授权(什么)则是由策略完成的。

在这里这个词

  • 用户端用户考虑人
  • 组-一组权限(策略)下的一组用户
  • 角色-用于在一组时间内授予特定参与者特定的权限。这些参与者可以通过AWS或某些受信任的外部系统进行身份验证。

用户和角色使用策略进行授权。请记住,除非您允许策略中的某些操作,否则用户和角色不能做任何事情。

回答以下问题,您将区分用户和角色:

  • 能有密码吗?是->用户,不->角色
  • 能有一个访问密钥吗?是->用户,不->角色
  • 可以属于一个团体吗?是->用户,没有->角色
  • 可以与AWS资源(例如EC2实例)相关联吗?不->用户,是->角色

AWS支持针对不同场景的3种角色类型

  • AWS服务角色(例如: EC2、Lambda、Redshift、.)
  • 跨帐户访问:向其他AWS帐户的用户授予权限,无论您是否控制这些帐户。
  • 身份提供程序访问:向受信任的外部系统验证的用户授予权限。AWS支持两种身份联合:-基于Web的身份,如Facebook,Goolge支持通过OpenID连接-SAML2.0身份,如Active,LDAP。

为了理解角色是什么,您需要阅读它的用例,我不想重新发明轮子,所以请阅读以下AWS文档:https://aws.amazon.com/blogs/security/how-to-use-a-single-iam-user-to-easily-access-all-your-accounts-by-using-the-aws-cli/

saml.html

希望能帮上忙。

票数 86
EN

Stack Overflow用户

发布于 2018-08-17 05:00:38

IAM的主要参与者是用户角色policies。你需要了解AWS并且永远不要忘记的是

AWS中的所有内容都是一个API。

要执行任何API或它的任何方法,我们首先必须对特定的用户/组/角色进行身份验证,然后授权它。

例:操作符想要将一个对象放到S3桶中。此过程通过AWS中的一组API调用进行。基本上,我们调用S3 API及其方法将对象放入特定的桶中(例如方法put_object_in_s3)。为此,我们可能希望提供桶的名称、对象,最重要的是,我们需要提供一组凭据(用户名带有密码或密钥等),以便告诉API引擎这个用户/组/角色是谁。

API引擎所做的第一件事就是查看与API一起发送的凭据。然后,它验证那些(它们是否正确、活动)凭据,指示此请求来自实际有效的用户、组或角色。然后API引擎所做的就是(现在它知道是谁发送了这个API请求),它将与特定操作符(用户或角色)关联的策略文档作为一个单独的视图进行评估。也就是说,我们检查API中调用的操作是否为该操作符授权。

IAM用户-在IAM的上下文中,用户是一个命名为“永久”的操作符(人或机器)。需要注意的是,它的凭据(凭证,可能是用户名、密码或访问密钥或秘密密钥)是永久的,并且与该名用户保持在一起。因此,AWS知道该用户的身份验证方法(用户名、密码、身份验证方法或秘密密钥方法等)是什么(作为其永久的,并与用户保持在一起)。

IAM组-正如在上面的图像中,一个组是用户的集合。请注意,用户也可以在许多组中。

IAM角色-角色不是权限!角色也是一种身份验证方法,就像IAM用户和组一样。作为用户,角色也是操作员(可以是人,也可以是机器)。不同之处在于,具有角色的凭据是临时的。

策略文档-如前所述,角色不是权限。AWS中的权限完全由名为Policy Documents的对象处理。策略文档是JSON文档。策略文档可以直接附加到用户、组或角色。当一个策略文档被附加到上面任何一个操作符时,那么只有他们获得权限才能完成任务。策略文档列出了如下内容:特定的API或通配符组( API或通配符组),这些API的资源将被白化,以及这些API执行的条件(例如只允许在家庭网络中的用户、组或角色,或者允许从任何位置,只允许在一天中的特定时间等)。

最后但并非最不重要的一点是,AWS中的身份验证是通过(IAM用户、组和角色)完成的,而授权则是通过策略完成的。

票数 53
EN

Stack Overflow用户

发布于 2017-09-13 14:28:21

当他们说IAM角色不能直接请求AWS服务时,这是什么意思?我可以登录到AWS控制台(网络控制台)和创建堆栈等,所以它不可能。

您是IAM用户(附带一些IAM角色)。

把IAM角色看作是能力。

您提供了IAM用户功能(例如,“可以创建Lambda函数”,“可以上传到S3")。

关于联合用户的说明

来自http://docs.aws.amazon.com/IAM/latest/UserGuide/id.html

可以将角色分配给通过使用外部身份提供程序(而不是IAM )登录的联邦用户。AWS使用身份提供程序传递的详细信息来确定哪个角色映射到联邦用户。

因此,联邦用户类似于IAM用户,您可以将IAM角色附加到IAM用户。只是你有一个外部身份提供者。

从技术上讲,当您登录到AWS控制台时,没有使用角色作为您的身份。您正在使用您的联邦用户帐户(带有它自己附加的角色)作为您的标识。

票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46199680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档