本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
包裝資料提供者
注意
我們的用戶端加密程式庫已重新命名為 AWS Database Encryption SDK。下列主題提供適用於 Java 的 DynamoDB Encryption Client 版本 1.x-2.x 和適用於 Python 的 DynamoDB Encryption Client 版本 1.x-3.x 的相關資訊。如需詳細資訊,請參閱AWS 資料庫加密 SDK for DynamoDB 版本支援。
包裝材料提供者 (包裝 CMP) 可讓您使用來自任何來源的包裝和簽署金鑰搭配 DynamoDB 加密用戶端。包裝 CMP 不依賴於任何 AWS 服務。不過,您必須在用戶端以外產生及管理包裝和簽署金鑰,包括提供正確的金鑰來驗證和解密項目。
包裝 CMP 會為每個項目產生唯一的項目加密金鑰。其將使用您所提供的包裝金鑰來包裝項目加密金鑰,並將包裝的項目加密金鑰儲存至項目的資料描述屬性。因為您提供包裝和簽署金鑰,所以由您決定包裝和簽署金鑰的產生方式,以及要讓每個項目各有唯一的金鑰還是重複使用。
對於可以管理密碼編譯資料的應用程式而言,包裝 CMP 是安全的實作與理想的選擇。
包裝 CMP 是 DynamoDB Encryption Client 支援的幾個密碼編譯材料提供者 (CMPs) 之一。如需其他 CMP 的相關資訊,請參閱密碼編譯資料提供者。
如需範例程式碼,請參閱:
使用方式
若要建立包裝 CMP,請指定包裝金鑰 (加密時需要)、取消包裝金鑰 (解密時需要) 以及簽署金鑰。您必須在加密和解密項目時提供金鑰。
包裝、取消包裝和簽署金鑰可以是對稱金鑰或非對稱金鑰對。
運作方式
包裝 CMP 會為每個項目產生新的項目加密金鑰。如下圖所示,它會使用您所提供的包裝、取消包裝和簽署金鑰。

取得加密資料
本節將詳細說明包裝資料提供者 (包裝 CMP) 在接收到加密資料請求時的輸入、輸出和處理情形。
輸入 (從應用程式)
輸入 (從項目加密程式)
輸出 (到項目加密程式):
處理
當您加密項目時,您會傳入包裝金鑰和簽署金鑰。取消包裝金鑰為選用並予以忽略。
-
包裝 CMP 會為資料表項目產生唯一的對稱項目加密金鑰。
-
它會使用您指定的包裝金鑰來包裝項目加密金鑰。接著,它會盡快從記憶體中移除此金鑰。
-
其將傳回純文字項目加密金鑰、您所提供的簽署金鑰,以及包含包裝項目加密金鑰和加密與包裝演算法的實際資料描述。
-
項目加密程式會使用純文字加密金鑰來加密項目。它會使用您所提供的簽署金鑰來簽署金鑰。接著,它會盡快從記憶體中移除這些純文字金鑰。它會將實際資料描述中的欄位 (包括包裝加密金鑰 (
amzn-ddb-env-key
)) 複製到項目的資料描述屬性。
取得解密資料
本節將詳細說明包裝資料提供者 (包裝 CMP) 在接收到解密資料請求時的輸入、輸出和處理情形。
輸入 (從應用程式)
輸入 (從項目加密程式)
-
DynamoDB 加密內容的複本,其中包含材料描述屬性的內容。
輸出 (到項目加密程式)
-
純文字項目加密金鑰
-
簽署金鑰 (不變)
處理
當您解密項目時,您會傳入取消包裝金鑰和簽署金鑰。包裝金鑰為選用並予以忽略。
-
包裝 CMP 會從項目的資料描述屬性取得包裝項目加密金鑰。
-
它會使用取消包裝金鑰和演算法來取消包裝項目加密金鑰。
-
它會將純文字項目加密金鑰、簽署金鑰以及加密和簽署演算法傳回給項目加密程式。
-
項目加密程式會使用簽署金鑰來驗證項目。如果成功,則會使用項目加密金鑰來將項目解密。接著,它會盡快從記憶體中移除這些純文字金鑰。