AWS 數據加密知識點

1、S3 加密

服務端加密

服務器端加密是由接收數據的應用程序或服務在數據目的地對數據進行加密。Amazon S3 在將您的數據寫入數據中心內的磁盤時會在對象級別上加密這些數據,並在您訪問這些數據時爲您解密這些數據。只要您驗證了您的請求而且擁有訪問權限,您訪問加密和未加密對象的方式就沒有區別。例如,若是您使用預簽名的 URL 來共享您的對象,那麼對於加密和解密對象,該 URL 的工做方式是相同的。此外,在您列出存儲桶中的對象時,列表 API 會返回全部對象的列表(不管對象是否加密)。服務器

注意
您不能對同一個對象應用不一樣類型的服務器端加密。ide

您有三個互斥選項,具體取決於您選擇如何管理加密密鑰:加密

具備 Amazon S3 託管密鑰的服務器端加密 (SSE-S3)code

當您使用具備 Amazon S3 託管密鑰的服務器端加密 (SSE-S3) 時,每一個對象均使用惟一密鑰加密。做爲額外的保護,它將使用按期輪換的主密鑰對密鑰自己進行加密。Amazon S3 服務器端加密使用可用的最強數據塊密碼之一(即 256 位高級加密標準 (AES-256))來加密您的數據。有關更多信息,請參閱使用具備 Amazon S3 託管加密密鑰的服務器端加密 (SSE-S3) 保護數據。對象

  • 每一個對象使用惟一數據祕鑰加密

在 AWS Key Management Service 中存儲客戶主密鑰 (CMK) 的服務器端加密 (SSE-KMS)it

在 AWS Key Management Service 中存儲客戶主密鑰 (CMK) 的服務器端加密 (SSE-KMS) 與 SSE-S3 相似,使用該服務具備一些額外的好處,但也要額外收取費用。使用 CMK 須要單獨的權限,該密鑰可進一步防止未經受權地訪問 Amazon S3 中的對象。SSE-KMS 還向您提供審覈跟蹤,顯示您的 CMK 的使用時間和使用者。此外,您還能夠建立和管理客戶託管 CMK,或者使用您、服務和區域獨有的 AWS 託管 CMK。有關更多信息,請參閱使用具備 AWS Key Management Service 中存儲的 CMK 的服務器端加密 (SSE-KMS) 保護數據。class

  • 每一個對象使用惟一數據祕鑰加密

具備客戶提供密鑰的服務器端加密 (SSE-C)服務器端

使用具備客戶提供密鑰的服務器端加密 (SSE-C) 時,您管理加密密鑰,而 Amazon S3 管理加密(在它對磁盤進行寫入時)和解密(在您訪問您的對象時)。有關更多信息,請參閱經過使用客戶提供的加密密鑰的服務器端加密 (SSE-C) 保護數據。權限

  • 全部對象使用相同的祕鑰加密(客戶端提供的)

客戶端加密

客戶端加密 是在將數據發送到 Amazon S3 以前加密數據的行爲。要啓用客戶端加密,您能夠選擇如下方法:meta

使用 AWS KMS 中存儲的 CMK

在上傳對象時 — 經過使用客戶主密鑰 (CMK) ID,客戶端先向 AWS KMS 發送請求以獲取可用於加密對象數據的 CMK。AWS KMS 返回兩個隨機生成的數據密鑰版本:

  • 客戶端用於加密對象數據的數據密鑰的純文本版本
  • 客戶端將做爲對象元數據上傳到 Amazon S3 的同一數據密鑰的密碼 blob

下載對象時 — 客戶端首先從 Amazon S3 下載加密的對象以及做爲對象元數據存儲的數據密鑰的密碼 blob 版本。而後,客戶端將密碼 blob 發送到 AWS KMS 以獲取密鑰的純文本版本,以便讓客戶端解密對象數據。

客戶端將爲其上傳的每一個對象獲取一個惟一的數據密鑰。

使用在應用程序中存儲的主密鑰

  • 上傳對象時 — 將客戶端主密鑰提供給 Amazon S3 加密客戶端。該客戶端僅使用該主密鑰來加密客戶端隨機生成的數據加密密鑰。該過程的工做方式以下所示:
    1. Amazon S3 加密客戶端在本地生成一個一次性對稱密鑰 (也稱爲「數據加密密鑰」或「數據密鑰」)。它使用數據密鑰加密單個 Amazon S3 對象的數據。該客戶端將爲每一個對象生成一個單獨的數據密鑰。
    2. 該客戶端使用您提供的主密鑰來加密數據加密密鑰。客戶端會將加密的數據密鑰及其材料說明做爲對象元數據的一部分上傳。該客戶端利用材料描述來肯定要用於解密的客戶端主密鑰。
    3. 該客戶端將加密數據上傳到 Amazon S3 並在 Amazon S3 中將加密數據密鑰保存爲對象元數據 (x-amz-meta-x-amz-key)。
  • 下載對象時 — 該客戶端從 Amazon S3 下載加密的對象。經過使用對象元數據中的材料說明,該客戶端將肯定要用於解密數據密鑰的主密鑰。該客戶端將使用該主密鑰解密數據密鑰,而後使用該數據密鑰對對象進行解密。

您提供的客戶端主密鑰能夠是對稱密鑰,也能夠是公有/私有密鑰對。

相關文章
相關標籤/搜索