En este documento, se describe cómo puedes usar claves de encriptación administradas por el cliente (CMEK) en Cloud Key Management Service (Cloud KMS) para tus instancias de Memorystore para Redis. En el documento, también se describe qué datos se encriptan en el almacenamiento persistente y cómo se comportan tus instancias durante los eventos clave del ciclo de vida.
Las CMEK te permiten controlar las claves criptográficas que protegen tus datos almacenados. Al administrar tus propias claves en Cloud KMS, obtienes un mayor control sobre el acceso, la rotación y el uso de las claves, lo que te ayuda a cumplir con los estrictos requisitos reglamentarios y de cumplimiento.
La implementación de CMEK proporciona una capa adicional de seguridad y control sobre tus datos persistentes, como las copias de seguridad y los archivos de persistencia. Solo puedes habilitar la CMEK en instancias nuevas. No puedes aplicar la CMEK a instancias existentes.
¿Quiénes deberían usar la CMEK?
Las CMEK están diseñadas para organizaciones que tienen datos sensibles o regulados y necesitan controlar sus propias claves de encriptación. Para obtener más información sobre si debes usar CMEK para encriptar estos datos, consulta Decide si vas a usar CMEK.
Encriptación administrada por el cliente
Las CMEK te permiten usar tus claves criptográficas para proteger los datos almacenados en las instancias. Para encriptar estos datos, Memorystore para Redis usa claves de encriptación de datos (DEK) administradas por Google y claves de encriptación de claves (KEK) administradas por el cliente.
Puedes tener los siguientes niveles de encriptación:
- Encriptación de DEK: Las DEK encriptan los datos en Memorystore para Redis.
- Encriptación con KEK: Las KEK encriptan las DEK.
Memorystore para Redis usa KEK para encriptar DEK y usa DEK para encriptar los datos almacenados. Si usas CMEK, puedes administrar las KEK que encriptan las DEK en tu instancia.
En el siguiente diagrama, se muestra cómo una instancia usa la CMEK para encriptar datos. Los datos que se suben a la infraestructura de almacenamiento de Google se fragmentan, y cada fragmento se encripta con su propia DEK. Cloud KMS proporciona la KEK para encriptar las DEK, y la infraestructura de almacenamiento de Google distribuye los fragmentos de datos encriptados y las DEK encriptadas por todo el sistema.

En el siguiente diagrama, se muestra cómo Memorystore para Redis desencripta los datos encriptados con CMEK. Para acceder a estos datos encriptados, Memorystore para Redis envía una solicitud a Cloud KMS, que administra la KEK, para desencriptar la DEK. Luego, Cloud KMS devuelve la DEK desencriptada, que la instancia usa para desencriptar los datos almacenados.

