我正在尝试设置一个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,那么这意味着匿名用户可以下载文件 . 我试图添加一个新的Sid拒绝GetObject但拒绝总是覆盖允许 .
我感谢任何建议 .
谢谢 .
1 回答
我认为你可以用ACL做到这一点 . 将存储桶的权限更改为要求ACL 'authenticated-read' . 您的用户必须在他们的上传中设置该ACL标志,否则他们将获得被访问被拒绝的错误,但如果您可以让他们设置该标志,我认为这可能对您有用 . Editing Bucket Permissions