Acerca de las claves de encriptación administradas por el cliente (CMEK)

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 esta función claves de encriptación (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 for Redis. Después de agregar las claves de encriptación administradas por el cliente, cuando se realiza una llamada a la API, Memorystore usa tu clave para acceder a los datos.

Memorystore usa claves de encriptación de datos (DEK) administradas por Google y claves. claves de encriptación (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 la y Google administra la KEK de Google. Con claves de encriptación administradas por el cliente, creas 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.

Los siguientes diagramas muestran cómo funciona la encriptación de datos en reposo dentro de un de Memorystore cuando se usa la encriptación predeterminada de Google claves de encriptación administradas por el cliente.

Sin CMEK

Los datos se suben a Google y luego se fragmentan; cada fragmento se encripta con su propia clave de encriptación de datos. Las claves de encriptación de datos se unen mediante una clave de encriptación de claves. Con la encriptación predeterminada de Google, la clave de encriptación de claves se recupera del almacén de claves interno de Google. Los fragmentos encriptados y las claves de encriptación unidas se distribuyen en la infraestructura de almacenamiento de Google.

Con CMEK

Los datos se suben a Google y luego se fragmentan; cada fragmento se encripta con su propia clave de encriptación de datos. Las claves de encriptación de datos se unen mediante una clave de encriptación de claves. En el caso de las CMEK con Cloud KMS, la clave de encriptación de claves se recupera de Cloud KMS. Los fragmentos encriptados y las claves de encriptación unidas se distribuyen en la infraestructura de almacenamiento de Google.

Cuando desencriptes datos unidos con claves de encriptación administradas por el cliente, Memorystore usa la KEK para desencriptar la DEK y la DEK DEK para desencriptar datos en reposo.

Fragmento de datos encriptado con una DEK y almacenado con una DEK unida. Se envía una solicitud al almacenamiento de KMS para separar la DEK, que almacena la KEK no exportable. El almacenamiento de KMS muestra la DEK separada.

¿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 un con CMEK habilitadas.

¿Qué datos se encriptan con CMEK?

Las CMEK encriptan los siguientes tipos de datos:

  • Datos del cliente almacenados en un almacenamiento persistente
  • 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 otorgarle al cloudkms.cryptoKeyEncrypterDecrypter para la 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.

Si quieres obtener instrucciones para otorgar este permiso a la cuenta de servicio, consulta Otorga a la cuenta de servicio acceso a la clave.

Acerca de las claves

En Cloud KMS, es necesario crear un llavero de claves con una clave criptográfica, que use un algoritmo de encriptación o desencriptación simétrica. Cuando creas una instancia de Memorystore nueva, seleccionas esta clave para encriptar la instancia. Puedes crear un solo proyecto para ambas claves instancias 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 de claves debe estar en la misma región que Memorystore for Redis. Una clave multirregional o de región global no el trabajo. 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]

Memorystore no puede acceder a ninguna versión de clave que se encuentre usado (por ejemplo, si inhabilitas la versión de clave), Memorystore se cierra la instancia sin retrasos injustificados. En la consola de Google Cloud, un instancia suspendida muestra un signo de exclamación rojo sobre la herramienta en la pestaña Instancias . Cuando coloques el cursor sobre el cuadro de información, aparecerá "Sin estado". el código fuente. Cuando la clave vuelve a estar accesible, Memorystore reanuda automáticamente la instancia.

¿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 un importación o exportación, debes configurar una clave de encriptación administrada por el cliente en el bucket de Cloud Storage antes exportar datos a ella.

No hay requisitos ni restricciones especiales para importar datos a un bucket de Memorystore cuando los datos se almacenaron previamente en un instancia de Memorystore habilitada con CMEK.

Comportamiento de destruir o inhabilitar una versión de clave CMEK

Si quieres asegurarte de que no se pueda acceder a los datos de tu instancia, puedes hacerlo inhabilitar la versión de clave primaria de tu clave de encriptación administrada por el cliente. Hacer así que apaga la instancia sin retrasos injustificados. Además, Memorystore cierra una instancia sin retrasos injustificados, si corresponde. se inhabilita o se destruye la 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 un ícono rojo notificación de información sobre la herramienta junto a tu instancia en Memorystore para Redis Instancias. El cuadro de información muestra "Sin estado" Cuando el cursor se coloca sobre que la modifica.

Para gcloud, si ejecutas gcloud beta redis instances describe y no consulta state: READY, state: REPAIRING o cualquier otro estado de la instancia metadatos, esto significa que se suspende tu instancia.

Cómo volver a habilitar o restablecer una versión de clave CMEK en uso

Una instancia se muestra después de volver a habilitarla o restablecerla 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 claves de encriptación administradas por el cliente en un de Memorystore.
  • La región de la clave, el llavero de claves y la instancia de Memorystore sean iguales.
  • Debes usar el algoritmo de encriptación o desencriptación simétrica. para tu llave.
  • Las tasas de encriptación y desencriptación de Cloud KMS están sujetas 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 del restricción constraints/gcp.restrictNonCmekServices, Memorystore para Redis la creación falla en las instancias no protegidas con 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.