Usar claves de encriptación administradas por el cliente (CMEK)

Si usas claves de encriptación administradas por el cliente (CMEK), tienes control sobre tus claves. Esto te permite controlar su nivel de protección, ubicación, programa de rotación, permisos de uso y acceso, y límites criptográficos. En lugar de que Google posea y administre las claves de encriptación de claves (KEK) simétricas que protegen tus datos, tú las controlas y administras en Cloud Key Management Service (KMS).

Antes de comenzar

  1. Asegúrate de tener el rol de administrador de Redis en tu cuenta de usuario.

    Ir a la página IAM

Flujo de trabajo para crear una instancia que usa CMEK

  1. Crea un llavero de claves y una clave en la ubicación en la que deseas que esté la instancia de Memorystore para Redis.

  2. Copia o anota el nombre de la clave (KEY_NAME), la ubicación de la clave y el nombre del llavero de claves (KEY_RING). Necesitarás esta información cuando le otorgues a la cuenta de servicio acceso a la clave.

  3. Otorga a la cuenta de servicio de Memorystore para Redis acceso a la clave.

  4. Ve a un proyecto y crea una instancia de Memorystore para Redis con CMEK habilitada en la misma región que el llavero de claves y la clave.

Ahora tu instancia de Memorystore para Redis está habilitada con CMEK.

Crea un llavero de claves y una clave

Crea un llavero de claves y una clave. Ambos deben estar en la misma región que tu instancia de Memorystore para Redis. La clave puede ser de un proyecto diferente, siempre que esté en la misma región. Además, la clave debe usar el algoritmo de encriptación simétrica.

Después de crear el llavero de claves y la clave, copia o anota el KEY_NAME, la ubicación de la clave y el KEY_RING. Necesitarás esta información cuando le otorgues a la cuenta de servicio acceso a la clave.

Otorga a la cuenta de servicio de Memorystore para Redis acceso a la clave

Antes de que puedas crear una instancia de Memorystore para Redis que use CMEK, debes otorgar acceso a la clave a una cuenta de servicio específica de Memorystore para Redis. Puedes otorgar acceso a la clave a la cuenta de servicio con la Google Cloud consola o la Google Cloud CLI.

Para otorgar acceso a la cuenta de servicio, usa el siguiente formato:

service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com

Console

Como parte de los pasos para crear una instancia de Memorystore para Redis que usa CMEK, le otorgas acceso a la clave a la cuenta de servicio.

gcloud

Para otorgar acceso a la clave a la cuenta de servicio, usa el gcloud kms keys add-iam-policy-binding comando.

gcloud kms keys add-iam-policy-binding KEY_NAME \
--location=REGION_ID \
--keyring=KEY_RING \
--member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Realiza los siguientes reemplazos:

  • KEY_NAME: El nombre de la clave a la que le otorgas acceso a la cuenta de servicio
  • REGION_ID: La región en la que se encuentra el llavero de claves
  • KEY_RING: El nombre del llavero de claves que incluye la clave
  • PROJECT_NUMBER: El ID o número del proyecto que contiene la cuenta de servicio

Crea una instancia de Memorystore para Redis que use CMEK

Puedes crear una instancia que use CMEK con la Google Cloud consola o la CLI de gcloud.

Console

  1. Asegúrate de crear un llavero de claves y una clave en la misma región en la que deseas crear tu instancia.

  2. Sigue las instrucciones en Crea una instancia de Redis en una red de VPC hasta que llegues al paso para habilitar CMEK. Luego, vuelve a estas instrucciones.

  3. Selecciona Usar una clave de encriptación administrada por el cliente (CMEK).

  4. Para seleccionar tu clave, usa el menú.

  5. Selecciona las configuraciones restantes para la instancia y, luego, haz clic en Crear.

gcloud

Para crear una instancia que use CMEK, usa el gcloud redis instances create comando.

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

Realiza los siguientes reemplazos:

  • INSTANCE_ID: El ID de la instancia que estás creando
  • SIZE: El tamaño de la instancia que deseas crear, en gibibytes (GiB)
  • REGION_ID: El ID de la región en la que deseas que se ubique la instancia
  • PROJECT_NAME: El nombre del proyecto en el que deseas crear la instancia
  • KEY_RING: El nombre del llavero de claves que incluye la clave
  • KEY_NAME: El nombre de la clave

Visualiza la información de claves de una instancia con CMEK habilitadas

Puedes ver la información de claves de una instancia con CMEK habilitadas con la Google Cloud consola o la CLI de gcloud. Esta información incluye la clave activa y si CMEK está habilitada para tu instancia.

Console

  1. En la Google Cloud consola de, ve a la página Instancias.

    Memorystore for Redis

  2. Haz clic en el ID de tu instancia.

  3. En el panel izquierdo, haz clic en la pestaña Seguridad. La página Seguridad contiene un vínculo a la clave activa y muestra la ruta de acceso de referencia de la clave. Si esta información no aparece, significa que no habilitaste CMEK para tu instancia.

gcloud

Para verificar si CMEK está habilitada y ver la referencia de la clave, usa el gcloud redis instances describe comando para ver el customerManagedKey campo.

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

Realiza los siguientes reemplazos:

  • INSTANCE_ID: El ID de la instancia sobre la que deseas ver información
  • PROJECT_NAME: El nombre del proyecto que contiene la instancia
  • REGION_ID: El ID de la región en la que se encuentra la instancia

Administra versiones de claves

Para obtener información sobre lo que sucede cuando inhabilitas, destruyes, rotas, habilitas, y restableces una versión de clave, consulta Comportamiento de una versión de clave CMEK.

Para obtener instrucciones sobre cómo inhabilitar y volver a habilitar versiones de claves, consulta Habilita e inhabilita versiones de claves.

Para obtener instrucciones sobre cómo destruir y restablecer versiones de claves, consulta Destruye y restablece versiones de claves.

¿Qué sigue?