2015-11-10 88 views
0

我從我的應用程序中存儲aws s3存儲桶中的一些圖像/對象。首先,我從nodejs service api獲取簽名url,並使用jquery ajax將圖像或文件上傳到帶標籤的url。我可以使用屬性中提供的鏈接打開圖像或對象(https://s3.amazonaws.com/bucketname/objectname)。在aws s3存儲桶中加密對象

我想爲每個上傳的對象提供安全性。即使有機會,如果任何匿名用戶獲得鏈接(https://s3.amazonaws.com/bucketname/objectname),他應該無法打開它。他們(對象)應該被訪問並且只打開一些情況,比如請求有一些標題鍵值等等。我通過在請求中指定標題鍵值來嘗試服務器端加密,如下所示。

 var file = document.getElementById('fileupload').files[0]; 
     $.ajax({ 
      url: signedurl, 
      type: "PUT", 
      data: file, 
      header:{'x-amz-server-side-encryption':'AES256'},    
      contentType: file.type, 
      processData: false, 
      success: function (result) { 
       var res = result; 

      }, 
      error: function (error) { 
       alert(error); 
      } 

不會斷絕側面加密保留s3存儲桶上的加密對象嗎?在保存s3存儲之前,它僅在傳輸和解密時進行加密嗎?

如果它在s3存儲上存儲加密對象,那麼如何使用屬性中顯示的鏈接打開它。

回答

1

服務器端加密(SSE)在Amazon S3中加密靜止的物體(存儲在磁盤上),但他們在檢索時解密的對象。因此,它是一種透明的加密形式。

如果您希望將對象保留在Amazon S3中爲私人用途,但要將其提供給特定的授權用戶,我建議您使用預先登記的網址

這可以通過讓您的應用程序生成一個URL來提供對Amazon S3中特定對象的有限時間訪問。否則這些對象將保持私密狀態,因此無法訪問。

查看文檔:Share an Object with Others

+0

我製造的物體的私人取消選中開/下載和查看權限對象的屬性,但仍我可以用鏈接打開/視圖對象(https://s3.amazonaws.com/bucketname /對象名)。我想我必須在客戶端加密文件並將其存儲在s3上。因此,儘管有對象鏈接,但任何用戶甚至s3的擁有者都無法查看/打開對象。他們應該從s3中檢索對象並用私鑰解密。 – Praveen

+0

在Amazon S3中訪問對象的能力完全獨立於加密。讓我們關注訪問。您的對象有可能被您的瀏覽器緩存,因此請嘗試在其他瀏覽器或另一臺計算機上打開它。它應該返回「訪問被拒絕」。如果它仍然可以訪問,那麼你可能會有一個有效的桶策略來授予訪問權限。第一步是讓對象再次保密,然後使用授予訪問權的方法。另外請確保您通過單擊** Properties **中的鏈接打開對象,而不是使用** Open **命令。 –