Claves de encriptación administradas por el cliente

Ir a ejemplos

En esta página, se analizan las claves de encriptación administradas por el cliente y cómo se usan en Cloud Storage. Para conocer otras opciones, 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.

Restricciones

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

  • No puedes realizar una composición de objetos cuando uno o más objetos de origen se encriptan 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.

  • Los índices de encriptación y desencriptación de Cloud KMS están sujetas a una cuota.

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 el depósito.

Administración de claves

En esta sección, se analizan las consideraciones para rotar claves, reemplazar claves e inhabilitar o destruir versiones de clave.

Rotación de claves

Cloud KMS admite la rotación de claves automática y manual a una versión nueva. Después de rotar una clave, Cloud Storage usa la versión nueva para todas las operaciones de encriptación con la clave, como se muestra a continuación:

  • El objeto se sube cuando el depósito de destino usa la clave como su clave de encriptación predeterminada.

  • Operaciones de carga, copia y reescritura de objeto que usan de forma específica la clave en la operación.

Las versiones anteriores de la clave no están inhabilitadas ni destruidas, por lo que Cloud Storage aún puede desencriptar los objetos existentes que se encriptaron antes mediante esas versiones.

Reemplazo de claves

Usa los siguientes lineamientos cuando reemplaces la clave que usas para encriptar objetos de Cloud Storage por una clave nueva:

  1. Verifica tus depósitos para ver cuál usa la clave como clave de encriptación predeterminada. En estos depósitos, reemplaza la clave antigua por una nueva.

    Esto garantiza que todos los objetos escritos en el depósito usen la clave nueva en el futuro.

  2. Inspecciona el código fuente para identificar qué solicitudes usan la clave en operaciones en curso, como el establecimiento de opciones de configuración de depósitos y la carga, la copia o la reescritura de objetos. Actualiza estas instancias para que usen la clave nueva.

  3. Verifica los objetos encriptados con la clave antigua en todos tus depósitos. Usa el método de reescritura de objetos para volver a encriptar cada objeto con la clave nueva.

  4. Inhabilita todas las versiones de la clave antigua. Después de inhabilitar las versiones antiguas de la clave, supervisa los registros del cliente y del servicio para las operaciones que fallan debido a que una versión dejó de estar disponible.

Inhabilita o destruye una versión de clave

  • Cuando inhabilitas o destruyes una versión de clave específica, no puedes desencriptar ningún objeto que esté encriptado con esa versión de clave.

    Por ejemplo, no puedes descargar, copiar ni reescribir el objeto y, si intentas hacerlo, se produce un error.

    • Si inhabilitas una versión de clave, puedes volver a habilitarla. Una vez que la vuelves a habilitar, podrás acceder a los objetos que se encriptaron con ella.

    • Si una versión de clave se destruye de forma permanente, no se podrán descargar objetos encriptados con esa versión nunca más.

    Antes de inhabilitar o destruir una versión de clave, debes identificar todos los objetos en todos los depósitos que se encriptaron con la versión de clave específica. Una vez que se identifican, usa el método de reescritura de objetos a fin de volver a encriptar cada objeto con una versión de clave nueva, con una clave nueva o con claves del servidor.

  • Cuando inhabilitas o destruyes la versión principal de una clave, no puedes usar esa clave para la encriptación hasta que tengas una versión principal nueva. Por ejemplo, sin una versión principal, no puedes hacer lo siguiente:

    • No puedes especificar la clave como parte de la carga, la copia o la reescritura de un objeto.

    • No puedes subir, copiar ni reescribir objetos en un depósito que tenga la clave establecida como su clave de encriptación predeterminada, a menos que especifiques una clave válida diferente como parte de la operación.

    Una vez que tengas una versión principal de tu clave, las operaciones que la usen para encriptar los objetos se completarán con éxito.

    Antes de inhabilitar o destruir la versión principal de una clave, debes dejar de usarla como la versión principal. Puedes hacerlo de la siguiente manera:

    • Reemplázala por una versión principal nueva, por lo general, mediante una rotación de claves.
    • Quita las instancias en las que uses la clave para encriptar. Cuando lo hagas, Cloud Storage usará claves del servidor para la encriptación.

Próximos pasos