使用客户管理的加密密钥 (CMEK)

通过使用客户管理的加密密钥 (CMEK),您可以控制自己的密钥。这样一来,您就可以控制其保护级别、位置、轮替时间表、使用和访问权限以及加密边界。这样您就可以在 Cloud Key Management Service (KMS) 中控制和管理用于保护数据的对称密钥加密密钥 (KEK),而不是由 Google 拥有和管理这些密钥。

准备工作

  1. 确保您的用户账号具有 Redis Admin 角色

    转到 IAM 页面

创建使用 CMEK 的集群的工作流

  1. 在您希望 Memorystore for Redis Cluster 中的集群所在的地理位置创建密钥环密钥

  2. 复制或记下密钥名称 (KEY_NAME)、密钥的位置和密钥环的名称 (KEY_RING)。您在向服务账号授予密钥访问权限时需要此信息。

  3. 向 Memorystore for Redis Cluster 服务账号授予对密钥的访问权限

  4. 前往某个项目,然后在密钥环和密钥所在的同一区域中创建启用了 CMEK 的 Memorystore for Redis 集群中的集群

您的集群现已启用 CMEK。

创建密钥环和密钥

创建密钥环密钥。 两者都必须与 Memorystore for Redis 集群中的集群位于同一区域。密钥可以来自其他项目,但必须位于同一区域。此外,密钥必须使用对称加密算法

创建密钥环和密钥后,复制或记下 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 命令查看 encryptionInfokmsKey 字段。

gcloud redis clusters describe CLUSTER_ID \
--project=PROJECT_NAME \
--region=REGION_ID

进行以下替换:

  • CLUSTER_ID:您要查看相关信息的集群的 ID
  • PROJECT_NAME:包含集群的项目的名称
  • REGION_ID:集群所在区域的 ID

管理密钥版本

如需了解停用、销毁、轮替、启用和恢复密钥版本时会发生什么情况,请参阅 CMEK 密钥版本的行为

如需了解如何停用和重新启用密钥版本,请参阅启用和停用密钥版本

如需查看有关如何销毁和恢复密钥版本的说明,请参阅销毁和恢复密钥版本

后续步骤