

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

# Keyring
<a name="keyrings"></a>


****  

|  | 
| --- |
| 我們的用戶端加密程式庫已重新命名為 AWS 資料庫加密 SDK。此開發人員指南仍提供有關 [DynamoDB 加密用戶端](legacy-dynamodb-encryption-client.md)的資訊。 | 

 AWS Database Encryption SDK 使用 *keyring *來執行[信封加密](concepts.md#envelope-encryption)。Keyring 會產生、加密及解密資料金鑰。Keyring 會決定保護每個加密記錄的唯一資料金鑰的來源，以及加密該資料金鑰的[包裝金鑰](concepts.md#wrapping-key)。您可以在加密時指定 keyring，並在解密時指定相同或不同的 keyring。

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

我們建議您使用 keyring 來保護您的包裝金鑰，並在安全界限內執行密碼編譯操作，例如 AWS KMS keyring，其使用 AWS KMS keys 永遠不會讓 [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/)(AWS KMS) 處於未加密狀態。您也可以編寫 keyring，該 keyring 使用存放在硬體安全模組 (HSMs) 中的包裝金鑰，或受其他主金鑰服務保護。

您的 keyring 會決定保護資料金鑰的包裝金鑰，最終決定您的資料。使用對您的任務而言最安全的包裝金鑰。盡可能使用受硬體安全模組 (HSM) 或金鑰管理基礎設施保護的包裝金鑰，例如 [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/)(AWS KMS) 中的 KMS 金鑰或 中的加密金鑰[AWS CloudHSM](https://docs.aws.amazon.com/cloudhsm/latest/userguide/)。

 AWS Database Encryption SDK 提供數個 keyring 和 keyring 組態，您可以建立自己的自訂 keyring。您也可以建立[包含相同或不同類型之一或多個 keyring 的多 keyring](use-multi-keyring.md)。

**Topics**
+ [keyring 如何運作](#using-keyrings)
+ [AWS KMS keyring](use-kms-keyring.md)
+ [AWS KMS 階層式 keyring](use-hierarchical-keyring.md)
+ [AWS KMS ECDH keyring](use-kms-ecdh-keyring.md)
+ [原始 AES keyring](use-raw-aes-keyring.md)
+ [原始 RSA keyring](use-raw-rsa-keyring.md)
+ [原始 ECDH keyring](use-raw-ecdh-keyring.md)
+ [多重 keyring](use-multi-keyring.md)

## keyring 如何運作
<a name="using-keyrings"></a>


****  

|  | 
| --- |
| 我們的用戶端加密程式庫已重新命名為 AWS 資料庫加密 SDK。此開發人員指南仍提供有關 [DynamoDB 加密用戶端](legacy-dynamodb-encryption-client.md)的資訊。 | 

當您在資料庫中加密和簽署欄位時， AWS 資料庫加密 SDK 會向 keyring 要求加密資料。keyring 會傳回純文字資料金鑰、由 keyring 中每個包裝金鑰加密的資料金鑰複本，以及與資料金鑰相關聯的 MAC 金鑰。 AWS Database Encryption SDK 使用純文字金鑰來加密資料，然後盡快從記憶體中移除純文字資料金鑰。然後， AWS 資料庫加密 SDK 新增[了資料描述](concepts.md#material-description)，其中包含加密的資料金鑰和其他資訊，例如加密和簽署指示。 AWS 資料庫加密 SDK 使用 MAC 金鑰來計算雜湊型訊息驗證碼 (HMACs)，而非材料描述的標準化，以及標示為 `ENCRYPT_AND_SIGN`或 的所有欄位`SIGN_ONLY`。

當您解密資料時，您可以使用與用來加密資料相同的 keyring，或不同的 keyring。若要解密資料，解密 keyring 必須能夠存取加密 keyring 中的至少一個包裝金鑰。

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

您可以使用單一 keyring，也可以將相同類型或不同類型的 keyring 結合成[多重 keyring](use-multi-keyring.md)。當您加密資料時，多重 keyring 會傳回由構成多重 keyring 的所有 keyring 中所有包裝金鑰加密的資料金鑰複本，以及與資料金鑰相關聯的 MAC 金鑰。您可以使用 keyring 搭配多 keyring 中的任何一個包裝金鑰來解密資料。