针对经过身份验证的用户的AWS S3策略

时间:2013-09-05 11:35:44

标签: amazon-web-services amazon-s3 acl bucket

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

我感谢任何建议。

感谢。

1 个答案:

答案 0 :(得分:1)

我认为你可以用ACL做到这一点。将存储桶的权限更改为要求ACL“authenticated-read”。您的用户必须在他们的上传中设置该ACL标志,否则他们将获得被访问被拒绝的错误,但如果您可以让他们设置该标志,我认为这可能对您有用。 Editing Bucket Permissions