本頁說明客戶管理的加密金鑰 (CMEK) 如何搭配 Memorystore for Redis Cluster 運作。如要立即使用這項功能,請參閱「使用客戶自行管理的加密金鑰 (CMEK)」。
哪些人適合使用 CMEK?
CMEK 適用於擁有機密或管制資料的機構,這些機構必須自行管理加密金鑰。
Google 管理的加密金鑰與客戶管理的加密金鑰
CMEK 功能可讓您將自有的加密編譯金鑰用於 Memorystore for Redis Cluster 中的靜態資料。對於啟用 CMEK 的 Memorystore for Redis Cluster 執行個體,Google 會使用您的金鑰存取所有靜態資料。
Memorystore 會使用 Google 代管的資料加密金鑰 (DEK) 和金鑰加密金鑰 (KEK),加密 Memorystore for Redis Cluster 中的資料。加密等級分為兩種:
- DEK 加密:Memorystore 會使用 DEK 加密 Memorystore for Redis Cluster 中的資料。
- KEK 加密:Memorystore 會使用 KEK 加密 DEK。
Memorystore for Redis Cluster 執行個體會將加密的 DEK 連同加密資料儲存在磁碟上,而 Google 則會管理 Google KEK。使用 CMEK 時,您會建立金鑰來包裝 Google KEK。您可以使用 CMEK 建立、停用或刪除、輪替,以及啟用或還原 KEK。
下圖顯示使用預設 Google 代管加密機制與 CMEK 時,Memorystore for Redis Cluster 執行個體內的靜態資料加密運作方式。
不使用 CMEK
使用 CMEK
解密以 CMEK 包裝的資料時,Memorystore 會使用 Cloud Key Management Service 中的 KEK 解密 DEK,並使用未加密的 DEK 解密靜態資料。
定價
Memorystore for Redis Cluster 會對啟用 CMEK 的叢集計費,與其他叢集相同,不會產生額外費用。詳情請參閱 Memorystore for Redis Cluster 定價。
您可以使用 Cloud KMS API 管理 CMEK。 使用 CMEK 建立 Memorystore for Redis Cluster 執行個體時,Memorystore 會定期使用金鑰加密資料,確保金鑰的權限正確無誤,且金鑰已啟用。
當 Memorystore for Redis Cluster 使用金鑰時,系統會透過 Cloud KMS 向您收取金鑰費用,以及加密和解密作業的費用。詳情請參閱 Cloud KMS 定價。
哪些資料會使用 CMEK 加密?
CMEK 會加密儲存在永久儲存空間中的下列類型客戶資料:
- 備份:您可以透過備份,將資料還原至過去的某個時間點,並匯出及分析資料。備份也可用於災難復原、資料遷移、資料共用和法規遵循情境。
- 持久性:Memorystore for Redis Cluster 支援兩種持久性:
- RDB 持久性:Redis 資料庫 (RDB) 功能會將資料快照儲存至持久儲存空間,藉此保護資料。
- AOF 持久性:這項功能著重於資料耐用性。它會將每項寫入指令記錄到名為「僅限附加檔案 (AOF)」的記錄檔,藉此持久儲存資料。如果發生系統故障或重新啟動,伺服器會依序重新執行 AOF 檔案指令,以還原資料。
關於服務帳戶
使用 CMEK 建立執行個體時,您必須將 cloudkms.cryptoKeyEncrypterDecrypter 角色授予 Memorystore for Redis Cluster 服務帳戶,該帳戶的格式如下:
service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com
授予這項權限後,服務帳戶就能向 Cloud KMS 要求金鑰存取權。
如要將這項權限授予服務帳戶,請參閱授予 Memorystore for Redis Cluster 服務帳戶金鑰存取權。
關於金鑰
在 Cloud KMS 中,您需要建立金鑰環,並使用對稱加密演算法建立加密編譯金鑰。建立新的 Memorystore for Redis Cluster 執行個體時,請選取這個金鑰來加密執行個體。您可以為金鑰和執行個體建立一個專案,也可以分別建立專案。
所有 Memorystore for Redis Cluster 執行個體位置都提供 CMEK。您必須將金鑰和金鑰環區域設為與執行個體相同的區域。多區域或全域區域金鑰不適用。如果區域不相符,建立執行個體的要求就會失敗。
CMEK 採用下列格式:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[KEY_RING_NAME]/cryptoKeys/[KEY_NAME]
如何永久禁止存取以 CMEK 加密的資料?
您可能需要永久銷毀以 CMEK 加密的資料。如要這麼做,請刪除金鑰版本。您無法刪除金鑰環或金鑰,但可以刪除金鑰版本。
CMEK 金鑰版本的行為
本節說明停用、刪除、輪替、啟用及還原金鑰版本時會發生什麼情況。
停用或刪除 CMEK 金鑰版本
如果您停用或刪除 CMEK 的主要金鑰版本,備份和持續性作業會受到下列影響。
備份
- 您無法建立隨選或自動備份。不過,如果啟用舊版金鑰,就能存取使用該版本金鑰建立的備份。
- 您必須啟用或還原主要金鑰版本,才能更新或重新啟用自動備份功能。
持續性
- 如果啟用持續性,Memorystore for Redis Cluster 會執行類似維護的更新,並停用持續性功能。系統不會再收取這項功能的費用。
- Memorystore for Redis Cluster 不會使用 CMEK 將新資料排清至永久儲存空間。
- Memorystore for Redis Cluster 無法讀取永久儲存空間中的現有資料。
- 您必須啟用或還原主要金鑰版本,才能更新或重新啟用持續性。
如果您啟用 CMEK 的主要金鑰版本,但停用或銷毀舊金鑰版本,則備份和持續性作業會受到下列條件限制:
- 您可以建立備份。不過,如果備份資料是以已停用或刪除的舊版金鑰加密,您就無法存取備份資料。
- 如果啟用持續性,這項功能會維持啟用狀態。如果用於保存的舊版金鑰遭到停用或刪除,Memorystore for Redis Cluster 會執行類似於維護作業的更新,並使用主要金鑰版本重新加密資料。
輪替主要 CMEK 金鑰版本
如果您輪替 CMEK 的主要金鑰版本並建立新的主要金鑰版本,備份和持續性作業會受到下列條件限制:
- 系統會使用最新的 CMEK 主要金鑰版本加密新備份。
- 現有備份不會重新加密。
- 如要維持 VM 持續運作,請勿採取任何行動。在下一次維護事件前,VM 會繼續使用舊版金鑰。
啟用或還原主要 CMEK 金鑰版本
如果您啟用或還原 CMEK 的主要金鑰版本,備份和持續性作業會受到下列條件限制:
- 您可以再次建立隨選和自動備份。
- Memorystore for Redis Cluster 會執行類似維護作業的更新,並重新啟用持續性。
限制
搭配使用 CMEK 與 Memorystore for Redis Cluster 時,有以下限制:
- 您無法為現有的 Memorystore for Redis Cluster 部署項目啟用 CMEK。
- 金鑰、金鑰環和執行個體必須位於相同區域。
- 您必須使用金鑰的對稱加密演算法。
- Cloud KMS 加密和解密速率受配額限制。