使用客户管理的加密密钥 (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. 点击安全标签页。

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

gcloud

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

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

停用和重新启用密钥版本

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

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

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

后续步骤