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

Si usas claves de encriptación administradas por el cliente (CMEK), tendrás 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 use CMEK

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

  2. Copia o escribe el nombre de la clave (KEY_NAME), la ubicación de la clave y el nombre del llavero (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 la 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 otro proyecto, siempre y cuando 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 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 consola de Google Cloud o la CLI de Google Cloud.

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

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

Console

Otorgas acceso a la cuenta de servicio a la clave como parte de los pasos para crear una instancia de Memorystore para Redis que use CMEK.

gcloud

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

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: Es la región en la que se encuentra el llavero de claves.
  • KEY_RING: el nombre del llavero de claves que contiene la clave
  • PROJECT_NUMBER: Es 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 consola de Google Cloud 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 la CMEK. Luego, vuelve a estas instrucciones.

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

  4. Para seleccionar la llave, usa el menú.

  5. Selecciona la configuración restante para la instancia y, luego, haz clic en Crear.

gcloud

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

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: Es el ID de la instancia que crearás.
  • SIZE: Es el tamaño de la instancia que deseas crear, en gibibytes (GiB).
  • REGION_ID: Es el ID de la región en la que deseas que se ubique la instancia.
  • PROJECT_NAME: Es el nombre del proyecto en el que deseas crear la instancia.
  • KEY_RING: el nombre del llavero de claves que contiene 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 clave de una instancia habilitada para CMEK con la consola deGoogle Cloud o la CLI de gcloud. Esta información incluye la clave activa y si la CMEK está habilitada para tu instancia.

Console

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

    Memorystore para Redis

  2. Haz clic en el ID de tu instancia.

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

gcloud

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

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

Realiza los siguientes reemplazos:

  • INSTANCE_ID: Es el ID de la instancia sobre la que deseas ver información.
  • PROJECT_NAME: El nombre del proyecto que contiene la instancia
  • REGION_ID: Es 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 de CMEK.

Si deseas obtener instrucciones para inhabilitar y volver a habilitar versiones de clave, consulta Habilita y habilita versiones de clave.

Si deseas obtener instrucciones para destruir y restablecer versiones de claves, consulta Destruye y restablece versiones de claves.

¿Qué sigue?