¿Qué datos se encriptan con CMEK?
La CMEK encripta los siguientes tipos de datos del cliente que se almacenan en el almacenamiento persistente:
- Copias de seguridad: Las copias de seguridad te permiten recuperar tus datos a un momento determinado, así como exportarlos y analizarlos. Las copias de seguridad también son útiles para la recuperación ante desastres, la migración de datos, el uso compartido de datos y las situaciones de cumplimiento.
- Persistencia: Memorystore para Redis admite la persistencia de la base de datos de Redis (RDB), que te permite guardar instantáneas de tus datos en un almacenamiento duradero.
- Son los metadatos relacionados con las funciones de seguridad, como
AUTHy la encriptación en tránsito. Para obtener más información, consulta Información sobre Redis AUTH y Información sobre la encriptación en tránsito.
Componentes de CMEK
En las siguientes secciones, se describen los requisitos y los comportamientos de las cuentas de servicio, las claves criptográficas, las versiones de claves y las políticas de la organización que componen tu arquitectura de CMEK.
Cuentas de servicio
Para crear una instancia habilitada para CMEK, debes otorgar el rol roles/cloudkms.cryptoKeyEncrypterDecrypter a la cuenta de servicio de Memorystore para Redis que usa el siguiente formato:
service-PROJECT_NUMBER@cloud-redis.
Si otorgas este permiso, la cuenta de servicio podrá solicitar acceso a la clave desde Cloud KMS.
Claves
En Cloud KMS, debes crear un llavero de claves y, luego, una clave criptográfica que use un algoritmo de encriptación simétrica. Cuando creas una instancia de Memorystore para Redis, debes seleccionar esta clave para encriptar la instancia. Puedes crear un solo proyecto para tus claves y tus instancias, o proyectos diferentes para cada uno de ellos.
La CMEK está disponible en todas las ubicaciones de instancias de Memorystore para Redis. Debes crear el llavero de claves y la clave en la misma región en la que deseas crear la instancia. No funciona una clave para una región global o multirregión. Si las regiones o las ubicaciones no coinciden, fallará la solicitud para crear la instancia.
Para el ID de recurso de la clave, la CMEK usa el siguiente formato:
projects/CMEK_ENABLED_PROJECT/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Para obtener más información sobre cómo encontrar los IDs de recursos de las claves existentes, consulta Obtén un ID de recurso de Cloud KMS.
En la consola de Google Cloud , una instancia suspendida muestra una información sobre la herramienta con un signo de exclamación rojo en la página Instancias. Si colocas el cursor sobre la información, aparecerá el estado No state. Cuando se pueda acceder a la clave, Memorystore para Redis reanudará la instancia automáticamente.
Claves externas
Como parte de tu estrategia de CMEK, puedes usar claves externas. Para ello, usa Cloud External Key Manager (Cloud EKM) para encriptar datos en Google Cloud con claves externas que administras.
Cuando usas una clave de Cloud EKM, Google no tiene control sobre la disponibilidad de tus claves administradas de forma externa. Si no hay una clave disponible cuando creas la instancia, Memorystore para Redis no la crea. Además, si la clave externa deja de estar disponible en cualquier momento después de que crees la instancia, Memorystore para Redis suspenderá la instancia hasta que se restablezca el acceso.
Para obtener más consideraciones sobre el uso de claves externas, consulta Consideraciones.
Versiones de claves
Cloud KMS almacena el material de clave criptográfica que usas para encriptar y desencriptar tus datos en una versión de clave. Una sola clave puede contener varias versiones. Cada vez que rotas una clave, creas una versión de clave.
En las siguientes secciones, se describe cómo se comportan tus instancias y sus datos protegidos durante los eventos clave del ciclo de vida, como la inhabilitación, la destrucción, la habilitación o la restauración de versiones de claves. En las secciones, también se explica el impacto de reemplazar una clave de Cloud KMS, se proporciona orientación para volver a encriptar datos de forma manual y se detalla cómo importar o exportar datos para una instancia habilitada para CMEK.
Inhabilita o destruye una versión de clave CMEK
Es posible que surjan situaciones en las que quieras que los datos encriptados con CMEK sean permanentemente inaccesibles, por ejemplo, cuando corriges una filtración de datos. Para lograr esta destrucción de datos de alta seguridad (también conocida como destrucción criptográfica), debes destruir la versión de la clave. Para obtener más información sobre cómo destruir versiones de claves, consulta Destruye y restablece versiones de claves.
Si quieres asegurarte de que no se acceda a los datos de tu instancia, inhabilita la versión de tu clave principal. Con esta acción, se suspende tu instancia. Además, si se inhabilita o destruye alguna CMEK en uso, Memorystore para Redis suspende la instancia. Esto incluye cualquier versión de clave anterior que use la instancia.
Para saber si Memorystore para Redis suspendió tu instancia, usa una de las siguientes interfaces:
- Google Cloud Consola: En la página Instancias, aparece una sugerencia sobre herramientas con un signo de exclamación rojo junto a tu instancia. Si colocas el cursor sobre la información, aparecerá el estado Sin estado.
- CLI de gcloud: Usa el comando
gcloud redis instances describe. Verifica el campostate. Una instancia suspendida no muestra un estadoREADYoREPAIRING.
Reemplaza una clave de Cloud KMS protegida
Si reemplazas una clave de Cloud KMS protegida por una clave diferente o una nueva versión de la clave primaria, Memorystore para Redis aplicará este cambio solo a las operaciones futuras.
Reemplazar una clave protegida afecta tus recursos de las siguientes maneras:
- Copias de seguridad: Memorystore para Redis exporta copias de seguridad a Cloud Storage. Por lo tanto, la configuración de encriptación del bucket de destino (no la CMEK de la instancia) controla cómo se encriptan los datos exportados.
- Persistencia: La próxima vez que se reinicie la instancia o que haya un evento de mantenimiento, se usará la clave nueva.
- Caché principal: Reemplazar esta clave no tiene ningún impacto. La CMEK no encripta los datos en la memoria porque no se consideran datos en reposo.
Cómo volver a encriptar manualmente los datos protegidos por CMEK
Memorystore para Redis no admite el reajuste a pedido de los datos existentes en reposo. No puedes activar un proceso de forma manual para usar una nueva versión de clave y volver a encriptar las copias de seguridad existentes o los archivos de persistencia activos. Sin embargo, puedes usar la nueva versión de la clave para encriptar los datos recién escritos.
Importa o exporta datos para una instancia habilitada con CMEK
Si quieres que tus datos exportados sigan protegidos por una CMEK, debes configurar la CMEK en el bucket de Cloud Storage de destino antes de exportar los datos a él. Si tus datos ya están almacenados en una instancia habilitada para CMEK, no hay requisitos ni restricciones especiales para importarlos a una instancia nueva. Para obtener más información, consulta Acerca de la importación y exportación de datos.
Cómo habilitar o restablecer la versión de clave de CMEK principal
Si habilitas o restableces la versión de tu clave primaria, Memorystore para Redis reanudará tu instancia automáticamente.
Restricciones de las políticas de la organización
Memorystore para Redis admite restricciones de políticas de la organización para la CMEK. Con estas restricciones, puedes aplicar la protección de CMEK para tus instancias y limitar las claves de Cloud KMS que puedes usar para esta protección.
Puedes configurar las siguientes restricciones de políticas de la organización:
constraints/gcp.restrictNonCmekServices: Usa esta restricción para aplicar la protección con CMEK a tus instancias. Si la API de Memorystore para Redis se encuentra en la lista de servicios de la políticaDenypara esta restricción, no podrás crear instancias no protegidas por CMEK.constraints/gcp.restrictCmekCryptoKeyProjects: Usa esta restricción para limitar las claves de Cloud KMS que puedes usar para la protección de CMEK. Si configuras esta restricción, las instancias que usan la encriptación con CMEK deben usar una clave de un proyecto, una carpeta o una organización permitidos.
Dado que tanto Memorystore for Redis como Memorystore for Redis Cluster comparten el mismo extremo (redis.googleapis.com), no puedes aplicar la CMEK para las instancias de forma independiente de los clústeres en Memorystore for Redis Cluster.
Para obtener más información sobre las restricciones de las políticas de la organización relacionadas con la CMEK que Google administra para Memorystore para Redis, consulta Restricciones de las políticas de la organización.
Precios
Memorystore para Redis factura una instancia habilitada para CMEK como cualquier otra instancia; no hay costos adicionales. Para obtener más información, consulta los precios de Memorystore para Redis.
Usas la API de Cloud KMS para administrar las CMEK. Cuando creas una instancia con CMEK, Memorystore usa la clave periódicamente para encriptar los datos.
Cloud KMS te factura el costo de la clave y las operaciones de encriptación y desencriptación cuando Memorystore para Redis usa la clave. Para obtener más información, consulta Precios de Cloud KMS.
Limitaciones
Las siguientes limitaciones se aplican cuando se usa la CMEK con Memorystore para Redis:
- No puedes habilitar las CMEK en una instancia existente.
- La clave, el llavero de claves y la instancia deben estar ubicados en la misma región.
- Debes usar el algoritmo de encriptación simétrica para tu clave.
- Los índices de encriptación y desencriptación de Cloud KMS están sujetos a una cuota.
¿Qué sigue?
- Más información sobre CMEK.
- Obtén más información para mejorar la seguridad de los datos con CMEK.
- Obtén más información sobre las copias de seguridad.
- Obtén más información sobre la persistencia.