

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

# 產生資料金鑰
<a name="data-keys"></a>

*資料金鑰*是對稱金鑰，可用於加密資料，包括大量資料和其他資料加密金鑰。與無法下載的對稱 KMS 金鑰不同，資料金鑰會傳回給您，以便在 外部使用 AWS KMS。

當 AWS KMS 產生資料金鑰時，它會傳回純文字資料金鑰以供立即使用 （選用），以及您可以安全地與資料一起存放的資料金鑰加密副本。當您準備好解密資料時，請先要求 AWS KMS 解密加密的資料金鑰。

AWS KMS 會產生、加密和解密資料金鑰。不過， AWS KMS 不會存放、管理或追蹤您的資料金鑰，也不會使用資料金鑰執行密碼編譯操作。您必須使用和管理 外部的資料金鑰 AWS KMS。如需安全使用資料金鑰的說明，請參閱 [AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/)。

**Topics**
+ [建立資料金鑰](#data-keys-create)
+ [使用資料金鑰進行密碼編譯操作的運作方式](#use-data-keys)
+ [無法使用的 KMS 金鑰如何影響資料金鑰](unusable-kms-keys.md)

## 建立資料金鑰
<a name="data-keys-create"></a>

若要建立資料金鑰，請呼叫 [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 操作。 AWS KMS 產生資料金鑰。然後它會加密在您指定的[對稱加密 KMS 金鑰](symm-asymm-choose-key-spec.md#symmetric-cmks)下的資料金鑰複本。操作會傳回資料金鑰的純文字複本和以 KMS 金鑰加密的資料金鑰複本。下圖顯示此操作。

![產生資料金鑰](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/generate-data-key.png)


AWS KMS 也支援 [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html) 操作，只會傳回加密的資料金鑰。當您需要使用資料金鑰時，請 AWS KMS 將其[解密](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)。

## 使用資料金鑰進行密碼編譯操作的運作方式
<a name="use-data-keys"></a>

下列主題說明 [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 或 [GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html) 操作所產生的資料金鑰如何運作。

### 使用資料金鑰來加密資料
<a name="data-keys-encrypt"></a>

AWS KMS 無法使用資料金鑰來加密資料。但是，您可以在 外部使用資料金鑰 AWS KMS，例如使用 OpenSSL 或密碼編譯程式庫，例如 [AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/)。

使用純文字資料金鑰加密資料後，請盡快從記憶體中移除該金鑰。您可將加密的資料金鑰與加密的資料安全地存放在一起，以便用來隨需解密資料。

![在 外部加密使用者資料 AWS KMS](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/encrypt-with-data-key.png)


### 使用資料金鑰來解密資料
<a name="data-keys-decrypt"></a>

若要解密您的資料，請將加密的資料金鑰傳遞至 [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 操作。 AWS KMS 會使用 KMS 金鑰來解密資料金鑰，然後傳回純文字資料金鑰。使用純文字資料金鑰來解密您的資料，然後盡快從記憶體中移除純文字資料金鑰。

下圖說明如何使用 `Decrypt` 操作來解密加密的資料金鑰。

![解密資料金鑰](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/decrypt.png)
