View a markdown version of this page

加密靜態 Amazon DocumentDB 資料 - Amazon DocumentDB

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

加密靜態 Amazon DocumentDB 資料

注意

AWS KMS 正在將術語客戶主金鑰 (CMK) 取代為 AWS KMS keyKMS 金鑰。概念並沒有變更。為了防止中斷變更, 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 金鑰來產生加密文字資料金鑰來加密儲存磁碟區。加密文字資料金鑰會使用您定義的 KMS 金鑰進行加密,並與加密的資料和儲存中繼資料一起存放。當 Amazon DocumentDB 需要存取加密的資料時,它會請求使用 KMS 金鑰 AWS KMS 解密加密文字資料金鑰,並在記憶體中快取純文字資料金鑰,以有效率地加密和解密儲存磁碟區中的資料。

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

啟用 Amazon DocumentDB 叢集的靜態加密

您可以使用 或 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 概念

若要開始建立您自己的 KMS 金鑰,請參閱《 AWS Key Management Service 開發人員指南》中的入門

重要

您必須使用對稱加密 KMS 金鑰來加密叢集,因為 Amazon DocumentDB 僅支援對稱加密 KMS 金鑰。請勿使用非對稱 KMS 金鑰來嘗試加密 Amazon DocumentDB 叢集中的資料。如需詳細資訊,請參閱《 AWS Key Management Service 開發人員指南》中的 中的非對稱金鑰 AWS KMS

如果 Amazon DocumentDB 無法再存取叢集的 KMS 金鑰 — 例如,當擁有金鑰 AWS 帳戶 的 暫停、停用金鑰、排程刪除金鑰,或移除 Amazon DocumentDB 依賴的金鑰政策或授權時 — 叢集會先轉換為 inaccessible-encryption-credentials-recoverable 狀態。當叢集處於此狀態時,Amazon DocumentDB 會停止叢集的執行個體,您無法從叢集讀取或寫入叢集,但如果在 7 天內還原對 KMS 金鑰的存取,仍可復原叢集。如果未在 7 天內還原存取權,叢集會轉換為終端機inaccessible-encryption-credentials狀態。從終端機狀態,叢集不再可用,且資料庫的目前狀態無法復原 - 您只能從備份還原或使用原始 KMS 金鑰執行point-in-time還原。對於 Amazon DocumentDB,備份一律會啟用至少 1 天。

注意

屬於全域叢集的叢集行為不同。當 Amazon DocumentDB 偵測到無法再存取 KMS 金鑰時,全域叢集中的所有叢集會直接轉換為終端機inaccessible-encryption-credentials狀態,略過可復原狀態。這是因為屬於全域叢集的叢集只有在它是全域叢集中唯一的叢集時,才能停止和啟動。若要復原,您必須從快照還原或執行point-in-time還原。若要刪除原始叢集,您必須先從全域叢集中移除每個叢集,然後將其刪除。

重要

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

Using the AWS 管理主控台

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

在建立叢集時指定靜態加密選項
  1. 入門一節所述建立 Amazon DocumentDB 叢集。不過,在步驟 6 中,請勿選擇 Create cluster (建立叢集)

  2. Authentication (身分驗證) 區段下,選擇 Show advanced settings (顯示進階設定)

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

  4. 選擇您要靜態加密採用的選項。無論選擇哪個選項,叢集建立之後都無法變更。

    • 若要對此叢集中的資料啟用靜態加密,請選擇 Enable encryption (啟用加密)

    • 如果您不要對此叢集中的資料啟用靜態加密,請選擇 Disable encryption (停用加密)

  5. 選擇您想要的主索引鍵。Amazon DocumentDB 使用 AWS Key Management Service (AWS KMS) 來擷取和管理加密金鑰,並定義控制如何使用這些金鑰的政策。如果您未指定 AWS KMS 金鑰識別符,Amazon DocumentDB 會使用預設的 AWS 受管服務 KMS 金鑰。如需詳細資訊,請參閱 AWS Key Management Service 概念

    注意

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

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

Using the AWS CLI

