客戶自行管理的加密金鑰 (CMEK)

根據預設,Cloud Firestore 中所有靜態資料都會使用 Google 的預設加密機制加密。Cloud Firestore會為您處理及管理這類加密作業,您不必採取其他動作。

如果對於保護資料的金鑰有特定的法規遵循或監管要求,可以對 Cloud Firestore 使用客戶自行管理的加密金鑰 (CMEK)。您的 Cloud Firestore 資料庫會使用您在 Cloud Key Management Service (Cloud KMS) 中控管的金鑰來保護,而非由 Google 管理保護資料的加密金鑰。

本頁面說明 Cloud Firestore 的 CMEK。如要進一步瞭解 CMEK,包括啟用時機和原因,請參閱下列 Cloud KMS 說明文件:

如要瞭解如何使用 Cloud Firestore 執行 CMEK 相關工作,請參閱「使用 CMEK」。

功能

  • 資料控制項:CMEK 可讓您管理 KMS 金鑰。您可以輪替、停用及刪除用於加密 Cloud Firestore 資料庫中靜態資料的金鑰。
  • 效能:CMEK 不會影響 Cloud Firestore 服務水準協議。
  • 可稽核性:如果啟用 Cloud KMS 的稽核記錄,系統會記錄金鑰的所有作業,並可在 Cloud Logging 中查看。
  • 組織政策限制:您可以使用 CMEK 組織政策限制,為組織中的 Cloud Firestore 資料庫指定加密法規遵循規定。

定價

Cloud KMS 會依據金鑰費用,以及使用該金鑰執行的任何加密編譯作業收費。詳情請參閱 Cloud KMS 定價。

當 Cloud Firestore 要求 Cloud KMS 金鑰執行加密或解密作業時,系統會向您收取作業費用。客戶自行管理的金鑰每 5 分鐘會執行一次加密或解密作業,且不會與資料庫要求同步。考量到 Cloud Firestore 產生的預期加密編譯作業數量,費用通常不高。Cloud 稽核記錄的費用是額外支出,但考量到預期的密碼編譯作業數量,這筆費用通常不高。

使用受 CMEK 保護的資料庫不會產生額外的 Cloud Firestore 費用,且仍適用 Cloud Firestore 定價。

如果撤銷資料庫的金鑰,系統會根據金鑰可用最後一天的資料庫大小,收取儲存費用。在資料庫刪除或金鑰再次可用之前,您仍須支付該資料庫大小的儲存空間費用。

CMEK 保護的內容

建立受 CMEK 保護的 Cloud Firestore 資料庫時,系統會使用 Cloud KMS 金鑰保護靜態資料。這包括您儲存在磁碟或隨身碟上的資料,包括索引和備份。部分例外狀況不適用。下列資料類型會以 Google 預設加密機制加密,而非 CMEK 金鑰:

  • 傳輸中的資料或記憶體中的資料
  • 資料庫中繼資料

如何處理無法使用的金鑰狀態

系統不會對每項資料要求執行加密和解密作業。Cloud Firestore 系統會每 5 分鐘輪詢 Cloud KMS,檢查金鑰是否仍可用,並在金鑰可用時執行加密和解密作業。

如果系統偵測到金鑰無法使用,則在 10 分鐘內,對 Cloud Firestore 資料庫的任何後續呼叫 (包括讀取、寫入和查詢) 都會傳回 INVALID_ARGUMENT 錯誤,並顯示下列訊息:

The customer-managed encryption key required by the requested
resource is not accessible.

如果資料庫設有存留時間 (TTL) 政策,且在金鑰無法使用期間超過任何到期時間,系統會延遲依 TTL 刪除資料,直到金鑰恢復為止。如果資料庫有長時間執行的作業,這些作業會受到下列影響:

在任何刻意禁止 Cloud Firestore 存取金鑰的情況下,金鑰都會視為無法使用。包括:

如果金鑰已恢復,輪詢作業會偵測到金鑰再次可用。存取權通常會在幾分鐘內重新啟用,但少數情況下可能需要幾小時。請注意,Cloud KMS 金鑰的某些作業 (例如停用或刪除金鑰) 最多可能需要 3 小時才能生效。Cloud Firestore 必須等到變更在 Cloud KMS 中生效後,才會偵測到任何變更。

