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