繁体   English   中英

如何从不同的认知用户池访问受 S3 保护的文件?

[英]How can I access S3 protected files from a different cognito user pool?

我有一个 Cognito 用户池(我们称之为 UP1)。 该池中的用户使用 Amplify 将受保护的文件上传到 S3。 现在我有另一个用于管理端的用户池 (UP2)。 但是,使用登录 UP2 的用户(也通过放大),我无法访问用户在 UP1 中上传的 S3 文件,因为我总是收到 HTTP 403。

分配给 UP2 的 IAM 角色必须能够对该 S3 存储桶执行任何操作(到目前为止还没有运气)。

这是政策

{
  "Statement": [
     {
      "Action": [
         "*"
       ],
       "Resource": [
         "<bucket_arn/*>"
       ],
       "Effect": "Allow"
     }
  ]
}

以及使用 Amplify 从 UP2 中的用户访问 UP1 文件的方式

Storage.list('<somepath>/', {
  level: 'protected',
  identityId: '<identityId of the User from UP1>',
}

为了列出和获取此存储桶中的文件,我是否遗漏了什么? 是否可以?
或者我如何向 UP2 中的用户授予“特殊”权限,以允许我访问这些 S3 文件。

谢谢!

解决了。

抱歉,我错误地配置了 IAM 策略。 我认为通配符本身就可以解决所有子资源(包括它自己)的问题。

我正在执行 ListBucket 操作,其资源必须是 Bucket 本身(不是它的任何子项)。 但是,为了避免使用通配符并更好地控制资源,我遵循了指南(我之前没有阅读过,ups)并查看那里说明的政策。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM