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