En este documento, se describe cómo puedes usar las claves de encriptación administradas por el cliente (CMEK) en Cloud Key Management Service (Cloud KMS) para tus clústeres en Memorystore para Redis Cluster. En el documento, también se describe qué datos se encriptan en el almacenamiento persistente y cómo se comportan los clústeres durante los eventos del ciclo de vida de las claves.
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 CMEK en clústeres nuevos. No puedes aplicar la CMEK a clústeres 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 clústeres. Para encriptar estos datos, Memorystore for Redis Cluster 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 for Redis Cluster.
- Encriptación con KEK: Las KEK encriptan las DEK.
Memorystore para Redis Cluster 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 clúster.
En el siguiente diagrama, se muestra cómo un clúster 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 Cluster desencripta los datos encriptados con CMEK. Para acceder a estos datos encriptados, Memorystore para Redis Cluster envía una solicitud a Cloud KMS, que administra la KEK, para desencriptar la DEK. Luego, Cloud KMS devuelve la DEK desencriptada, que el clúster 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 for Redis Cluster admite dos tipos de persistencia:
- Persistencia de RDB: La función de base de datos de Redis (RDB) protege tus datos guardando instantáneas de ellos en un almacenamiento duradero.
- Persistencia de AOF: Esta función prioriza la durabilidad de los datos. Almacena los datos de forma duradera registrando cada comando de escritura en un archivo de registro llamado Archivo de solo anexar (AOF). Si se produce una falla o un reinicio del sistema, el servidor reproduce los comandos del archivo AOF de forma secuencial para restablecer tus datos.
- Son los metadatos relacionados con las funciones de seguridad, como la autenticación básica basada en tokens y la encriptación en tránsito. Para obtener más información, consulta Accede de forma segura a tus clústeres con la autenticación básica basada en tokens y Acerca de 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 un clúster habilitado para CMEK, debes otorgar el rol roles/cloudkms.cryptoKeyEncrypterDecrypter a la cuenta de servicio de Memorystore para Redis Cluster que usa el siguiente formato:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
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 un clúster, seleccionas esta clave para encriptarlo. Puedes crear un solo proyecto para tus claves y clústeres, o proyectos diferentes para cada uno de ellos.
La CMEK está disponible en todas las ubicaciones de clústeres. Debes crear el llavero de claves y la clave en la misma región en la que deseas crear el clúster. En el caso de un clúster multirregional, debes configurar el llavero de claves y la clave en la misma ubicación que el clúster. Si las regiones o ubicaciones no coinciden, fallará la solicitud para crear el clúster.
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.
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 el clúster, Memorystore for Redis Cluster no lo creará. Además, si la clave externa deja de estar disponible en cualquier momento después de que crees el clúster, Memorystore for Redis Cluster desactivará las copias de seguridad y la persistencia, pero las operaciones de almacenamiento en caché en la memoria normales seguirán atendiendo el tráfico.
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 clústeres y sus datos protegidos durante los eventos del ciclo de vida de las claves, como la inhabilitación, la destrucción, la rotación, la habilitación o la restauración de versiones de claves. En las secciones, también se explica el impacto de revocar el acceso a una clave de Cloud KMS o reemplazarla, y se proporciona orientación para volver a encriptar los datos de forma manual.
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 inhabilitas o destruyes la versión de tu clave primaria, se aplicarán las siguientes condiciones a las copias de seguridad y la persistencia.
Copias de seguridad
Cuando destruyes la versión de clave primaria, se aplican las siguientes restricciones a las copias de seguridad de tu clúster:
- No puedes crear copias de seguridad automáticas ni a pedido. Sin embargo, si habilitas una versión de clave anterior, podrás acceder a las copias de seguridad que creaste con esa versión de clave.
- No podrás actualizar ni volver a habilitar las copias de seguridad automáticas hasta que habilites o restablezcas la versión de clave primaria. Para obtener más información, consulta Cómo habilitar o restablecer la versión de la clave de CMEK principal.
Persistencia
Cuando destruyes la versión de tu clave primaria, se aplican las siguientes restricciones a la persistencia de tu clúster:
- Si configuras tu clúster para que use la persistencia, Memorystore para Redis Cluster la desactiva cuando la versión de la clave deja de estar disponible. Ya no se te cobrará por usar la persistencia.
- Memorystore para Redis Cluster no vacía los datos nuevos en el almacenamiento persistente con la CMEK.
- Memorystore for Redis Cluster no puede leer los datos existentes que se encuentran en el almacenamiento persistente.
- No puedes actualizar ni volver a habilitar la persistencia hasta que habilites o restablezcas la versión de la clave primaria.
Si habilitas la versión de clave primaria, pero inhabilitas o destruyes una versión de clave anterior, se aplicarán las siguientes condiciones a las copias de seguridad y la persistencia:
- Puedes crear copias de seguridad. Sin embargo, si una copia de seguridad se encripta con una versión de clave anterior que está inhabilitada o destruida, la copia de seguridad seguirá siendo inaccesible.
- Si habilitas la persistencia, esta permanecerá habilitada. Si la versión de clave anterior que se usa en la persistencia está inhabilitada o destruida, Memorystore for Redis Cluster realiza una actualización similar a la que se usa en el mantenimiento y vuelve a encriptar los datos con la versión de clave primaria.
Cómo revocar el acceso a una clave de Cloud KMS
Si revocas el acceso a una clave de Cloud KMS activa inhabilitándola o quitando los permisos de IAM para la clave, Memorystore para Redis Cluster priorizará la disponibilidad de la caché principal. Las operaciones regulares de almacenamiento en caché en la memoria siguen publicando tráfico.
Sin embargo, las copias de seguridad y la persistencia están desactivadas. Memorystore para Redis Cluster deja de escribir datos nuevos en el disco de inmediato y no lee datos del disco encriptado por el cliente en la memoria.
Rotar la versión principal de la clave de CMEK
Si rotas la versión de clave primaria y creas una versión de clave primaria nueva, se aplicarán las siguientes condiciones a las copias de seguridad y la persistencia:
- La versión de clave primaria más reciente de tu CMEK encripta las copias de seguridad nuevas.
- En el caso de las copias de seguridad existentes, no se realiza ninguna reencriptación.
- En el caso de la persistencia, los nodos no realizan ninguna acción. Los nodos seguirán usando la versión de clave anterior hasta el próximo evento de mantenimiento.
Cómo volver a encriptar manualmente los datos protegidos por CMEK
Memorystore para Redis Cluster no admite el reencriptado a pedido de los datos almacenados. No puedes activar un proceso de forma manual para usar una nueva versión de la 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 escritos recientemente.
Si rotas una clave y debes forzar un clúster para que use la nueva versión de la clave, se aplican las siguientes condiciones a las copias de seguridad y la persistencia:
Copias de seguridad
No puedes volver a encriptar las copias de seguridad existentes. Si el cumplimiento requiere que todos los datos se encripten con la clave más reciente, crea una copia de seguridad que use esta clave y, luego, borra las copias de seguridad existentes de forma manual. También puedes exportar esta copia de seguridad a un bucket de Cloud Storage para que se use la clave de encriptación de Cloud Storage.
Persistencia
Para forzar al clúster a usar una clave de Cloud KMS nueva, puedes ejecutar un mantenimiento simulado en el clúster. Después de completar esta operación, Memorystore para Redis Cluster puede escribir datos de persistencia con la versión actualizada de la clave principal.
Reemplaza una clave de Cloud KMS protegida
Si reemplazas una clave de Cloud KMS protegida por otra clave o por una nueva versión de la clave primaria, Memorystore para Redis Cluster aplicará este cambio solo a las operaciones futuras.
Reemplazar una clave protegida afecta tus recursos de las siguientes maneras:
- Copias de seguridad: Todas las copias de seguridad posteriores se encriptan con la clave nueva. Las copias de seguridad existentes conservan sus claves originales.
- Persistencia: La próxima vez que se reinicie el clúster 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 almacenados.
Cómo habilitar o restablecer la versión de clave de CMEK principal
Si habilitas o restableces la versión de tu clave primaria, se aplicarán las siguientes condiciones a las copias de seguridad y la persistencia:
- Puedes volver a crear copias de seguridad automáticas y a pedido.
- Memorystore for Redis Cluster realiza una actualización similar a la que se usa en el mantenimiento y vuelve a habilitar la persistencia.
Restricciones de las políticas de la organización
Memorystore para Redis Cluster admite restricciones de políticas de la organización para la CMEK. Con estas restricciones, puedes aplicar la protección de CMEK a tus clústeres 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 clústeres. Si la API de Memorystore para Redis Cluster se encuentra en la lista de servicios de la políticaDenypara esta restricción, no podrás crear clústeres no protegidos 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, los clústeres 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 Cluster como Memorystore for Redis comparten el mismo extremo (redis.googleapis.com), no puedes aplicar la CMEK a los clústeres de forma independiente de las instancias de Memorystore for Redis.
Para obtener más información sobre las restricciones de las políticas de la organización relacionadas con la CMEK que administra Google para Memorystore for Redis Cluster, consulta Restricciones de las políticas de la organización.
Precios
Memorystore for Redis Cluster factura un clúster habilitado para CMEK como cualquier otro clúster; no hay costos adicionales. Para obtener más información, consulta los precios de Memorystore for Redis Cluster.
Usas la API de Cloud KMS para administrar las CMEK. Cuando creas un clúster 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 Cluster usa la clave. Para obtener más información, consulta Precios de Cloud KMS.
Limitaciones
Se aplican las siguientes limitaciones cuando se usa la CMEK con Memorystore para Redis Cluster:
- No puedes habilitar la CMEK en un clúster existente.
- La clave, el llavero de claves y el clúster 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.