視情況而定,恢復金鑰可能涉及下列事項:

  • 重新啟用已停用的金鑰版本。
  • 還原已刪除的金鑰版本。金鑰版本會先排定刪除,然後才會永久刪除。您只能在金鑰版本排定刪除的期間內還原金鑰。無法還原已永久刪除的金鑰。
  • 重新授予 Cloud Firestore 服務代理存取金鑰的權限。

金鑰輪替注意事項

輪替 CMEK 金鑰時,Cloud Firestore 會使用 CMEK 金鑰的最新主要版本重新加密資料庫。在重新加密過程中,請同時保留舊版和新版金鑰。重新加密完成後,停用或刪除舊版 CMEK 金鑰不會停用資料庫存取權,因為資料庫是以新的主要金鑰版本加密。

您也可以查看用於保護資料庫的金鑰版本。詳情請參閱「查看使用中的金鑰」。

外部金鑰考量重點

使用 Cloud EKM 金鑰時,Google 無法控管外部金鑰管理合作夥伴系統中,外部代管金鑰的可用性。

如果無法使用外部管理的金鑰,Cloud Firestore 會繼續使用快取版本的金鑰,支援完整的資料庫作業,最長可達一小時。

一小時後,如果 Cloud Firestore 仍無法連線至 Cloud KMS,Cloud Firestore 會開始將資料庫離線,做為保護措施。呼叫資料庫時會失敗,並顯示 INVALID_ARGUMENT 錯誤,其中包含其他詳細資料。

如要進一步瞭解使用外部金鑰時的注意事項,請參閱 Cloud External Key Manager 說明文件。

備份與還原

備份使用的加密機制與建立備份的資料庫相同。受 CMEK 保護的 Cloud Firestore 資料庫建立備份時,會使用建立備份時所用的主要金鑰版本加密備份。

啟用備份排程後,Cloud Firestore 會在 24 小時後建立 CMEK 資料庫的第一個備份。

如要進一步瞭解 Cloud Firestore 備份,請參閱「備份及還原資料」。

根據預設,從備份還原的資料庫會使用與備份相同的加密機制。還原資料庫時,您可以透過下列任一方式指定其他加密類型:

  • 使用新指定的金鑰,還原至 CMEK 資料庫。
  • 還原至使用 Google 預設加密機制的非 CMEK 資料庫。
  • 還原至與備份使用相同加密方式的資料庫。

如要進一步瞭解如何從備份還原 Cloud Firestore 資料庫,請參閱「從資料庫備份還原資料」。如要進一步瞭解如何從備份還原受 CMEK 保護的 Cloud Firestore 資料庫,請參閱「還原受 CMEK 保護的資料庫」。

複製

根據預設,從其他資料庫複製的資料庫會使用與來源資料庫相同的加密機制。複製資料庫時,您可以透過下列任一方式指定不同的加密類型:

  • 使用新指定的金鑰,複製到 CMEK 資料庫。
  • 複製到使用 Google 預設加密機制的非 CMEK 資料庫。
  • (預設) 複製到與來源資料庫使用相同加密方式的資料庫。

如要進一步瞭解如何複製 Cloud Firestore 資料庫,請參閱「複製資料庫」。如要進一步瞭解如何複製受 CMEK 保護的 Cloud Firestore 資料庫,請參閱「複製受 CMEK 保護的資料庫」。

重要追蹤

您可以使用金鑰追蹤功能,查看金鑰保護的資源,例如 Cloud Firestore 資料庫。如要進一步瞭解金鑰追蹤功能,請參閱「查看金鑰使用情形」。

CMEK 和金鑰可用性

如果金鑰無法使用或已停用,請注意已啟用 CMEK 的資料庫可能會發生下列行為:

  • 您可以刪除金鑰無法使用的 CMEK 資料庫。

  • 建立啟用 CMEK 的資料庫時,Google Cloud 控制台的可用金鑰清單不會顯示已停用的金鑰。如果手動輸入已停用的金鑰,資料庫建立程序會失敗,並顯示 INVALID_ARGUMENT 錯誤 400。

限制

  • 您無法變更受 CMEK 保護的資料庫金鑰。您可以輪替、啟用及停用金鑰。

  • 您無法為現有資料庫啟用 CMEK。您只能在建立新資料庫時啟用 CMEK。如要將現有非 CMEK 資料庫中的資料遷移至受 CMEK 保護的資料庫,請匯出資料,然後將資料匯入新的受 CMEK 保護資料庫。您也可以將非 CMEK 資料庫的資料還原或複製到 CMEK 資料庫。

  • Cloud Firestore 支援的 CMEK 保護資料庫數量有限。

後續步驟