使用客戶自行管理的加密金鑰 (CMEK)

使用客戶自行管理的加密金鑰 (CMEK) 時,您可以控管金鑰。並控管防護等級、位置、輪替時間表、使用權限和存取權,以及加密範圍。您可以在 Cloud Key Management Service (KMS) 中控制及管理用來保護您資料的對稱金鑰加密金鑰 (KEK),而不是由 Google 擁有及管理。

事前準備

  1. 確認您的使用者帳戶具備 Memorystore 管理員角色

    前往「IAM」頁面

建立使用 CMEK 的執行個體的工作流程

  1. 在您要建立 Memorystore for Valkey 執行個體的位置,建立金鑰環金鑰

  2. 複製或記下金鑰名稱 (KEY_NAME)、金鑰位置和金鑰環名稱 (KEY_RING)。授予服務帳戶金鑰存取權時,您需要這些資訊。

  3. 授予 Memorystore for Valkey 服務帳戶金鑰存取權

  4. 前往專案,並在與金鑰環和金鑰相同的區域中,建立已啟用 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 指令查看 encryptionInfokmsKey 欄位。

gcloud memorystore instances describe INSTANCE_ID \
--project=PROJECT_NAME \
--location=REGION_ID

請將下列項目改為對應的值:

  • INSTANCE_ID:要查看資訊的執行個體 ID
  • PROJECT_NAME:包含執行個體的專案名稱
  • REGION_ID:執行個體所在的區域 ID

管理金鑰版本

如要瞭解停用、刪除、輪替、啟用及還原金鑰版本時會發生什麼情況,請參閱「CMEK 金鑰版本的行為」。

如需如何停用及重新啟用金鑰版本的操作說明,請參閱「啟用及停用金鑰版本」。

如要瞭解如何刪除及還原金鑰版本,請參閱「刪除與還原金鑰版本」一文。

後續步驟