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

本页面介绍了如何创建使用客户管理的加密密钥的 Memorystore for Redis 实例。还介绍了如何管理使用 CMEK 的实例。如需详细了解 Memorystore 的客户管理的加密密钥,请参阅客户管理的加密密钥

准备工作

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

    转到 IAM 页面

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

  1. 在您希望 Memorystore 实例所在的位置创建密钥环创建密钥

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

  3. 向 Memorystore 服务帐号授予对密钥的访问权限

  4. 转到一个项目,在密钥环和密钥所在的区域中创建一个启用了 CMEK 的 Memorystore for Redis 实例

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

创建密钥和密钥环

按照说明创建密钥环创建密钥。两者必须位于 Redis 实例所在的区域中。密钥可以来自不同的项目,只要密钥位于同一区域即可。此外,该密钥必须使用对称加密算法

向服务帐号授予密钥的访问权限

为了先创建使用 CMEK 的 Redis 实例,您必须向特定 Memorystore 服务帐号授予对密钥的访问权限。请使用以下格式授予对 Memorystore 服务帐号的访问权限:

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

控制台

使用控制台时,在创建使用 CMEK 的 Redis 实例的步骤中,您需要授予服务帐号对密钥的访问权限。

gcloud

如需向服务帐号授予对密钥的访问权限,请运行以下命令,并将 VARIABLES 替换为适当的值:

gcloud kms keys add-iam-policy-binding [KMS_KEY_ID] \
--location=[REGION_ID] \
--keyring=[KMS_KEYRING_ID] \
--member=serviceAccount:service-[PROJECT-NUMBER]@cloud-redis.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

创建使用 CMEK 的 Memorystore for Redis 实例

如需创建具有 CMEK 的实例,请按如下所述操作:

控制台

  1. 首先,在您要创建 Memorystore 实例的同一区域中拥有密钥环和密钥

  2. 按照创建 Redis 实例中的说明进行操作,直到完成启用客户管理的加密密钥的步骤,然后返回这些说明。

  3. 选择使用客户管理的加密密钥 (CMEK)

  4. 使用下拉菜单选择您的密钥。

  5. 如果 Memorystore 服务帐号尚未获得所需的权限,系统会显示一个文本框,说明:

    The service-[PROJECT-NUMBER]@cloud-redis.iam.gserviceaccount.com service account does not have the "cloudkms.cryptoKeyEncrypterDecrypter" role. Verify the service account has permission to encrypt/decrypt with the selected key.

    • 点击授予按钮,向 Memorystore 服务帐号授予角色权限。
  6. 为实例选择所需的配置,然后点击创建按钮以创建启用了 CMEK 的 Memorystore for Redis 实例。

gcloud

如需创建使用客户管理的加密密钥的实例,请输入以下命令,并将 VARIABLES 替换为适当的值:

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

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

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

控制台

  1. 在 Google Cloud Console 中,转到 Memorystore for Redis 实例页面。

    Memorystore for Redis

  2. 点击实例 ID 查看实例的实例详情页面。

  3. 点击 Security(安全)标签。

  4. 使用客户管理的密钥加密部分包含指向有效密钥的链接,并显示密钥引用路径。如果未出现此部分,则表明您的实例未启用 CMEK。

gcloud

如需验证 CMEK 是否已启用,并查看密钥引用,请运行以下命令,查看 customerManagedKey 字段:

gcloud beta redis instances describe INSTANCE_ID --project=PROJECT --region=REGION

停用和重新启用密钥版本

如需了解在停用、启用、销毁或重新启用密钥版本时会发生什么情况,请参阅销毁/停用 CMEK 密钥版本的行为

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

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

后续步骤