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

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

准备工作

  1. 确保您的用户账号具有 Redis 管理员 角色

    转到 IAM 页面

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

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

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

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

  4. 前往项目,并在与密钥环和密钥相同的区域中创建启用了 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 命令查看 encryptionInfokmsKey 字段。

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

进行以下替换:

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

管理密钥版本

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

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

如需了解如何销毁和恢复密钥版本,请参阅销毁和 恢复密钥版本

后续步骤