2013-06-23 58 views
4

我正在使用拒絕任何非SSL通信和UnEncryptedObjectUploads的桶策略。Amazon S3服務器端加密桶策略問題

{ 
    "Id": "Policy1361300844915", 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "DenyUnSecureCommunications", 
      "Action": "s3:*", 
      "Effect": "Deny", 
      "Resource": "arn:aws:s3:::my-bucket", 
      "Condition": { 
       "Bool": { 
        "aws:SecureTransport": false 
       } 
      }, 
      "Principal": { 
       "AWS": "*" 
      } 
     }, 
     { 
      "Sid": "DenyUnEncryptedObjectUploads", 
      "Action": "s3:PutObject", 
      "Effect": "Deny", 
      "Resource": "arn:aws:s3:::my-bucket/*", 
      "Condition": { 
       "StringNotEquals": { 
        "s3:x-amz-server-side-encryption": "AES256" 
       } 
      }, 
      "Principal": { 
       "AWS": "*" 
      } 
     } 
    ] 
} 

此策略適用於支持SSL和SSE設置但僅適用於上傳對象的應用程序。

我碰到了這些問題:

  1. 莓Explorer和S3瀏覽文件夾時失敗,文件重命名與政策鬥桶。在桶策略中僅應用SSL要求後,這些瀏覽器成功完成文件/文件夾重命名。

只有在選項 - 亞馬遜S3複製/移動通過本地計算機(速度較慢且成本高昂)後,CloudBerry Explorer才能夠使用完整SSL/SSE存儲桶策略重命名對象。

由於限制策略,所有在Amazon S3中複製/移動失敗。

這意味着我們無法控制不是源自操縱本地對象的應用程序的複製/移動過程。至少上面提到的CloudBerry Options證明了這一點。

但我可能是錯的,這就是爲什麼我發佈這個問題。

  1. 在我的情況下,在啓用了存儲桶策略的情況下,S3管理控制檯變得毫無用處。用戶無法創建文件夾,刪除它們,只能上傳文件。

我的存儲桶策略有問題嗎?我不知道那些用於操作對象的Amazon S3機制。

Amazon S3是否以不同方式處理外部請求(API/http標頭)和內部請求?

是否可以將此策略僅應用於上傳,而不適用於內部Amazon S3 GET/PUT等。我已經嘗試使用存儲區URL的http referer無濟於事。

具有SSL/SSE要求的存儲桶策略對我的實施是強制性的。

任何想法,將不勝感激。

預先感謝您。

回答

1

恕我直言:沒有辦法自動告訴Amazon S3爲每個PUT請求啓用SSE。 所以,我將調查如下:

  • 編寫一個腳本,列出你的水桶

  • 每個對象,獲取元數據

  • 如果SSE未啓用,使用PUT COPY API(http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)添加SSE 「(...)複製對象時,可以保留大部分元數據(默認)或指定新的元數據(...)」

  • 如果PUT操作成功,使用DELETE對象API刪除原來的對象

然後每小時或每天的基礎上運行該腳本,根據您的業務需求。 你可以使用Python中的S3 API(http://boto.readthedocs.org/en/latest/ref/s3.html),使之更容易編寫腳本。

如果這個「改變後寫」的解決方案不適用於你的商業智慧,你可以在不同的層次上工作

  • 在您的API客戶端和S3 API(如您網站上的反向代理)之間使用代理,並將其配置爲爲每個PUT/POST請求添加SSE HTTP標頭。 開發者必須通過代理服務器,而不是被授權發出對S3 API端點

  • 寫一個包裝庫自動添加上證所元數據,並迫使開發者使用你的庫在SDK的頂部的請求。

今天晚些時候是組織中的紀律問題,因爲在技術層面上執行它們並不容易。

Seb

+2

此回覆無法解決問題。 –