【发布时间】:2020-03-06 23:26:16
【问题描述】:
我正在关注 this 从 S3 添加/列出对象的教程。
起初,由于Access Denied错误,我无法列出对象,所以我发现我必须为cognito创建的角色添加额外的权限s3:ListBucket和资源arn:aws:s3:::my-bucket给unauth用户:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
}
]
}
现在,当我尝试上传文件时,我收到了另一个 Access Denied。
是我做错了什么还是本教程有很多错误?
附加检查:
- 存储桶有 CORS
- 创建bucket后我没有更改任何权限(一切默认)
- 我正在使用正确的 Cognito 身份池 ID(我可以列出 albmus)
- 我可以删除相册
-
Access Denied错误后我可以看到 cognito unauth 中有新身份,因此脚本可以正常工作。 - 存储桶的所有者(我)拥有存储桶的读/写权限
【问题讨论】:
-
是否检查了用户的 IAM 权限?还有你用什么上传文件
multer? -
@someonewithakeyboard 我只是使用 Java 的 Spring Boot 应用程序来提供静态文件,代码和所有内容都直接来自链接的教程 - 只是在另一个文件中添加了脚本的 html 页面。
-
尝试在您的
Action列表中添加s3:ListBucketMultipartUploads和s3:PutObjectAcl。
标签: javascript amazon-web-services amazon-s3