4

我正在尝试设置 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 但拒绝总是覆盖允许。

我很感激任何建议。

谢谢。

4

1 回答 1

1

我认为您可以使用 ACL 来做到这一点。将存储桶的权限更改为要求 ACL 'authenticated-read'。您的用户必须在上传时设置该 ACL 标志,否则他们将收到拒绝访问错误,但如果您可以让他们设置该标志,我认为这可能对您有用。 编辑存储桶权限

于 2015-11-30T22:05:49.773 回答