使用客户管理的加密密钥 (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. 首先,拥有密钥环和密钥

  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

如需创建使用 CMEK 的实例,请输入以下命令,并将 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 控制台中,前往 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 密钥版本时的行为

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

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

后续步骤