如何从不同的 Cognito 用户池访问受 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 本身(不是它的任何子项)。但是,为了避免使用通配符并更好地控制资源,我遵循了 guide(我之前没有读过,ups)并查看那里规定的政策。