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

En esta página, se describe el funcionamiento de las claves de encriptación administradas por el cliente con Cloud SQL. Para usar esta función de inmediato, consulta lasclaves 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 Cloud SQL. Una vez que agregues las claves de encriptación administradas por el cliente, Cloud SQL usará tu clave para acceder a los datos cada vez que se realice una llamada a la API.

Cloud SQL usa claves de encriptación de datos (DEK) administradas por Google y claves de encriptación de claves (KEK) para encriptar Cloud SQL. Existen dos niveles de encriptación:

  1. La DEK encripta datos.
  2. La KEK encripta la DEK.

La instancia de Cloud SQL 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 almacenan dentro de un servicio administrado que se llama Cloud Key Management Service (Cloud KMS).

En los siguientes diagramas, se muestra el funcionamiento de la encriptación de datos en reposo dentro de una instancia de Cloud SQL cuando se usa la encriptación predeterminada de Google y cuando se usan las 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.

Durante el proceso de desencriptación de datos unidos con claves de encriptación administradas por el cliente, Cloud SQL usa la KEK para desencriptar la DEK, y la DEK no encriptada a fin de desencriptar los 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 Cloud SQL con las claves CMEK?

Operación Notas
Creación de una instancia Cuando creas la instancia, la configuras para que use claves de encriptación administradas por el cliente.
Creación de copias de seguridad Durante la creación de copias de seguridad de una instancia habilitada para CMEK, las claves de encriptación administradas por el cliente encriptan los datos del usuario, como sus consultas y las respuestas obtenidas. Las copias de seguridad de una instancia con CMEK habilitadas heredan la encriptación de la instancia de origen con la misma clave de Cloud KMS.
Restablecimiento de la instancia Durante el restablecimiento de una instancia habilitada para CMEK, Cloud SQL usa la clave a fin de acceder a los datos de la copia de seguridad de la instancia que se está restableciendo. Cuando se restablece a una instancia diferente, la instancia de destino puede usar una clave distinta para la encriptación.
Creación de réplicas Las réplicas de lectura y conmutación por error de una instancia habilitada para usar CMEK heredan la encriptación de las CMEK con la misma clave de Cloud KMS que la instancia principal.
Creación de clones Los clones de una instancia habilitada para CMEK heredan la encriptación CMEK con la misma clave de Cloud KMS que la instancia de origen.
Actualización de la instancia Durante las actualizaciones de una instancia habilitada para CMEK, Cloud SQL verifica la clave CMEK.

¿Qué ubicaciones admiten instancias de Cloud SQL con CMEK habilitadas?

CMEK está disponible en todas las ubicaciones de instancias de Cloud SQL.

Información sobre las cuentas de servicio

Cuando las instancias de Cloud SQL tienen CMEK habilitadas, debes usar una cuenta de servicio para solicitar acceso a la clave desde Cloud KMS.

Para usar una clave de encriptación administrada por el cliente en un proyecto, debes tener una cuenta de servicio y otorgarle acceso a ella a la clave de encriptación administrada por el cliente. La cuenta de servicio debe existir dentro del proyecto. La cuenta de servicio es visible en todas las regiones.

Si usas Console para crear una instancia, Cloud SQL crea de forma automática la cuenta de servicio la primera vez que eliges la opción Clave administrada por el cliente (si una cuenta de servicio aún no existe). No necesitas tener permisos especiales en la cuenta de usuario cuando Cloud SQL crea la cuenta de servicio de manera automática.

Información sobre las claves

En Cloud KMS, es necesario crear un llavero de claves con una clave criptográfica que esté configurado con una ubicación. Cuando crees una instancia de Cloud SQL nueva, selecciona esta clave para encriptar la instancia.

Cuando crees instancias de Cloud SQL nuevas que usen claves de encriptación administradas por el cliente, debes conocer el ID y la región de la clave. Debes ubicar las instancias de Cloud SQL nuevas en la misma región en la que se encuentra la clave de encriptación administrada por el cliente que está asociada con la instancia. Puedes crear un solo proyecto para las instancias y las claves de Cloud SQL, o proyectos diferentes.

Las claves de encriptación administradas por el cliente usan este formato:

projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]

Cuando se inhabilita la versión de clave, Cloud SQL suspende las instancias encriptadas con esa versión. Cuando vuelvas a habilitar la versión de clave, Cloud SQL restablece las instancias encriptadas con esa versión.

Cuando se rotan las claves, las instancias encriptadas con esas claves no se vuelven a encriptar con la versión nueva de la clave primaria.

¿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 exportación o importación, debes establecer una clave de encriptación administrada por el cliente en el depósito de Cloud Storage antes de exportar los datos a él. No hay requisitos ni restricciones especiales para importar datos a una instancia nueva cuando los datos se almacenaron con anterioridad en una instancia habilitada con una clave de encriptación administrada por el cliente.

Restricciones

Las siguientes restricciones se aplican cuando se usan claves de encriptación administradas por el cliente:

  • No puedes habilitar las claves de encriptación administradas por el cliente en una instancia existente.
  • No puedes rotar versiones de clave en instancias existentes.
  • No puedes asignar una versión de clave diferente a una réplica.
  • No puedes asignar una versión de clave diferente a un clon.
  • No puedes usar claves de encriptación administradas por el cliente para encriptar lo siguiente:
    • Servidores externos (instancias principales externas y réplicas externas)
    • Metadatos de instancias, como el ID de la instancia, la versión de la base de datos, el tipo de máquina, las marcas, la programación de copias de seguridad, etcétera
  • No puedes usar claves de encriptación administradas por el cliente para encriptar datos del usuario en tránsito, como consultas de usuario y las respuestas obtenidas.

Próximos pasos