Acerca de las claves de cifrado gestionadas por el cliente (CMEK)

En esta página se describe cómo funcionan las claves de cifrado gestionadas por el cliente (CMEK) con Memorystore para Redis Cluster. Para usar esta función de inmediato, consulta Usar claves de cifrado gestionadas por el cliente (CMEK).

¿Quién debería usar CMEK?

La CMEK está pensada para organizaciones que tienen datos sensibles o regulados y que necesitan gestionar sus propias claves de cifrado.

Cifrado gestionado por Google frente a cifrado gestionado por el cliente

La función de CMEK te permite usar tus propias claves criptográficas en los datos en reposo de Memorystore for Redis Cluster. En las instancias de Memorystore para Redis Cluster habilitadas para CMEK, Google usa tus claves para acceder a todos los datos en reposo.

Memorystore usa claves de cifrado de datos (DEK) y claves de cifrado de claves (KEK) gestionadas por Google para cifrar los datos en Memorystore para Redis Cluster. Hay dos niveles de cifrado:

  • Cifrado DEK: Memorystore usa DEKs para cifrar datos en Memorystore para Redis Cluster.
  • Cifrado con KEK: Memorystore usa KEKs para cifrar DEKs.

La instancia de Memorystore for Redis Cluster almacena la DEK cifrada junto con los datos cifrados en el disco, y Google gestiona la KEK de Google. Con CMEK, creas una clave que envuelve la KEK de Google. Las CMEK te permiten crear, inhabilitar o eliminar, rotar y habilitar o restaurar la KEK.

En los siguientes diagramas se muestra cómo funciona el cifrado de datos en reposo en una instancia de clúster de Memorystore para Redis cuando se usa el cifrado predeterminado gestionado por Google en comparación con CMEK.

Sin CMEK

Los datos se suben a Google, se dividen en fragmentos y cada fragmento se cifra con su propia clave de cifrado de datos. Las claves de cifrado de datos se encapsulan mediante una clave de cifrado de claves. Con el cifrado de Google predeterminado, la clave de cifrado de claves se obtiene del almacén de claves interno de Google. Los fragmentos cifrados y las claves de cifrado encapsuladas se distribuyen por toda la infraestructura de almacenamiento de Google.

Con CMEK

Los datos se suben a Google, se dividen en fragmentos y cada fragmento se cifra con su propia clave de cifrado de datos. Las claves de cifrado de datos se encapsulan mediante una clave de cifrado de claves. Con CMEK mediante Cloud KMS, la clave de cifrado de claves se obtiene de Cloud KMS. Los fragmentos cifrados y las claves de cifrado encapsuladas se distribuyen por toda la infraestructura de almacenamiento de Google.

Al desencriptar datos encapsulados con CMEK, Memorystore usa la KEK de Cloud Key Management Service para desencriptar la DEK y la DEK sin encriptar para desencriptar los datos en reposo.

Fragmento de datos cifrado con una DEK y almacenado con una DEK envuelta. Se envía una solicitud para desencapsular la DEK al almacenamiento del KMS, que almacena la KEK no exportable. El almacenamiento de KMS devuelve la DEK desencapsulada.

Precios

Memorystore for Redis Cluster factura los clústeres habilitados para CMEK igual que cualquier otro clúster. No hay costes adicionales. Para obtener más información, consulta los precios de Memorystore for Redis Cluster.

Para gestionar las CMEK, se usa la API de Cloud KMS. Cuando creas una instancia de clúster de Memorystore para Redis con CMEK, Memorystore usa la clave periódicamente para cifrar los datos. De esta forma, se asegura de que los permisos de la clave sean correctos y de que la clave esté habilitada.

Cloud KMS te factura el coste de la clave y las operaciones de cifrado y descifrado cuando Memorystore for Redis Cluster usa la clave. Para obtener más información, consulta los precios de Cloud KMS.

¿Qué datos se cifran con la CMEK?

CMEK cifra los siguientes tipos de datos de clientes que se almacenan en almacenamiento persistente:

  • Copias de seguridad: las copias de seguridad te permiten recuperar tus datos en un momento determinado, así como exportarlos y analizarlos. Las copias de seguridad también son útiles en situaciones de recuperación tras fallos, migración de datos, uso compartido de datos y cumplimiento.
  • Persistencia: Memorystore for Redis Cluster admite dos tipos de persistencia:
    • Persistencia de RDB: la función de base de datos Redis (RDB) protege tus datos guardando copias de tus datos en un almacenamiento duradero.
    • Persistencia AOF: esta función prioriza la durabilidad de los datos. Almacena datos de forma duradera registrando cada comando de escritura en un archivo de registro llamado archivo de solo anexión (AOF). Si se produce un fallo o un reinicio del sistema, el servidor vuelve a reproducir los comandos del archivo AOF de forma secuencial para restaurar los datos.

