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



我有一个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(,并查看了其中所述的政策。

最新更新