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

本页面提供了有关如何创建使用客户管理的加密密钥 (CMEK) 的 Memorystore for Redis 集群实例的说明。本文还提供了有关管理使用 CMEK 的实例的说明。如需详细了解 Memorystore for Redis 集群的 CMEK,请参阅客户管理的加密密钥 (CMEK) 简介

准备工作

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

    转到 IAM 页面

创建使用 CMEK 的实例的工作流

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

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

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

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

您的 Memorystore for Redis Cluster 实例现已启用 CMEK。

创建密钥环和密钥

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

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

在创建使用 CMEK 的 Memorystore for Redis Cluster 实例之前,您必须向特定的 Memorystore for Redis Cluster 服务账号授予对密钥的访问权限。

如需向服务账号授予访问权限,请使用以下格式:

service-[PROJECT-NUMBER]@cloud-redis.iam.gserviceaccount.com

gcloud

如需向服务账号授予对密钥的访问权限,请使用 gcloud kms keys add-iam-policy-binding 命令。将 VARIABLES 替换为适当的值。

gcloud kms keys add-iam-policy-binding  \
projects/PROJECT_ID/locations/REGION_ID/keyRings/KMS_KEY_RING_ID/cryptoKeys/KMS_KEY_ID \
--member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

创建使用 CMEK 的 Memorystore for Redis 集群实例

gcloud

如需创建使用 CMEK 的实例,请使用 gcloud beta redis clusters create 命令。将 VARIABLES 替换为适当的值。

gcloud beta redis clusters create INSTANCE_ID \
--project=PROJECT_NAME \
--region=REGION_ID \
--network=NETWORK \
--kms-key=projects/PROJECT_NAME/locations/REGION_ID/keyRings/KMS_KEY_RING_ID/cryptoKeys/KMS_KEY_ID \
--shard-count=SHARD_NUMBER \
--persistence-mode=PERSISTENCE_MODE

查看启用了 CMEK 的实例的密钥信息

请按照以下说明查看您的实例是否已启用 CMEK,并查看有效密钥。

gcloud

如需验证 CMEK 是否已启用并查看密钥引用,请使用 gcloud redis clusters describe 命令查看 encryptionInfokmsKey 字段。将 VARIABLES 替换为适当的值。

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

管理密钥版本

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

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

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

后续步骤