鑰匙圈 - AWS 資料庫加密 SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

鑰匙圈

我們的客戶端加密庫被重命名為數 AWS 據庫加密SDK。本開發人員指南仍提供 DynamoDB 加密用戶端的相關資訊。

資 AWS 料庫加密SDK使用金鑰環來執行信封加密。Keyring 會產生、加密及解密資料金鑰。金鑰圈會決定保護每個加密記錄的唯一資料金鑰來源,以及加密該資料金鑰的包裝金鑰。您可以在加密時指定 keyring,並在解密時指定相同或不同的 keyring。

您可以個別使用每個 keyring 或是結合 keyring 成為多重 keyring。雖然多數 keyring 可以產生、加密及解密資料金鑰,您可能想要建立僅執行一個特定操作的 keyring,例如只會產生資料金鑰的 keyring,並將該 keyring 與其他 keyring 結合使用。

我們建議您使用可保護包裝金鑰的金鑰圈,並在安全邊界內執行密碼編譯作業,例如使用永不離開 AWS Key Management Service()AWS KMS未加密 AWS KMS keys 的金 AWS KMS 鑰圈。您也可以撰寫使用儲存在硬體安全性模組 (HSMs) 中或受其他主要金鑰服務保護的包裝金鑰環。

您的金鑰圈會決定保護資料金鑰的包裝金鑰,以及最終保護資料的金鑰。使用對您的任務實用的最安全的包裝密鑰。盡可能使用包裝受硬體安全性模組 (HSM) 或金鑰管理基礎結構保護的金鑰,例如 AWS Key Management Service(AWS KMS) 中的金KMS鑰或中的加密金鑰AWS CloudHSM

資 AWS 料庫加密SDK提供數個金鑰環和金鑰圈組態,您可以建立自己的自訂金鑰環。您也可以建立包含一或多個相同或不同類型之鑰匙圈的多重金鑰圈。

keyring 如何運作

我們的客戶端加密庫被重命名為數 AWS 據庫加密SDK。本開發人員指南仍提供 DynamoDB 加密用戶端的相關資訊。

當您加密並簽署資料庫中的欄位時,資料 AWS 庫加密SDK會詢問金鑰圈是否有加密材料。金鑰圈會傳回純文字資料金鑰、金鑰圈中每個包裝金鑰所加密的資料金鑰副本,以及與資料金鑰相關聯的金鑰。MAC資料 AWS 庫加密SDK使用純文字金鑰來加密資料,然後儘快從記憶體中移除純文字資料金鑰。然後,「資料 AWS 庫加密」會SDK新增材料描述,其中包括加密的資料金鑰和其他資訊,例如加密和簽署指示。資料 AWS 庫加密SDK使用MAC金鑰來計算資料描述和標記為或的所有欄位的規範化的雜湊型訊息驗證碼 (HMACs)。ENCRYPT_AND_SIGN SIGN_ONLY

解密資料時,您可以使用用來加密資料的相同金鑰環,或使用不同的金鑰環。若要解密資料,解密金鑰圈必須至少有權存取加密金鑰環中的一個包裝金鑰。

「資料 AWS 庫加密」會將加密的資料金鑰從材料說明SDK傳遞至金鑰環,並要求金鑰環解密其中任何一個金鑰。keyring 使用其包裝金鑰來解密其中一個加密的資料金鑰,並傳回純文字資料金鑰。「資料 AWS 庫加密」SDK 會使用純文字資料金鑰來解密資料。如果 keyring 中沒有任何包裝金鑰可以解密任何加密的資料金鑰,則解密操作會失敗。

您可以使用單一 keyring,也可以將相同類型或不同類型的 keyring 結合成多重 keyring。當您加密資料時,多重金鑰圈會傳回由包含多重金鑰環的所有金鑰環中的所有包裝金鑰加密的資料金鑰複本,以及與資料金鑰相關聯的金鑰。MAC您可以使用包含多重金鑰圈中任何一個包裝金鑰的金鑰圈來解密資料。