2011-11-29 292 views
6

我打算使用Amazon S3让用户从iPhone上传照片,然后让它们公开显示。Amazon S3存储桶策略用于匿名上传照片到存储桶

我有一些麻烦了解如何设置在桶政策这些安全约束:

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

回答

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

所以没有选择设置最大尺寸限制? – 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": {} 
    } 
    ] 
} 
+0

为什么指定* Acl操作? –