若要使用 加密 Amazon DocumentDB 叢集 AWS CLI,請執行 create-db-cluster命令並指定 --storage-encrypted選項。根據預設,使用 建立的 Amazon DocumentDB 叢集 AWS CLI 不會啟用儲存加密。

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

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

範例

針對 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 金鑰識別符,如下列範例所示。

範例

針對 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 叢集

當 Amazon DocumentDB 無法存取叢集加密所用的 KMS 金鑰時,Amazon DocumentDB 叢集會移至無法存取的加密狀態。有兩種這類狀態,而復原路徑取決於叢集所在的狀態。

inaccessible-encryption-credentials-recoverable 狀態

當叢集處於 inaccessible-encryption-credentials-recoverable 狀態時,您可以透過available還原 Amazon DocumentDB 對 KMS 金鑰的存取權,然後啟動叢集,將叢集傳回 。若要解決此狀態,請執行下列動作:

  1. 確認 AWS 帳戶 擁有 KMS 金鑰的 處於作用中狀態。如果帳戶遭到暫停,請重新啟用。

  2. 確認 KMS 金鑰已啟用。如需詳細資訊,請參閱《 AWS Key Management Service 開發人員指南》中的啟用和停用金鑰

  3. 檢查 KMS 金鑰是否已排定刪除。如果是,請取消排程金鑰刪除。如需詳細資訊,請參閱《 AWS Key Management Service 開發人員指南》中的排程和取消金鑰刪除

  4. 確認 Amazon DocumentDB 依賴的 KMS 金鑰政策和任何授予仍允許 Amazon DocumentDB 使用金鑰。

  5. 還原 KMS 金鑰的存取權後,請使用 AWS 管理主控台 或執行 start-db-cluster AWS CLI 命令來啟動叢集。

    範例

    針對 Linux、macOS 或 Unix:

    aws docdb start-db-cluster \ --db-cluster-identifier example-cluster

    針對 Windows:

    aws docdb start-db-cluster ^ --db-cluster-identifier example-cluster
重要

如果未在 7 天內還原對 KMS 金鑰的存取,叢集會轉換為無法從中啟動的終端機inaccessible-encryption-credentials狀態。

inaccessible-encryption-credentials 狀態

inaccessible-encryption-credentials 狀態為終端機。無法啟動叢集,也無法復原資料庫的執行中狀態。若要復原資料,請從快照還原或執行point-in-time還原至新叢集。您必須仍可存取原始 KMS 金鑰才能執行還原。如果刪除 KMS 金鑰,則無法復原資料。

如需詳細資訊,請參閱從叢集快照還原還原至某個時間點

注意

屬於全域叢集的叢集會在無法存取 KMS 金鑰時直接轉換為 inaccessible-encryption-credentials 狀態,因為屬於全域叢集的叢集只有在它是全域叢集中唯一的叢集時,才能停止和啟動。若要刪除處於此狀態的叢集,請先從全域叢集中移除每個叢集,然後個別刪除叢集。

如果您因為已啟用刪除保護而無法刪除處於 inaccessible-encryption-credentials 狀態的叢集,請在重試刪除 AWS CLI 之前使用 關閉刪除保護。

範例

針對 Linux、macOS 或 Unix:

aws docdb modify-db-cluster \ --db-cluster-identifier example-cluster \ --no-deletion-protection

針對 Windows:

aws docdb modify-db-cluster ^ --db-cluster-identifier example-cluster ^ --no-deletion-protection

然後,您可以使用 delete-db-cluster命令刪除叢集。

範例

針對 Linux、macOS 或 Unix:

aws docdb delete-db-cluster \ --db-cluster-identifier example-cluster \ --skip-final-snapshot

針對 Windows:

aws docdb delete-db-cluster ^ --db-cluster-identifier example-cluster ^ --skip-final-snapshot

如果叢集在您執行上述命令後未刪除,請聯絡 AWS Support

Amazon DocumentDB 加密叢集的限制

Amazon DocumentDB 加密叢集存在下列限制。

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

    如需詳細資訊,請參閱下列主題:

  • 啟用儲存加密的 Amazon DocumentDB 叢集無法修改以停用加密。

  • Amazon DocumentDB 叢集中的所有執行個體、自動備份、快照和索引都會使用相同的 KMS 金鑰加密。