2011-11-29 243 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操作? –