2013-10-01 25 views
0

基本上我在S3中將圖像存儲在桶中。但是我很難在「桶策略」中添加什麼內容。相當多,我想知道我有以下我的容器中的一個是S3新手,不知道要在我的桶策略中放入什麼

A)正確 B)安全

目標:讀/顯示來自我的[應用服務器]圖像

{ 
    "Version": "2008-10-17", 
    "Id": "S3PolicyId1", 
    "Statement": [ 
     { 
      "Sid": "IPDeny", 
      "Effect": "Allow", 
      "Principal": { 
       "Federated": "accounts.google.com" 
      }, 
      "Action": "s3:*", 
      "Resource": "arn:aws:s3:::submissionthumbs/*", 
      "Condition": { 
       "NotIpAddress": { 
        "aws:SourceIp": "[APPIP]" 
       } 
      } 
     } 
    ] 
} 

我希望能夠從存儲桶中讀取,寫入和刪除資產。

回答

0

如果下架這對你有2個usecases:

  1. 顯示的圖像,用戶從S3
  2. 上傳,刪除,並從您的應用程序改變的圖像。

1:爲此,您需要使您的存儲桶或其部分可讀取。
例如,這像水桶的政策將使鬥公衆可讀

{ 
    "Version": "2008-10-17", 
    "Statement": [{ 
     "Sid": "AllowPublicRead", 
     "Effect": "Allow", 
     "Principal": { "AWS": "*" }, 
     "Action": ["s3:GetObject"], 
     "Resource": ["arn:aws:s3:::submissionthumbs/*" ] 
    }] 
} 

然而,你可能想看看亞馬遜的CloudFront的是亞馬遜的CDN提供您的圖像內容。在CloudFront中,您可以將s3存儲桶添加爲原點。 2:爲了更新上傳等,您應該從「IAM」創建一個新的「用戶」,併爲他提供對存儲區的讀寫訪問權限。儘量保持權限盡可能限制。 例如

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Action": [ 
     "s3:GetObject", 
     "s3:PutObject" 
     ], 
     "Sid": "AllowReadWriteApp", 
     "Resource": ["arn:aws:s3:::submissionthumbs/*" ] 
     "Effect": "Allow" 
    } 
    ] 
} 

然後使用自己喜歡的AWS SDK爲你的編程語言中的CRUD操作。

希望可以幫到

相關問題