客戶自行管理的加密金鑰 (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 資料庫的任何後續呼叫 (包括讀取、寫入和查詢) 都會傳回 FAILED_PRECONDITION 錯誤,並顯示 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 會開始將資料庫離線,做為保護措施。呼叫資料庫時會失敗,並顯示 FAILED_PRECONDITION 錯誤,其中包含其他詳細資料。

如要進一步瞭解如何使用外部金鑰,請參閱 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 資料庫的 Cloud Firestore 時間點復原 (PITR) 設定,因為 PITR 設定是資料庫中繼資料,不會由 CMEK 加密。
  • 您可以刪除金鑰無法使用的 CMEK 資料庫。
  • 建立啟用 CMEK 的資料庫時,Google Cloud 控制台的可用金鑰清單不會顯示已停用的金鑰。如果手動輸入已停用的金鑰,資料庫建立程序會失敗,並顯示 FAILED_PRECONDITION 錯誤 400。

限制

  • 您無法變更受 CMEK 保護的資料庫金鑰。您可以輪替、啟用及停用金鑰。
  • 受 CMEK 保護的資料庫僅支援實體和文件資料的 Key Visualizer,不支援索引資料。
  • 您無法為現有資料庫啟用 CMEK。您只能在建立新資料庫時啟用 CMEK。如要將現有非 CMEK 資料庫中的資料遷移至受 CMEK 保護的資料庫,請匯出資料,然後將資料匯入新的 CMEK 保護資料庫。您也可以將非 CMEK 資料庫的資料還原或複製到 CMEK 資料庫。
  • Cloud Firestore 支援的 CMEK 保護資料庫數量有限。
  • 我們不支援 Cloud Functions (第 1 代) 整合的 CMEK 保護。如要使用 CMEK 保護機制,請使用 Cloud Run 函式 Firestore 觸發條件 (第 2 代)。

資料如何離開受 CMEK 保護的資料庫

  • 使用者可以任意儲存應用程式複製的資料。任何存取Cloud Firestore資料的應用程式都必須具備適當的安全控管機制,確保只有獲得適當授權的人員才能存取資料。 詳情請參閱安全性規則和 IAM。

  • 您可以使用備份與還原、複製或匯入和匯出功能,將受 CMEK 保護的資料庫資料移至非 CMEK 資料庫。請使用適當的 IAM 控制項,僅將這些動作的權限授予授權使用者。此外,您可以使用 CMEK 組織政策限制,要求透過還原或複製建立的任何資料庫,以及用於匯入作業的任何 Cloud Storage bucket,都必須受 CMEK 保護。

後續步驟