En esta página, se describe cómo funcionan las claves de encriptación administradas por el cliente (CMEK) con Memorystore para Redis. Para usar esta función de inmediato, consulta Usa claves de encriptación administradas por el cliente (CMEK).
¿Las CMEK son adecuadas para mí?
Las claves de encriptación administradas por el cliente están diseñadas para aquellas organizaciones que tienen datos sensibles o regulados y, por lo tanto, necesitan administrar la clave de encriptación por su cuenta.
Diferencias entre la encriptación administrada por Google y la encriptación administrada por el cliente
La función CMEK te permite usar tus propias claves criptográficas para los datos en reposo en Memorystore para Redis. Después de agregar claves de encriptación administradas por el cliente, Memorystore usa tu clave para acceder a los datos cada vez que se realiza una llamada a la API.
Memorystore usa claves de encriptación de datos (DEK) administradas por Google y claves de encriptación de claves (KEK) para encriptar Memorystore para Redis. Existen dos niveles de encriptación:
- La DEK encripta datos.
- La KEK encripta la DEK.
La instancia de Memorystore almacena la DEK encriptada junto con los datos encriptados en el PD y Google administra la KEK de Google. Con las claves de encriptación administradas por el cliente, creas una clave que une la KEK de Google. Las claves de encriptación administradas por el cliente te permiten crear, revocar y borrar la KEK.
Las claves de encriptación administradas por el cliente se administran a través de la API de Cloud Key Management Service.
En los siguientes diagramas, se muestra cómo funciona la encriptación de datos en reposo dentro de una instancia de Memorystore cuando se usa la encriptación predeterminada de Google en comparación con las claves de encriptación administradas por el cliente.
Sin CMEK
Con CMEK
Cuando se desencriptan datos unidos con claves de encriptación administradas por el cliente, Memorystore usa la KEK para desencriptar la DEK, y la DEK no encriptada a fin de desencriptar los datos en reposo.
¿Cuándo interactúa Memorystore con las claves CMEK?
Operación | Descripción |
---|---|
Creación de una instancia | Durante la creación de la instancia, configura la instancia para que use claves de encriptación administradas por el cliente. |
Actualización de instancia | Memorystore verifica la clave CMEK durante las actualizaciones de una instancia habilitada para CMEK. |
¿Qué datos se encriptan con CMEK?
CMEK encripta los siguientes tipos de datos:
- Datos del cliente almacenados en el almacenamiento continuo
- Metadatos relacionados con funciones de seguridad como AUTH y la encriptación en tránsito
Acerca de las cuentas de servicio
Cuando creas una instancia con CMEK, debes otorgar la función cloudkms.cryptoKeyEncrypterDecrypter a la cuenta de servicio de Memorystore que tiene el siguiente formato:
service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com
Si otorgas este permiso, la cuenta de servicio podrá solicitar acceso a las claves desde Cloud KMS.
Para obtener instrucciones sobre cómo otorgar este permiso a la cuenta de servicio, consulta Otorga acceso a la clave a la cuenta de servicio.
Acerca de las claves
En Cloud KMS, debes crear un llavero de claves con una clave criptográfica que use un algoritmo de encriptación/desencriptación simétrica. Cuando creas una instancia nueva de Memorystore, debes seleccionar esta clave para encriptar la instancia. Puedes crear un proyecto para las claves y las instancias de Memorystore, o proyectos diferentes para cada una.
CMEK está disponible en todas las ubicaciones de instancias de Memorystore. La clave y la región del llavero de claves deben configurarse en la misma región que la instancia de Memorystore para Redis. Una clave multirregional o regional no funciona. Una solicitud para crear una instancia de Memorystore falla si las regiones no coinciden.
Actualmente, CMEK para Memorystore no admite Cloud External Key Manager (Cloud EKM).
Las claves de encriptación administradas por el cliente usan este formato:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
Si Memorystore no puede acceder a ninguna versión de clave que se esté usando en ese momento (por ejemplo, si inhabilitas la versión de clave), Memorystore cerrará la instancia sin demora innecesaria. En Google Cloud Console, una instancia suspendida muestra una información sobre la herramienta de signo de exclamación rojo en la página Instancias. Al desplazarte sobre la información sobre la herramienta, se muestra "No estado". Una vez que la clave vuelve a ser accesible, Memorystore reanuda la instancia de forma automática.
¿Cómo hago que los datos encriptados con CMEK queden inaccesibles de forma permanente?
Es posible que surjan situaciones en las que quieras destruir de forma permanente los datos encriptados con CMEK. Para hacerlo, debes destruir la versión de la clave de encriptación administrada por el cliente. No puedes destruir el llavero de claves o la clave, pero puedes destruir las versiones de clave.
¿Cómo puedo importar y exportar datos desde y hacia una instancia con CMEK habilitadas?
Si deseas que tus datos permanezcan encriptados con una clave administrada por el cliente durante una importación o exportación, debes configurar una clave de encriptación administrada por el cliente en el depósito de Cloud Storage antes de exportar datos a ella.
No existen requisitos ni restricciones especiales para importar datos a una instancia nueva de Memorystore cuando se almacenaron previamente en una instancia de Memorystore habilitada para CMEK.
Comportamiento para destruir o inhabilitar una versión de clave CMEK
Si deseas asegurarte de que ninguna instancia pueda acceder a los datos, puedes hacerlo si inhabilitas la versión de clave primaria de la clave de encriptación administrada por el cliente. Si lo haces, se cerrará la instancia sin retrasos innecesarios. Además, Memorystore cierra una instancia sin retrasos innecesarios si se inhabilita o destruye cualquier clave de encriptación administrada por el cliente en uso. Esto incluye cualquier versión de clave anterior que una instancia de Memorystore aún use. Puedes usar gcloud o Google Cloud Console para ver si la instancia está suspendida:
En Google Cloud Console, si tu instancia está suspendida, verás una notificación de información roja junto a tu instancia en la página Instancias de Memorystore para Redis. La información sobre la herramienta muestra el mensaje "Sin estado" cuando se coloca el cursor sobre él.
En gcloud, si ejecutas gcloud beta redis instances describe
y no ves state: READY
, state: REPAIRING
ni ningún otro estado en los metadatos de la instancia, esto significa que tu instancia está suspendida.
Vuelve a habilitar o restablecer una versión de clave CMEK en uso
Una instancia se muestra después de volver a habilitar o restablecer una versión de clave CMEK en uso.
Restricciones
Las siguientes restricciones se aplican cuando se usan claves de encriptación administradas por el cliente con Memorystore:
- No puedes habilitar las claves de encriptación administradas por el cliente en una instancia de Memorystore existente.
- La región para la clave, el llavero de claves y la instancia de Memorystore debe ser la misma.
- Debes usar el algoritmo de encriptación y desencriptación simétrico para tu clave.
- El uso de Cloud External Key Manager (Cloud EKM) para administrar claves no es compatible con esta función.