我正在尝试设置S3策略存储桶但它根本不起作用。我需要允许上传文件给匿名用户,但只有经过身份验证的用户才能下载。我试过2想:
{
"Id": "Policy1378380575437",
"Statement": [
{
"Sid": "Stmt1378380436712",
"Action": [
"s3:PutObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my_bucket/*",
"Principal": {
"AWS": [
"*"
]
}
},
{
"Sid": "Stmt1378380568645",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my_bucket/*",
"Principal": {
"AWS": [
"arn:aws:iam::1111111111:root"
]
}
}
]
}
但问题是默认情况下允许GetObject,那么这意味着匿名用户可以下载文件。我试图为GetObject添加一个新的Sid,但是拒绝总是覆盖允许。
我感谢任何建议。
感谢。
答案 0 :(得分:1)
我认为你可以用ACL做到这一点。将存储桶的权限更改为要求ACL“authenticated-read”。您的用户必须在他们的上传中设置该ACL标志,否则他们将获得被访问被拒绝的错误,但如果您可以让他们设置该标志,我认为这可能对您有用。 Editing Bucket Permissions