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 Cómo usar 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. Una vez que agregues las claves de encriptación administradas por el cliente, cada vez que se realice una llamada a la API, Memorystore usará tu clave para acceder a los datos.
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, puedes crear una clave que una 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
Durante el proceso de desencriptación de datos unidos con claves de encriptación administradas por el cliente, Memorystore usa la KEK para desencriptar la DEK, y la DEK no encriptada para desencriptar los datos en reposo.
¿Cuándo interactúa Memorystore con las claves CMEK?
Operación | Descripción |
---|---|
Creación de una instancia | Cuando creas la instancia, la configuras para que use claves de encriptación administradas por el cliente. |
Actualización de instancias | Memorystore verifica la clave CMEK durante las actualizaciones de una instancia con CMEK habilitadas. |
¿Qué datos se encriptan con CMEK?
Las CMEK encriptan los siguientes tipos de datos:
- Datos del cliente almacenados en el almacenamiento persistente
- Metadatos relacionados con funciones de seguridad, como AUTH y encriptación en tránsito
Acerca de las cuentas de servicio
Cuando crees una instancia con CMEK, debes otorgar el rol 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 la clave 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 y desencriptación simétrico. Cuando creas una instancia nueva de Memorystore, seleccionas esta clave para encriptar la instancia. Puedes crear un solo proyecto para las instancias y las claves de Memorystore, o proyectos diferentes para cada una de ellas.
Las CMEK están disponibles en todas las ubicaciones de instancias de Memorystore. La clave y la región del llavero deben establecerse en la misma región que la instancia de Memorystore para Redis. Una clave multirregional o de región global no funciona. La solicitud para crear instancias de Memorystore falla si las regiones no coinciden.
CMEK para Memorystore es compatible con 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 (por ejemplo, si inhabilitas la versión de clave), Memorystore cierra la instancia sin demoras innecesarias. En la consola de Google Cloud, una instancia suspendida muestra una información sobre herramientas con un signo de exclamación rojo en la página Instancias. Cuando colocas el cursor sobre la información sobre herramientas, se muestra "Sin estado". Cuando se pueda acceder a la clave de nuevo, Memorystore reanudará 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 quieres que tus datos permanezcan encriptados con una clave administrada por el cliente durante una importación o exportación, debes establecer una clave de encriptación administrada por el cliente en el bucket de Cloud Storage antes de exportar los datos a él.
No existen requisitos ni restricciones especiales para importar datos a una instancia nueva de Memorystore cuando los datos se almacenaron antes en una instancia de Memorystore habilitada para CMEK.
Comportamiento de la destrucción o inhabilitación de una versión de clave CMEK
Si deseas asegurarte de que no haya acceso a los datos de tu instancia, puedes inhabilitar la versión de clave primaria de tu clave de encriptación administrada por el cliente. De esta manera, se cerrará la instancia sin demoras innecesarias. Además, Memorystore cierra una instancia sin demoras si se inhabilita o destruye una clave de encriptación administrada por el cliente en uso. Esto incluye cualquier versión de clave anterior que aún use una instancia de Memorystore. Puedes usar gcloud o la consola de Google Cloud para ver si tu instancia está suspendida:
En la consola de Google Cloud, si tu instancia está suspendida, verás una notificación de tooltip roja junto a ella en la página Instancias de Memorystore para Redis. El cuadro de información muestra "Sin estado" cuando colocas el cursor sobre él.
En el caso de 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, significa que la instancia está suspendida.
Cómo volver 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 de 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 existente de Memorystore.
- La región de la clave, el llavero y la instancia de Memorystore deben ser iguales.
- Debes usar el algoritmo de encriptación o desencriptación simétrica para tu clave.
- Los índices de encriptación y desencriptación de Cloud KMS están sujetos a una cuota.
Políticas de la organización de CMEK
Memorystore para Redis admite restricciones de políticas de la organización que se pueden usar para la protección de CMEK.
Las políticas pueden limitar las claves de Cloud KMS que se pueden usar para la protección de CMEK.
Cuando la API de Memorystore para Redis está en la lista de servicios de la política
Deny
bajo la restricciónconstraints/gcp.restrictNonCmekServices
, la creación de Memorystore para Redis falla en las instancias que no están protegidas por CMEK.Cuando se configura
constraints/gcp.restrictCmekCryptoKeyProjects
, Memorystore para Redis crea instancias protegidas por CMEK que se encriptan con una clave de una organización, carpeta o proyecto permitidos.
Para obtener más información sobre la configuración de las políticas de la organización de CMEK, consulta Políticas de la organización de CMEK.