【发布时间】:2020-06-06 10:40:39
【问题描述】:
我创建了一个策略,允许访问我账户中的单个 S3 存储桶。然后,我创建了一个只有此策略的组和一个属于该组的用户。
用户可以按预期查看、删除和上传文件到存储桶。但是,用户似乎无法授予对上传文件的公共读取权限。
选择授予对此对象的公共读取权限选项时,上传失败。
存储桶正在托管一个静态网站,我想允许前端开发人员上传文件并将其公开。
用户角色的政策如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": "arn:aws:s3:::my-bucket"
},
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
当 IAM 用户尝试授予对上传文件的公共访问权限时,会发生以下情况:
代理错误似乎无关紧要,但实际上上传卡住了,没有任何反应。如果他们没有选择授予公共访问权限选项,则上传会立即完成(尽管也会出现代理错误)。
【问题讨论】:
-
检查存储桶的Public Access Settings。您可能启用了一个或多个选项。
-
当您说“用户似乎无法授予对上传文件的公共读取权限。”,他们在做什么以及会发生什么?有错误信息吗?请提供更多信息。
-
@JohnRotenstein 感谢您的评论。我编辑了帖子以提供更多信息。让我知道这是否有助于澄清我的情况。
-
@j-petty 我关闭了所有这些选项(因此基本上公共访问不会被阻止)。我还有一个存储桶策略,允许每个人使用
s3:GetObject,用于该特定存储桶中的项目。 -
我尝试重现您的情况(见下文)表明上述策略不足以使用 Amazon S3 管理控制台导航到存储桶。您的 IAM 用户如何访问控制台中的存储桶? (他们是否使用了将他们直接带到存储桶的 URL?)
标签: amazon-web-services amazon-s3 amazon-iam public policy