通过使用客户管理的加密密钥 (CMEK),您可以控制自己的密钥。这样一来,您就可以控制其保护级别、位置、轮替时间表、使用和访问权限以及加密边界。这样您就可以在 Cloud Key Management Service (KMS) 中控制和管理用于保护 数据的对称密钥加密密钥 (KEK),而不是由 Google 拥有和管理这些密钥。
准备工作
创建使用 CMEK 的集群的工作流
复制或记下密钥名称 (
KEY_NAME)、密钥的位置和密钥环的名称 (KEY_RING)。在向服务帐号授予密钥访问权限时,您需要此信息。前往项目,并在与密钥环和密钥相同的区域中创建启用了 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
命令查看 encryptionInfo 和 kmsKey 字段。
gcloud redis clusters describe CLUSTER_ID \ --project=PROJECT_NAME \ --region=REGION_ID
进行以下替换:
- CLUSTER_ID:您要查看相关信息的集群的 ID
- PROJECT_NAME:包含集群的项目的名称
- REGION_ID:集群所在的区域的 ID
管理密钥版本
如需了解停用、销毁、轮替、启用、 和恢复密钥版本时会发生什么情况,请参阅 CMEK 密钥版本的行为。
如需了解如何停用和重新启用密钥版本,请参阅启用和 停用密钥版本。
如需了解如何销毁和恢复密钥版本,请参阅销毁和 恢复密钥版本。