本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
包裝資料提供者
注意
我們的客戶端加密庫被重命名為AWS數據庫加密 SDK。下列主題提供有關版本 1 的資訊。 X-2. Java 和版本 1 的動態驗證加密用戶端的 x。 X — 3. 適用於 Python 的 x 個加密用戶端。如需詳細資訊,請參閱適用於 DynamoDB 版本支援的資AWS料庫加密 SDK。
包裝材料提供者 (包裝的 CMP) 可讓您透過 DynamoDB 加密用戶端使用來自任何來源的包裝和簽署金鑰。包裝的 CMP 不依賴於任何AWS服務。不過,您必須在用戶端以外產生及管理包裝和簽署金鑰,包括提供正確的金鑰來驗證和解密項目。
包裝 CMP 會為每個項目產生唯一的項目加密金鑰。其將使用您所提供的包裝金鑰來包裝項目加密金鑰,並將包裝的項目加密金鑰儲存至項目的資料描述屬性。因為您提供包裝和簽署金鑰,所以由您決定包裝和簽署金鑰的產生方式,以及要讓每個項目各有唯一的金鑰還是重複使用。
對於可以管理密碼編譯資料的應用程式而言,包裝 CMP 是安全的實作與理想的選擇。
包裝的 CMP 是 DynamoDB 加密用戶端支援的數個加密材料提供者 (CMP) 之一。如需其他 CMP 的相關資訊,請參閱密碼材料供應商。
如需範例程式碼,請參閱:
使用方式
若要建立包裝 CMP,請指定包裝金鑰 (加密時需要)、取消包裝金鑰 (解密時需要) 以及簽署金鑰。您必須在加密和解密項目時提供金鑰。
包裝、取消包裝和簽署金鑰可以是對稱金鑰或非對稱金鑰對。
運作方式
包裝 CMP 會為每個項目產生新的項目加密金鑰。如下圖所示,它會使用您所提供的包裝、取消包裝和簽署金鑰。
取得加密資料
本節將詳細說明包裝資料提供者 (包裝 CMP) 在接收到加密資料請求時的輸入、輸出和處理情形。
輸入 (從應用程式)
輸入 (從項目加密程式)
輸出 (到項目加密程式):
處理
當您加密項目時,您會傳入包裝金鑰和簽署金鑰。取消包裝金鑰為選用並予以忽略。
-
包裝 CMP 會為資料表項目產生唯一的對稱項目加密金鑰。
-
它會使用您指定的包裝金鑰來包裝項目加密金鑰。接著,它會盡快從記憶體中移除此金鑰。
-
其將傳回純文字項目加密金鑰、您所提供的簽署金鑰,以及包含包裝項目加密金鑰和加密與包裝演算法的實際資料描述。
-
項目加密程式會使用純文字加密金鑰來加密項目。它會使用您所提供的簽署金鑰來簽署金鑰。接著,它會盡快從記憶體中移除這些純文字金鑰。它會將實際資料描述中的欄位 (包括包裝加密金鑰 (
amzn-ddb-env-key
)) 複製到項目的資料描述屬性。
取得解密資料
本節將詳細說明包裝資料提供者 (包裝 CMP) 在接收到解密資料請求時的輸入、輸出和處理情形。
輸入 (從應用程式)
輸入 (從項目加密程式)
-
DynamoDB 加密內容的副本,其中包含材料描述屬性的內容。
輸出 (到項目加密程式)
-
純文字項目加密金鑰
-
簽署金鑰 (不變)
處理
當您解密項目時,您會傳入取消包裝金鑰和簽署金鑰。包裝金鑰為選用並予以忽略。
-
包裝 CMP 會從項目的資料描述屬性取得包裝項目加密金鑰。
-
它會使用取消包裝金鑰和演算法來取消包裝項目加密金鑰。
-
它會將純文字項目加密金鑰、簽署金鑰以及加密和簽署演算法傳回給項目加密程式。
-
項目加密程式會使用簽署金鑰來驗證項目。如果成功,則會使用項目加密金鑰來將項目解密。接著,它會盡快從記憶體中移除這些純文字金鑰。