Información sobre las cuentas de servicio

Cuando crees una instancia con CMEK, debes asignar el rol cloudkms.cryptoKeyEncrypterDecrypter a la cuenta de servicio del clúster de Memorystore para Redis, que tiene el siguiente formato:

  • service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com

Al conceder este permiso, la cuenta de servicio puede solicitar acceso a las claves de Cloud KMS.

Para obtener instrucciones sobre cómo conceder este permiso a la cuenta de servicio, consulta Conceder acceso a la clave a la cuenta de servicio de Memorystore para Redis Cluster.

Acerca de las claves

En Cloud KMS, debes crear un conjunto de claves con una clave criptográfica que utilice un algoritmo de cifrado simétrico. Cuando creas una instancia de Memorystore for Redis Cluster, seleccionas esta clave para cifrar la instancia. Puedes crear un proyecto para ambas claves e instancias, o bien crear proyectos diferentes para cada una de ellas.

CMEK está disponible en todas las ubicaciones de instancias de Memorystore for Redis Cluster. Debes definir la región de la clave y del conjunto de claves en la misma región que la instancia. Una clave de región multirregional o global no funciona. Si las regiones no coinciden, se producirá un error al crear una instancia.

CMEK usa el siguiente formato:

projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[KEY_RING_NAME]/cryptoKeys/[KEY_NAME]

¿Cómo se puede hacer que los datos cifrados con CMEK sean inaccesibles de forma permanente?

Puede que haya situaciones en las que quieras destruir de forma permanente los datos cifrados con CMEK. Para ello, elimina la versión de la clave. No puedes eliminar el llavero ni la clave, pero sí las versiones de la clave.

Comportamiento de una versión de clave CMEK

En esta sección se explica qué ocurre cuando se inhabilita, destruye, rota, habilita y restaura una versión de clave.

Inhabilitar o destruir una versión de clave de cifrado gestionada por el cliente

Si inhabilitas o destruyes la versión de la clave principal de tu CMEK, se aplicarán las siguientes condiciones a las copias de seguridad y la persistencia.

Copias de seguridad

Persistencia

  • Si habilitas la persistencia, Memorystore for Redis Cluster realiza una actualización similar a la que se usa en el mantenimiento e inhabilita la función Persistencia. Ya no se te cobrará por esta función.
  • Memorystore para Redis Cluster no vacía los datos nuevos en el almacenamiento persistente mediante la CMEK.
  • Memorystore for Redis Cluster no puede leer los datos que ya hay en el almacenamiento persistente.
  • No puedes actualizar ni volver a habilitar la persistencia hasta que habilites o restaures la versión de clave principal.

Si habilitas la versión de clave principal de tu CMEK, 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 cifra con una versión de clave anterior que se ha inhabilitado o destruido, no se podrá acceder a ella.
  • Si habilitas la persistencia, esta función seguirá habilitada. Si la versión de clave anterior que se usa en la persistencia se inhabilita o se destruye, Memorystore para clústeres de Redis 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 principal.

Rotar la versión principal de la clave CMEK

Si rotas la versión de la clave principal de tu CMEK y creas una nueva versión de la clave principal, se aplicarán las siguientes condiciones a las copias de seguridad y la persistencia:

  • La versión principal más reciente de tu CMEK cifra las copias de seguridad nuevas.
  • Las copias de seguridad que ya tengas no se volverán a cifrar.
  • En cuanto a la persistencia, las VMs no realizan ninguna acción. Las VMs seguirán usando la versión de clave anterior hasta el próximo evento de mantenimiento.

Habilitar o restaurar la versión principal de la clave CMEK

Si habilitas o restauras la versión de la clave principal de tu CMEK, se aplicarán las siguientes condiciones a las copias de seguridad y la persistencia:

  • Puedes volver a crear copias de seguridad bajo demanda y automáticas.
  • Memorystore for Redis Cluster realiza una actualización similar a la que se usa en el mantenimiento y vuelve a habilitar la persistencia.

Limitaciones

Se aplican las siguientes limitaciones al usar CMEK con Memorystore for Redis Cluster:

  • No puedes habilitar CMEK en una implementación de Memorystore for Redis Cluster que ya esté creada.
  • La región de la clave, el conjunto de claves y la instancia debe ser la misma.
  • Debes usar el algoritmo de cifrado simétrico para tu clave.
  • Las tarifas de cifrado y descifrado de Cloud KMS están sujetas a una cuota.