根據預設,與 MongoDB 相容的 Cloud Firestore 中所有靜態資料都會使用 Google 的預設加密方式加密。與 MongoDB 相容的 Cloud Firestore 會為您處理及管理這項加密作業,您不必採取其他動作。
如果您在保護資料的金鑰方面有特定的法規遵循或監管要求,可以搭配使用客戶自行管理的加密金鑰 (CMEK) 和與 MongoDB 相容的 Cloud Firestore。您可以在 Cloud Key Management Service (Cloud KMS) 中控制及管理金鑰,而不是由 Google 管理用來保護您資料的加密金鑰,因此 Cloud Firestore with MongoDB compatibility 資料庫會受到您管理的金鑰保護。
本頁說明與 MongoDB 相容的 Cloud Firestore 適用的 CMEK。如要進一步瞭解 CMEK,包括啟用時機和原因,請參閱下列 Cloud KMS 說明文件:
如要瞭解如何使用與 MongoDB 相容的 Cloud Firestore 執行 CMEK 相關工作,請參閱「使用 CMEK」。
功能
- 資料控管:您可以使用 CMEK 管理 KMS 金鑰。您可以輪替、停用及銷毀用於加密 Cloud Firestore 中待用資料的金鑰,並與 MongoDB 相容的資料庫。
- 效能:CMEK 不會影響 Cloud Firestore 服務水準協議。
- 稽核能力:如果您為 Cloud KMS 啟用稽核記錄,系統會記錄金鑰的所有作業,並在 Cloud Logging 中顯示。
- 機構政策限制:您可以使用 CMEK 機構政策限制,為機構中與 MongoDB 相容的 Cloud Firestore 資料庫指定加密法規遵循要求。
定價
Cloud KMS 會針對金鑰的費用,以及使用該金鑰執行的任何加密編譯作業收費。詳情請參閱 Cloud KMS 定價。
當與 MongoDB 相容的 Cloud Firestore 要求 Cloud KMS 金鑰執行加密或解密作業時,您需要支付作業費用。客戶自行管理的金鑰每 5 分鐘會執行一次加密或解密作業,且不會與資料庫要求同步。與 MongoDB 相容的 Cloud Firestore 產生的加密作業數量預計不多,因此費用通常不高。Cloud 稽核記錄會產生額外費用,但考量到預期的加密作業數量,這筆費用通常不高。
使用受 CMEK 保護的資料庫時,與 MongoDB 相容的 Cloud Firestore 不會收取額外費用,且與 MongoDB 相容的 Cloud Firestore 定價仍適用。
如果撤銷資料庫的金鑰,系統會根據金鑰可用的最後一天,按大小收取儲存空間費用。在刪除資料庫或金鑰再次可用之前,您仍須支付該資料庫大小的儲存空間費用。
受 CMEK 保護的項目
建立受 CMEK 保護的 Cloud Firestore MongoDB 相容資料庫時,系統會使用 Cloud KMS 金鑰保護靜態資料。這包括您儲存在磁碟或隨身碟上的資料,包括索引和備份。部分例外狀況不適用,下列資料類型會以 Google 預設加密方式加密,而非 CMEK 金鑰:
- 傳輸中或記憶體中的資料
- 資料庫中繼資料
如何處理無法使用的金鑰狀態
系統不會在每次資料要求時發布加密和解密作業。而是每 5 分鐘輪詢 Cloud KMS,檢查金鑰是否仍可使用,如果金鑰可用,則執行加密和解密作業。
如果系統偵測到金鑰無法使用,後續對與 MongoDB 相容的 Cloud Firestore 資料庫發出的任何呼叫 (包括讀取、寫入和查詢),都會在 10 分鐘內傳回 INVALID_ARGUMENT
錯誤,並顯示下列訊息:
The customer-managed encryption key required by the requested
resource is not accessible.
如果資料庫有存留時間 (TTL) 政策,且金鑰無法使用時有任何到期時間超過期限,則存留時間 (TTL) 刪除資料作業會延後,直到金鑰恢復為止。如果資料庫正在執行長時間作業,將受到下列影響:
如果刻意禁止與 MongoDB 相容的 Cloud Firestore 存取金鑰,系統就會將金鑰視為無法使用。包括:
- 停用或刪除正在使用的金鑰版本。請謹慎銷毀金鑰版本,因為這可能會導致資料無法復原。
- 移除權限,禁止與 MongoDB 相容的 Cloud Firestore 服務帳戶存取金鑰。
如果金鑰恢復有效,輪詢作業會偵測到金鑰再次可用。存取權通常會在幾分鐘內重新啟用,但在少數情況下,最多可能需要數小時。請注意,Cloud KMS 金鑰的某些作業 (例如停用或刪除金鑰) 最多可能需要 3 小時才能生效。Cloud KMS 生效後,與 MongoDB 相容的 Cloud Firestore 才會偵測到任何變更。
視情況而定,金鑰復原作業可能包含下列步驟:
- 重新啟用已停用的金鑰版本。
- 還原已刪除的金鑰版本。金鑰版本會先排定銷毀時間,然後才會永久銷毀。您只能在金鑰版本排定刪除的期間還原金鑰。您無法還原已永久刪除的金鑰。
- 重新授予 Cloud Firestore 服務代理存取金鑰的權限。
金鑰輪替注意事項
輪替 CMEK 金鑰時,與 MongoDB 相容的 Cloud Firestore 會使用最新主要版本的 CMEK 金鑰,重新加密資料庫。在重新加密過程中,請同時保留舊版和新版金鑰。重新加密完成後,停用或刪除舊版 CMEK 金鑰不會停用資料庫存取權,因為資料庫已使用新的主要金鑰版本加密。
您也可以查看用於保護資料庫的金鑰版本。詳情請參閱「查看使用的金鑰」。
外部金鑰注意事項
使用 Cloud EKM 金鑰時,Google 無法控管外部金鑰管理合作夥伴系統中,外部管理金鑰的供應情形。
如果外部管理的金鑰無法使用,與 MongoDB 相容的 Cloud Firestore 會繼續使用金鑰的快取版本,支援完整的資料庫作業,最多可達一小時。
如果與 MongoDB 相容的 Cloud Firestore 在一小時後仍無法連線至 Cloud KMS,就會開始將資料庫離線,以採取保護措施。對資料庫的呼叫會失敗,並顯示包含其他詳細資料的 INVALID_ARGUMENT
錯誤。
如要瞭解使用外部金鑰時的其他注意事項,請參閱 Cloud External Key Manager 說明文件。
備份與還原
備份使用的加密機制與您建立備份的資料庫相同。如果與 MongoDB 相容的 Cloud Firestore 資料庫受到 CMEK 保護,建立備份時,系統會使用建立備份時的主要金鑰版本加密備份。
啟用備份排程後,Cloud Firestore (與 MongoDB 相容) 會在 24 小時後,為 CMEK 資料庫建立第一個備份。
如要進一步瞭解如何備份與 MongoDB 相容的 Cloud Firestore,請參閱備份及還原資料。
從備份還原的資料庫預設會使用與備份相同的加密機制。還原資料庫時,您可以透過下列任一方式指定其他加密類型:
- 使用新指定的金鑰還原至 CMEK 資料庫。
- 還原至使用 Google 預設加密機制的非 CMEK 資料庫。
- 還原至與備份使用相同加密方式的資料庫。
如要進一步瞭解如何從備份還原與 MongoDB 相容的 Cloud Firestore 資料庫,請參閱「從資料庫備份還原資料」。如要進一步瞭解如何從備份還原受 CMEK 保護的 Cloud Firestore (MongoDB 相容性資料庫),請參閱「還原受 CMEK 保護的資料庫」一文。
複製
根據預設,從其他資料庫複製的資料庫會使用與來源資料庫相同的加密機制。複製資料庫時,您可以透過下列任一方式指定不同的加密類型:
- 使用新指定的金鑰,複製到 CMEK 資料庫。
- 複製到使用 Google 預設加密機制的非 CMEK 資料庫。
- (預設) 複製到與來源資料庫使用相同加密方式的資料庫。
如要進一步瞭解如何複製與 MongoDB 相容的 Cloud Firestore 資料庫,請參閱「複製資料庫」。如要進一步瞭解如何複製受 CMEK 保護的 Cloud Firestore MongoDB 相容資料庫,請參閱複製受 CMEK 保護的資料庫。
金鑰追蹤
您可以使用金鑰追蹤功能,查看金鑰保護的資源,例如與 MongoDB 相容的 Cloud Firestore 資料庫。如要進一步瞭解金鑰追蹤功能,請參閱「查看金鑰使用情形」。
CMEK 和金鑰可用性
如果金鑰無法使用或已停用,請注意,在已啟用 CMEK 的資料庫中可能會發生下列情況:
您可以刪除金鑰無法使用的 CMEK 資料庫。
建立啟用 CMEK 的資料庫時,Google Cloud 控制台的可用金鑰清單不會顯示已停用的金鑰。如果手動輸入已停用的金鑰,資料庫建立程序會失敗,並顯示
INVALID_ARGUMENT
錯誤 400。
限制
您無法變更受 CMEK 保護的資料庫金鑰。您可以輪替、啟用及停用金鑰。
您無法為現有資料庫啟用 CMEK。您只能在新資料庫上啟用 CMEK,且必須在建立資料庫時啟用。如要將現有非 CMEK 資料庫中的資料遷移至受 CMEK 保護的資料庫,請匯出資料,然後匯入新的受 CMEK 保護資料庫。您也可以將非 CMEK 資料庫的資料還原或複製到 CMEK 資料庫。
Cloud Firestore 支援的 CMEK 保護資料庫數量有限。