Claves de encriptación administradas por el cliente

En esta página, se analizan las claves de encriptación administradas por el cliente y cómo se usan en Cloud Storage. Para obtener una guía sobre el uso de esta característica, consulta Usa claves de encriptación administradas por el cliente. Para conocer otras opciones de encriptación, consulta Opciones de encriptación de datos.

Descripción general

Como una capa adicional, sobre las claves de encriptación administradas por Google, puedes elegir usar las claves generadas por Cloud Key Management Service. Estas claves se conocen como claves de encriptación administradas por el cliente. Si usas una clave de encriptación administrada por el cliente, tus claves de encriptación se almacenan en Cloud KMS. El proyecto que contiene tus claves de encriptación puede ser independiente del que contiene tus depósitos, lo que permite una mejor separación de tareas.

¿Cuándo se usa la clave?

Cuando aplicas una clave de encriptación administrada por el cliente a un objeto, Cloud Storage usa la clave para encriptar los siguientes elementos:

  • Los datos del objeto
  • La suma de verificación CRC32C del objeto
  • El hash MD5 del objeto

Cloud Storage usa claves en el lado del servidor estándar para encriptar los metadatos restantes del objeto, incluido el nombre del objeto. Por lo tanto, si tienes permisos suficientes, puedes realizar acciones, como leer la mayoría de los metadatos, enumerar objetos y borrarlos incluso después de inhabilitar o destruir la clave de encriptación administrada por el cliente asociada.

Cuentas de servicio

La encriptación y la desencriptación con claves de encriptación administradas por el cliente se realizan con cuentas de servicio. Una vez que das acceso a tu cuenta de servicio de Cloud Storage a una clave de encriptación, esa cuenta de servicio encripta los siguientes elementos:

Cuando agregas o reescribes un objeto en Cloud Storage, si tienes una clave predeterminada establecida en tu depósito y una clave específica incluida en tu solicitud, se usa la clave específica para encriptar el objeto en Cloud Storage.

Cuando un solicitante desea leer un objeto encriptado con una clave de encriptación administrada por el cliente, simplemente accede al objeto como lo haría normalmente. Durante esta solicitud, la cuenta de servicio descifra automáticamente el objeto solicitado, siempre y cuando se cumplan las siguientes condiciones:

  • La cuenta de servicio todavía tiene permiso para la desencriptación con la clave.
  • No has inhabilitado ni destruido la clave.

Si una de estas condiciones no se cumple, la cuenta de servicio no desencripta los datos y la solicitud falla.

Recursos clave

Un recurso clave de Cloud KMS tiene el siguiente formato:

projects/[PROJECT_STORING_KEYS]/locations/[LOCATION]/keyRings/[KEY_RING_NAME]/cryptoKeys/[KEY_NAME]

Donde:

  • [PROJECT_STORING_KEYS] es el ID del proyecto asociado con la clave. Por ejemplo, my-pet-project.
  • [LOCATION] es la ubicación de la clave. Por ejemplo, US-EAST1.
  • [KEY_RING_NAME] es el nombre del llavero de claves. Por ejemplo, my-key-ring.
  • [KEY_NAME] es el nombre de la clave. Por ejemplo, my-key.

Restricciones

Cuando se usan claves de encriptación administradas por el cliente, se aplican las siguientes restricciones:

  • En la actualidad, las exportaciones de Cloud SQL a Cloud Storage y a Dataflow no admiten objetos encriptados con claves de encriptación administradas por el cliente.

  • No puedes usar el método para copiar objetos de la API de JSON, a menos que el objeto de destino y el de origen usen la misma clave de encriptación administrada por el cliente. Por lo general, debes usar el método para reemplazar objetos.

  • No puedes usar el método de redactar objetos de la API de JSON cuando uno o más objetos de origen se encriptaron con una clave de encriptación administrada por el cliente.

  • No puedes encriptar un objeto con una clave de encriptación administrada por el cliente mediante la actualización de los metadatos del objeto. Incluye la clave como parte de una reescritura del objeto en su lugar.

  • Debes crear la clave de Cloud KMS en la misma ubicación que los datos que deseas encriptar. Por ejemplo, si tu depósito está ubicado en US-EAST1, cualquier objeto de encriptación de claves de Cloud KMS en ese depósito también se debe crear en US-EAST1. Para conocer las ubicaciones disponibles de Cloud KMS, consulta las ubicaciones de Cloud KMS.

  • No puedes especificar una clave de encriptación administrada por el cliente como parte de un Servicio de transferencia de almacenamiento y cualquiera de estas claves en los objetos de origen no se aplica a los objetos transferidos. Configura una clave administrada por el cliente predeterminada en tu depósito antes de realizar la transferencia.

Relación con las claves de encriptación proporcionadas por el cliente

Además de la encriptación administrada por el cliente, en Cloud Storage se ofrecen claves de encriptación proporcionadas por el cliente como una forma de controlar la encriptación de datos. Puedes encriptar diferentes objetos en un solo depósito con diferentes métodos de encriptación, pero ten en cuenta los siguientes elementos:

  • Un mismo objeto solo puede ser encriptado por uno de estos métodos a la vez.

  • Si tienes una clave administrada por el cliente predeterminada para tu depósito y especificas una clave proporcionada por el cliente en una solicitud, Cloud Storage usa la clave proporcionada por el cliente para encriptar el objeto.

  • Puedes configurar una clave predeterminada administrada por el cliente en tu depósito, pero no puedes configurar una clave predeterminada proporcionada por el cliente en tu depósito.

Próximos pasos