【问题标题】:Can I refer to a specific Cognito User Pool as a principal in an AWS IAM policy?我可以将特定 Cognito 用户池作为 AWS IAM 策略中的委托人吗?
【发布时间】:2020-01-03 12:48:26
【问题描述】:

我想限制对 AWS S3 存储桶的访问,以便只能由通过特定 Cognito 用户池进行身份验证的用户创建新对象。通过查看 AWS 文档,我无法弄清楚如何将用户池指定为策略中的委托人。谁能帮我这个?

如果这是不可能的,那么我会很感激一些指针/指导,这可能会帮助我使用其他一些技术达到预期的结果。谢谢。

【问题讨论】:

    标签: amazon-s3 amazon-cognito amazon-iam


    【解决方案1】:

    我认为用户池不允许您这样做,因为您只能获得经过身份验证的实体的访问令牌。您可能需要创建一个身份池,它允许您的用户池中的用户检索临时 IAM 凭证。在身份池中,您还可以配置这些登录用户使用他们的临时凭证获得的角色。您可以使用这些角色将 S3 存储桶的访问权限限制为只有经过身份验证的用户。

    在下面的示例中,您可以看到配置了 Cognito 用户池作为身份验证提供程序的身份池的设置。它将使用顶部配置的默认角色(大红色矩形),或者您可以为 Cognito 身份验证提供程序(小矩形)选择自定义角色。所有角色都可以使用 IAM 进行管理。

    【讨论】:

    • 谢谢。我确实有一个包含用户池的身份池,所以这听起来是正确的方法。您能否提供一个可以帮助我入门的示例?
    • 我已经编辑了答案以包括身份池的屏幕截图,该屏幕显示了在哪里为(未)身份验证的用户配置角色。如果您只使用一个身份验证提供程序并且只允许经过身份验证的用户,那么您只需处理经过身份验证的角色(您可以在 IAM 中找到)。
    猜你喜欢
    • 2020-03-29
    • 2021-11-12
    • 1970-01-01
    • 2018-09-08
    • 2016-04-25
    • 2018-11-01
    • 1970-01-01
    • 2014-11-10
    • 2019-06-23
    相关资源
    最近更新 更多