Azure Cosmos DB 中的資料加密

適用於:NoSQL MongoDB Cassandra Gremlin Table

「待用加密」是一個用來描述加密靜態儲存裝置 (例如固態硬碟 (SSD) 和硬碟 (HDD)) 上資料的常見用語。 Azure Cosmos DB 會在 SSD 上儲存其主要資料庫。 其媒體附件和備份會儲存在一般由 HDD 進行備份的 Azure Blob 儲存體中。 隨著針對 Azure Cosmos DB 發行待用加密之後,您的所有資料庫、媒體附件及備份都會進行加密。 您的資料現在會在傳輸過程 (透過網路) 和待用 (位於靜態儲存裝置上) 期間進行加密,提供您端對端的加密。

作為平台即服務 (PaaS),Azure Cosmos DB 很容易使用。 由於儲存在 Azure Cosmos DB 中的所有使用者資料都會在待用和傳輸過程期間進行加密,因此您不必採取任何動作。 換句話說,待用加密預設為「開啟」。 沒有關閉或開啟的控制項。 Azure Cosmos DB 在帳戶執行所在的所有區域中都會使用 AES-256 加密。

在提供這項功能的同時,我們會繼續符合可用性和效能服務等級協定 (SLA)。 儲存在 Azure Cosmos DB 帳戶中的資料,會使用由 Microsoft 管理的金鑰 (受服務管理的金鑰) 自動進行縝密的加密。 (選擇性) 您可以選擇使用您自己的金鑰來新增第二層加密,如客戶管理的金鑰一文所說明。

Azure Cosmos DB 待用加密實作

待用加密是使用數種安全性技術予以實作,而這些技術包括安全金鑰儲存體系統、加密的網路和密碼編譯 API。 負責解密及處理資料的系統,必須和負責管理金鑰的系統進行通訊。 下圖顯示加密資料儲存體和金鑰管理的分隔方式。

Diagram that shows data storage and key management design.

使用者要求的基本流程如下:

  • 準備好使用者資料庫帳戶,並透過向管理服務資源提供者提出要求來擷取儲存體金鑰。
  • 使用者會透過 HTTPS/安全傳輸來建立與 Azure Cosmos DB 的連線。 (SDK 會對詳細資料進行抽象處理)。
  • 使用者透過先前所建立的安全連線,傳送要儲存的 JSON 文件。
  • 為 JSON 文件編製索引 (除非使用者已關閉編製索引)。
  • JSON 文件和索引資料皆寫入安全儲存體。
  • 系統會定期自安全儲存體讀取資料,並備份到 Azure 加密 Blob 存放區。

常見問題集

尋找加密常見問題的解答。

如果啟用「儲存體服務加密」,Azure 儲存體的成本會增加多少?

沒有額外費用。

誰負責管理加密金鑰?

儲存至 Azure Cosmos DB 帳戶的資料會使用服務受控金鑰,以利用 Microsoft 所管理的金鑰來自動進行縝密的加密。 您可以選擇性地選擇使用客戶自控金鑰,以利用您所管理的金鑰來新增第二層加密。

加密金鑰多久輪替一次?

針對加密金鑰輪替,Microsoft 有一套 Azure Cosmos DB 會遵循的內部方針。 不會發佈特定方針。 Microsoft 會發佈安全性開發生命週期,這會視為內部指導方針的子集,其中包含對開發人員很實用的最佳做法。

我可以使用自己的加密金鑰嗎?

是,此功能適用於新的 Azure Cosmos DB 帳戶。 其應該在建立帳戶時進行部署。 如需詳細資訊,請參閱客戶自控金鑰文件。

警告

針對使用客戶自控金鑰的帳戶中的 Cassandra API 表格,保留下列欄位名稱:

  • id
  • ttl
  • _ts
  • _etag
  • _rid
  • _self
  • _attachments
  • _epk

未啟用客戶自控金鑰時,只會保留開頭為 __sys_ 的欄位名稱。

有哪些區域已開啟加密?

所有 Azure Cosmos DB 區域都已針對所有使用者資料開啟加密。

加密會影響效能延遲和輸送量 SLA 嗎?

因為所有現有和新帳戶現在都已啟用待用加密,所以效能 SLA 沒有任何影響或變更。 若要查看最新的保證,請參閱 SLA for Azure Cosmos DB

本機模擬器支援待用加密嗎?

模擬器是獨立的開發/測試工具,不使用受控 Azure Cosmos DB 服務所使用的金鑰管理服務。 建議您在儲存敏感性模擬器測試資料的磁碟機上啟用 BitLocker。 模擬器支援變更預設資料目錄,也支援使用已知位置。

下一步