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

6

我计划使用Amazon S3让用户从iPhone上传照片,然后允许公开查看。

我在理解如何在Bucket Policy中设置这些安全约束方面遇到了一些问题:

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

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/*"
        }
  ]
}

那么没有设置最大尺寸限制的选项吗? - Rizon

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": {}
    }
  ]
}

为什么要指定 *Acl 操作? - Jon Tirsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接