2013-06-04 126 views
0

我的問題不僅僅是一個代碼問題,我一直在嘗試閱讀關於此的一段時間,我還沒有找到答案。我的問題是,如果amazon S3在上傳數據時自動加密數據,或者我們必須在加載到S3之前加密數據。如果我們在上傳之前必須對數據進行加密,任何人都可以推薦使用哪些寶石以及如何使用。回形針S3加密導軌

回答

-3

所有S3內容默認都是加密的。作爲額外的安全測量,您可以自行加密。您可以使用例如:https://github.com/tcnijmeijer/aws-s3-cse進行客戶端加密。

這裏是亞馬遜S3文件提客戶端加密:http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html

+0

感謝您的輸入。爲了澄清Amazon S3的服務器端加密,只要文件上傳完成即可完成。我只重複這個問題,因爲這是我在Rails和S3中構建的第一個項目。我也在看這個:http://docs.aws.amazon.com/AmazonS3/latest/dev/SSEUsingRubySDK.html。似乎是說我必須指定Sever端加密,或者我錯誤地閱讀它。 –

+0

默認情況下,所有S3內容都不是**加密的。不知道這是否是真實的,但用Paperclip上傳至帶有默認選項的S3的對象肯定不存儲加密,這就是問題所在。 – eprothro

+0

默認情況下S3文件未加密。但是,通過添加x-amz-server-side-encryption頭來請求加密文件來啓用加密非常簡單。 – Cameron

1

這不是我的經驗,上傳到S3的所有文件默認加密。

當然,這不是Paperclip 3.3.1的情況,因爲S3 Web控制檯顯示的是由該版本上傳的帶默認附件選項的文件的「服務器端加密:無」。

但是,回形針確實支持通過s3_server_side_encryption選項將x-amz-server-side-encryption標頭添加到上載請求。

has_attached_file :file, s3_permissions: :private, 
         s3_server_side_encryption: :aes256 

應該會導致所需的行爲,但它不會。以下工作通過手動設置此標題,直到pull request 1398被合併,使上述工作按預期進行。

has_attached_file :file, s3_permissions: :private, 
         s3_headers: { "x-amz-server-side-encryption" => "AES256" } 

我確認第二次配置導致在Web控制檯中顯示'服務器端加密:AES-256'。也使用pull請求中引用的fork和第一個代碼片段進行了確認。

我爲此添加了一個wiki頁面,因爲缺少文檔。

Paperclip Wiki Document on Encryption AWS SSE Doc Originating Paperclip Issue