

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

# 加密靜態 Amazon DocumentDB 資料
<a name="encryption-at-rest"></a>

**注意**  
AWS KMS 正在將 *客戶主金鑰 (CMK)* 取代為 *AWS KMS key*和 *KMS 金鑰*。概念並沒有變更。為了防止中斷變更， AWS KMS 會保留此術語的一些變化。

您可以在建立叢集時指定儲存加密選項，以加密 Amazon DocumentDB 叢集中的靜態資料。儲存加密功能一經啟用，範圍擴及整個叢集，並套用到所有執行個體，包括主執行個體和任何複本。它也會套用至叢集的儲存磁碟區、資料、索引、日誌、自動備份和快照。

Amazon DocumentDB 使用 256 位元進階加密標準 (AES-256)，使用存放在 AWS Key Management Service () 中的加密金鑰來加密您的資料AWS KMS。使用啟用靜態加密的 Amazon DocumentDB 叢集時，您不需要修改應用程式邏輯或用戶端連線。Amazon DocumentDB 以透明的方式處理資料的加密和解密，對效能的影響最小。

Amazon DocumentDB 與 整合， AWS KMS 並使用稱為信封加密的方法來保護您的資料。當 Amazon DocumentDB 叢集使用 加密時 AWS KMS，Amazon DocumentDB AWS KMS 會要求 使用您的 KMS 金鑰來[產生加密文字資料金鑰](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)來加密儲存磁碟區。加密文字資料金鑰會使用您定義的 KMS 金鑰進行加密，並與加密的資料和儲存中繼資料一起儲存。當 Amazon DocumentDB 需要存取加密的資料時，它會請求使用 KMS 金鑰 AWS KMS 解密加密文字資料金鑰，並在記憶體中快取純文字資料金鑰，以有效率地加密和解密儲存磁碟區中的資料。

Amazon DocumentDB 中的儲存加密設施適用於所有支援的執行個體大小，以及可使用 Amazon DocumentDB 的所有 AWS 區域 執行個體。

## 啟用 Amazon DocumentDB 叢集的靜態加密
<a name="encryption-at-rest-enabling"></a>

您可以使用 或 AWS 管理主控台 AWS Command Line Interface () 佈建叢集時，在 Amazon DocumentDB 叢集上啟用或停用靜態加密AWS CLI。您使用主控台所建立的叢集，依預設會啟用靜態加密。您使用 建立的叢集預設 AWS CLI 會停用靜態加密。因此，您必須使用 `--storage-encrypted` 參數明確啟用靜態加密。在任何一種情況下，當叢集建立之後，您都無法變更靜態加密選項。

Amazon DocumentDB 使用 AWS KMS 來擷取和管理加密金鑰，並定義控制這些金鑰使用方式的政策。如果您未指定 AWS KMS 金鑰識別符，Amazon DocumentDB 會使用預設的 AWS 受管服務 KMS 金鑰。Amazon DocumentDB 會為 AWS 區域 中的每個 建立單獨的 KMS 金鑰 AWS 帳戶。如需詳細資訊，請參閱 [AWS Key Management Service 概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)。

若要開始建立您自己的 KMS 金鑰，請參閱《 *AWS Key Management Service 開發人員指南*》中的[入門](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html)。

**重要**  
您必須使用對稱加密 KMS 金鑰來加密叢集，因為 Amazon DocumentDB 僅支援對稱加密 KMS 金鑰。請勿使用非對稱 KMS 金鑰來嘗試加密 Amazon DocumentDB 叢集中的資料。如需詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》[中的 中的非對稱金鑰 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)。

如果 Amazon DocumentDB 無法再存取叢集的加密金鑰，例如，當金鑰的存取遭到撤銷時，加密的叢集會進入結束狀態。在此情況下，您只能從備份中還原叢集。對於 Amazon DocumentDB，備份一律會啟用 1 天。

此外，如果您停用加密 Amazon DocumentDB 叢集的 金鑰，最終將會失去對該叢集的讀取和寫入存取權。當 Amazon DocumentDB 遇到由無法存取的金鑰加密的叢集時，它會讓叢集進入終端狀態。在此情況下，該叢集再也無法使用，而且無法復原資料庫的目前狀態。若要還原叢集，您必須重新啟用對 Amazon DocumentDB 加密金鑰的存取，然後從備份還原叢集。

**重要**  
您無法在建立加密叢集之後變更其 KMS 金鑰。務必在加密叢集建立之前決定您的加密金鑰需求。

------
#### [ Using the AWS 管理主控台 ]

您可以在建立叢集時指定靜態加密選項。當您使用 AWS 管理主控台建立叢集時，依預設會啟用靜態加密。叢集建立之後就無法變更此選項。

