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

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

事前準備

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

    前往「IAM」頁面

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

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

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

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

  4. 前往專案,並在與金鑰環和金鑰相同的地區中,建立已啟用 CMEK 的 Memorystore for Redis 執行個體

您的 Memorystore for Redis 執行個體現已啟用 CMEK。

建立金鑰環和金鑰

建立金鑰環金鑰。 兩者必須與 Memorystore for Redis 執行個體位於相同地區。只要金鑰位於相同區域,即可來自不同專案。此外,金鑰必須使用對稱式加密演算法

建立金鑰環和金鑰後,請複製或記下 KEY_NAME、金鑰位置和 KEY_RING。授權服務帳戶存取金鑰時,您需要這項資訊。

授予 Memorystore for Redis 服務帳戶金鑰存取權

如要建立使用 CMEK 的 Memorystore for Redis 執行個體,必須先授予特定 Memorystore for Redis 服務帳戶金鑰存取權。您可以使用 Google Cloud 控制台或 Google Cloud CLI,授予服務帳戶金鑰存取權。

如要授予服務帳戶存取權,請使用下列格式:

service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com

控制台

建立使用 CMEK 的 Memorystore for Redis 執行個體時,您會授予服務帳戶金鑰存取權。

gcloud

如要授予服務帳戶金鑰存取權,請使用 gcloud kms keys add-iam-policy-binding 指令。

gcloud kms keys add-iam-policy-binding KEY_NAME \
--location=REGION_ID \
--keyring=KEY_RING \
--member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

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

  • KEY_NAME:要授予服務帳戶存取權的金鑰名稱
  • REGION_ID:金鑰環所在的區域
  • KEY_RING:包含金鑰的金鑰環名稱
  • PROJECT_NUMBER:服務帳戶所在專案的 ID 或編號

建立使用 CMEK 的 Memorystore for Redis 執行個體

您可以使用 Google Cloud 控制台或 gcloud CLI 建立使用 CMEK 的執行個體。

控制台

  1. 請務必在要建立執行個體的相同地區中建立金鑰環和金鑰

  2. 按照「在 VPC 網路中建立 Redis 執行個體」一文中的操作說明,完成啟用 CMEK 之前的步驟。然後返回以下操作說明。

  3. 選取「使用客戶自行管理的加密金鑰 (CMEK)」

  4. 使用選單選取金鑰。

  5. 選取執行個體的其餘設定,然後按一下「建立」

gcloud

如要建立使用 CMEK 的執行個體,請使用 gcloud redis instances create 指令。

gcloud redis instances create INSTANCE_ID \
--size=SIZE \
--region=REGION_ID \
--customer-managed-key=projects/PROJECT_NAME/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME

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

  • INSTANCE_ID:您要建立的執行個體 ID
  • SIZE:要建立的執行個體大小,以 GiB 為單位
  • REGION_ID:您希望執行個體所在的區域 ID
  • PROJECT_NAME:要在其中建立執行個體的專案名稱
  • KEY_RING:包含金鑰的金鑰環名稱
  • KEY_NAME:金鑰名稱

查看已啟用 CMEK 的執行個體金鑰資訊

您可以使用Google Cloud 控制台或 gcloud CLI,查看已啟用 CMEK 的執行個體重要資訊。這項資訊包括有效金鑰,以及執行個體是否已啟用 CMEK。

控制台

  1. 前往 Google Cloud 控制台的「Instances」(執行個體) 頁面。

    Memorystore for Redis

  2. 按一下執行個體的 ID。

  3. 按一下左側窗格中的「安全性」分頁標籤。「安全性」頁面會顯示有效金鑰的連結和金鑰參照路徑。如果沒有顯示這項資訊,表示您未為執行個體啟用 CMEK。

gcloud

如要確認是否已啟用 CMEK 並查看金鑰參照,請使用 gcloud redis instances describe 指令查看 customerManagedKey 欄位。

gcloud redis instances describe INSTANCE_ID \
--project=PROJECT_NAME \
--region=REGION_ID

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

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

管理金鑰版本

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

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

如需刪除及還原金鑰版本的操作說明,請參閱刪除與還原金鑰版本一文。

後續步驟