使用客戶自行管理的加密金鑰 (CMEK) 時,您可以控管金鑰。並控管防護等級、位置、輪替時間表、使用權限和存取權,以及加密範圍。您可以在 Cloud Key Management Service (KMS) 中控制及管理用來保護您資料的對稱金鑰加密金鑰 (KEK),而不是由 Google 擁有及管理。
事前準備
建立使用 CMEK 的執行個體的工作流程
複製或記下金鑰名稱 (
KEY_NAME)、金鑰位置和金鑰環名稱 (KEY_RING)。授予服務帳戶金鑰存取權時,您需要這些資訊。前往專案,並在與金鑰環和金鑰相同的區域中,建立已啟用 CMEK 的 Memorystore for Valkey 執行個體。
您的 Memorystore for Valkey 執行個體現已啟用 CMEK。
建立金鑰環和金鑰
建立金鑰環和金鑰。 兩者都必須與 Memorystore for Valkey 執行個體位於相同區域。只要金鑰位於相同區域,即可來自不同專案。此外,金鑰必須使用對稱式加密演算法。
建立金鑰環和金鑰後,請複製或記下 KEY_NAME、金鑰位置和 KEY_RING。授權服務帳戶存取金鑰時,您需要這項資訊。
授予 Memorystore for Valkey 服務帳戶金鑰存取權
如要建立使用 CMEK 的 Memorystore for Valkey 執行個體,請先授予特定 Memorystore for Valkey 服務帳戶金鑰存取權。
您可以使用 gcloud CLI 授予服務帳戶金鑰存取權。如要授予服務帳戶存取權,請使用下列格式:
service-PROJECT_NUMBER@gcp-sa-memorystore.iam.gserviceaccount.com
gcloud
如要授予服務帳戶金鑰存取權,請使用 gcloud kms keys add-iam-policy-binding 指令。
gcloud kms keys add-iam-policy-binding \ projects/PROJECT_ID/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-memorystore.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
請將下列項目改為對應的值:
- PROJECT_ID:包含金鑰環的專案 ID 或編號
- REGION_ID:金鑰環所在的區域
- KEY_RING:包含金鑰的金鑰環名稱
- KEY_NAME:要授予服務帳戶存取權的金鑰名稱
- PROJECT_NUMBER:服務帳戶所在專案的 ID 或編號
建立使用 CMEK 的 Memorystore for Valkey 執行個體
您可以使用 gcloud CLI 建立使用 CMEK 的執行個體。
gcloud
如要建立使用 CMEK 的執行個體,請使用 gcloud memorystore instances create 指令。
gcloud memorystore instances create INSTANCE_ID \
--project=PROJECT_NAME \
--location=REGION_ID \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/PROJECT_NAME/global/networks/NETWORK_ID", "projectId": "PROJECT_NAME"}}]}]' \
--kms-key=projects/PROJECT_NAME/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
--shard-count=SHARD_NUMBER \
--persistence-config-mode=PERSISTENCE_CONFIG_MODE
請將下列項目改為對應的值:
- INSTANCE_ID:您要建立的執行個體 ID。
- PROJECT_NAME:要在其中建立執行個體的專案名稱。
- REGION_ID:您希望執行個體所在的區域 ID。
- NETWORK_ID:要用於建立執行個體的網路 ID。
- KEY_RING:金鑰所屬金鑰環的名稱。
- KEY_NAME:金鑰名稱。
- SHARD_NUMBER:執行個體要使用的分片數量。
- PERSISTENCE_CONFIG_MODE:執行個體的持續性模式。
您可以將這個模式設為下列其中一個值:
aof:您為執行個體啟用以僅附加檔案 (AOF) 為基礎的持續性。disabled:您停用執行個體的持續性。rdb:為執行個體啟用以 Redis 資料庫 (RDB) 為基礎的持久性。
查看已啟用 CMEK 的執行個體金鑰資訊
您可以使用 gcloud CLI 查看已啟用 CMEK 的執行個體相關資訊。這項資訊包括執行個體是否已啟用 CMEK,以及使用中的金鑰。
gcloud
如要確認是否已啟用 CMEK 並查看金鑰參照,請使用 gcloud memorystore instances describe 指令查看 encryptionInfo 和 kmsKey 欄位。
gcloud memorystore instances describe INSTANCE_ID \ --project=PROJECT_NAME \ --location=REGION_ID
請將下列項目改為對應的值:
- INSTANCE_ID:要查看資訊的執行個體 ID
- PROJECT_NAME:包含執行個體的專案名稱
- REGION_ID:執行個體所在的區域 ID
管理金鑰版本
如要瞭解停用、刪除、輪替、啟用及還原金鑰版本時會發生什麼情況,請參閱「CMEK 金鑰版本的行為」。
如需如何停用及重新啟用金鑰版本的操作說明,請參閱「啟用及停用金鑰版本」。
如要瞭解如何刪除及還原金鑰版本,請參閱「刪除與還原金鑰版本」一文。