**在建立叢集時指定靜態加密選項**

1. 建立 Amazon DocumentDB 叢集，如[入門](https://docs.aws.amazon.com/documentdb/latest/developerguide/connect-ec2.launch-cluster.html)一節所述。不過，在步驟 6 中，請勿選擇 **Create cluster (建立叢集)**。

1. 在 **Authentication (身分驗證)** 區段下，選擇 **Show advanced settings (顯示進階設定)**。

1. 向下捲動到 **Encryption-at-rest (靜態加密)** 區段。

1. 選擇您要靜態加密採用的選項。無論選擇哪個選項，叢集建立之後都無法變更。
   + 若要對此叢集中的資料啟用靜態加密，請選擇 **Enable encryption (啟用加密)**。
   + 如果您不要對此叢集中的資料啟用靜態加密，請選擇 **Disable encryption (停用加密)**。

1. 選擇您想要的主索引鍵。Amazon DocumentDB 使用 AWS Key Management Service (AWS KMS) 來擷取和管理加密金鑰，並定義控制這些金鑰使用方式的政策。如果您未指定 AWS KMS 金鑰識別符，Amazon DocumentDB 會使用預設的 AWS 受管服務 KMS 金鑰。如需詳細資訊，請參閱 [AWS Key Management Service 概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)。
**注意**  
建立加密叢集後，您無法變更該叢集的 KMS 金鑰。務必在加密叢集建立之前決定您的加密金鑰需求。

1. 請視需要完成其他區段，並建立您的叢集。

------
#### [ Using the AWS CLI ]

若要使用 加密 Amazon DocumentDB 叢集 AWS CLI，請執行 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-db-clusters.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-db-clusters.html)命令並指定 `--storage-encrypted`選項。根據預設，使用 建立的 Amazon DocumentDB 叢集 AWS CLI 不會啟用儲存加密。

下列範例會建立已啟用儲存加密的 Amazon DocumentDB 叢集。

在下列範例中，將每個*使用者輸入預留位置*取代為您叢集的資訊。

**Example**  
若為 Linux、macOS 或 Unix：  

```
aws docdb create-db-cluster \
  --db-cluster-identifier mydocdbcluster \
  --port 27017 \
  --engine docdb \
  --master-username SampleUser1 \
  --master-user-password primaryPassword \
  --storage-encrypted
```
針對 Windows：  

```
aws docdb create-db-cluster ^
  --db-cluster-identifier SampleUser1 ^
  --port 27017 ^
  --engine docdb ^
  --master-username SampleUser1 ^
  --master-user-password primaryPassword ^
  --storage-encrypted
```

當您建立加密的 Amazon DocumentDB 叢集時，您可以指定 AWS KMS 金鑰識別符，如下列範例所示。

**Example**  
若為 Linux、macOS 或 Unix：  

```
aws docdb create-db-cluster \
  --db-cluster-identifier SampleUser1 \
  --port 27017 \
  --engine docdb \
  --master-username primaryUsername \
  --master-user-password yourPrimaryPassword \
  --storage-encrypted \
  --kms-key-id key-arn-or-alias
```
針對 Windows：  

```
aws docdb create-db-cluster ^
  --db-cluster-identifier SampleUser1 ^
  --port 27017 ^
  --engine docdb ^
  --master-username SampleUser1 ^
  --master-user-password primaryPassword ^
  --storage-encrypted ^
  --kms-key-id key-arn-or-alias
```

**注意**  
建立加密叢集後，您無法變更該叢集的 KMS 金鑰。務必在加密叢集建立之前決定您的加密金鑰需求。

------

## Amazon DocumentDB 加密叢集的限制
<a name="encryption-at-rest-limits"></a>

Amazon DocumentDB 加密叢集存在下列限制。
+ 您只能在建立 Amazon DocumentDB 叢集時啟用或停用靜態加密，而不是在建立叢集之後。不過，您可以建立未加密叢集的快照，然後將未加密快照還原為新叢集，同時指定靜態加密選項，以建立未加密叢集的加密複本。

  如需詳細資訊，請參閱下列主題：
  + [建立手動叢集快照](backup_restore-create_manual_cluster_snapshot.md)
  + [從叢集快照還原](backup_restore-restore_from_snapshot.md)
  + [複製 Amazon DocumentDB 叢集快照](backup_restore-copy_cluster_snapshot.md)
+ 啟用儲存加密的 Amazon DocumentDB 叢集無法修改為停用加密。
+ Amazon DocumentDB 叢集中的所有執行個體、自動備份、快照和索引都會使用相同的 KMS 金鑰加密。