AWS - 用户类型以及他们如何承担IAM角色

时间:2018-05-28 06:19:17

标签: amazon-web-services aws-cognito aws-iam

问题

阐明AWS中的用户如何承担IAM角色。这让我很困惑,因为AWS中的用户/身份可能会有所不同,具体取决于上下文,例如IAM用户,Cognito用户池用户,Cognito联合用户。

背景

尝试了解AWS中用户身份之间的关系,以及每个用户如何承担IAM角色。

同样在AWS中,用户/未经身份验证的身份(经过身份验证的用户)似乎是不同的概念,并且两者都可以承担IAM角色,因此它看起来经过身份验证不是承担IAM角色的先决条件,这也让我感到困惑。

  1. IAM 用户/身份(身份=用户通过身份验证,例如通过带有AWS ID /秘密的AWS CLI)
  2. Cognito用户池用户/身份(已通过身份验证)
  3. Cognito联合身份池用户/身份(已通过身份验证)
  4. 还有其他用户类型吗?
  5. IAM用户(已通过身份验证)

    我认为这是通过登录AWS控制台或通过具有AWS访问密钥ID /机密的CLI / SDK识别的用户的标识。此用户可以通过Switching to a Role (AWS Management Console)或使用CLI / SDK以编程方式assume-role承担IAM角色。这是对的吗?

    Cognito用户池用户

    我认为用户仅存在于AWS账户中的Cognito中,而与IAM用户无关。目前无法将 IAM用户映射到 Cognito用户(既不是用户池也不是联合身份池),如Add AWS IAM users to AWS Cognito Pool所示。

    看起来很少有方法可以将IAM角色分配给Cognito用户池用户身份(经过身份验证的用户)

    一种方法是将IAM角色分配给添加用户的Cognito用户池组。用户池组中经过身份验证的用户可以自动承担IAM角色。

    enter image description here

    另一种方法是通过与Cognito用户池联合使用Cognito联合身份池,并将IAM角色分配给联合身份池。在这种情况下,Cognito用户池用户/身份(经过身份验证)与Cognito联合身份池用户/身份(经过身份验证)等效。

    我认为用户将通过Cognito联合身份池通过Cognito用户池工作流进行身份验证。然后,用户可以假定映射到Cognito用户池组的IAM角色 AND 映射到Cognito联合身份(已验证)的IAM角色。

    这些是正确的,还是用户只能假设其中一个IAM角色?如果AWS organisation中有多个帐户,该怎么办?每个帐户是否应创建其Cognito用户池以管理同一组用户,或在帐户中拥有一个Cognito用户池,并通过指向用户池的Cognito Fedatated Identities在帐户之间共享Cognito用户池?

    enter image description here

    Cognito联合身份池用户

    如果联盟不使用Cognito,例如使用Facebook,则Cognito联合身份池用户/身份与Cognito用户池用户/身份和用户无关是Facebook的。即使未经身份验证,用户也可以假定映射到Cognito联合身份池的IAM角色。这是对的吗?

    enter image description here

    帮助

    我一直在研究AWS Re:Invent视频,AWS文档,但很难清楚地理解Cognito的术语和含义。如果有清晰,简单,直观的解释,请提供参考。

0 个答案:

没有答案