用于匿名将照片上传到存储桶的Amazon S3存储桶策略

时间:2011-11-29 12:10:52

标签: amazon-s3

我打算使用Amazon S3让用户从iPhone上传照片,然后让他们公开观看。

我在了解如何在存储分区策略中设置这些安全性约束时遇到一些麻烦:

  • 每个人都可以阅读每个文件。
  • 每个人都可以上传最大256K的文件。
  • 没有人可以删除任何文件。
  • 没有人可以修改任何文件。

2 个答案:

答案 0 :(得分:8)

好的,我最终还是解决了这个问题。唯一的事情是您无法在添加文件和更新文件时设置不同的权限。它们都被s3:PutObject所覆盖。此外,似乎无法限制文件大小。

{
    "Version": "2008-10-17",
    "Id": "policy",
    "Statement": [
        {
            "Sid": "allow-public-read",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/*"
        },
    {
            "Sid": "allow-public-put",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::bucket/*"
        }
  ]
}

答案 1 :(得分:0)

也许下面的内容可行,但我不确定您是否可以限制上传大小。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal":"*",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:GetObjectAcl",
        "s3:PutObjectAcl"
      ],
      "Resource": "arn:aws:s3:::mybucket/*",
      "Condition": {}
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketAcl"
      ],
      "Resource": "arn:aws:s3:::mybucket",
      "Condition": {}
    }
  ]
}