Claves de encriptado gestionadas por el cliente (CMEK)

De forma predeterminada, todos los datos en reposo de Firestore con compatibilidad con MongoDB se cifran mediante el cifrado predeterminado de Google. Firestore con compatibilidad con MongoDB gestiona este cifrado por ti sin que tengas que hacer nada más.

Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen tus datos, puedes usar claves de cifrado gestionadas por el cliente (CMEK) para Firestore con compatibilidad con MongoDB. En lugar de que Google gestione las claves de cifrado que protegen tus datos, tu base de datos de Firestore con compatibilidad con MongoDB se protege con una clave que tú controlas y gestionas en Cloud Key Management Service (Cloud KMS).

En esta página se describe CMEK para Firestore con compatibilidad con MongoDB. Para obtener más información sobre la CMEK en general, incluido cuándo y por qué habilitarla, consulta la siguiente documentación de Cloud KMS:

Para obtener instrucciones sobre cómo realizar tareas relacionadas con CMEK con Firestore con compatibilidad con MongoDB, consulta Usar CMEK.

Funciones

Precios

Cloud KMS cobra el coste de la clave y las operaciones criptográficas que se realicen con ella. Para obtener más información, consulta los precios de Cloud KMS.

Se te cobra por los costes de las operaciones cuando Firestore con compatibilidad con MongoDB pide a la clave de Cloud KMS que realice una operación de cifrado o descifrado. La operación de cifrado o descifrado con la clave gestionada por el cliente se produce cada 5 minutos y no se sincroniza con las solicitudes de la base de datos. Los costes suelen ser bajos, dado el número esperado de operaciones criptográficas generadas por Firestore con compatibilidad con MongoDB. Los costes de los registros de auditoría de Cloud son un gasto adicional, pero también se espera que sean generalmente bajos, dado el número previsto de operaciones criptográficas.

No hay costes adicionales de Firestore con compatibilidad con MongoDB por usar una base de datos protegida con CMEK y se sigue aplicando la tarifa de Firestore con compatibilidad con MongoDB.

Si revocas la clave de una base de datos, se te cobrará el coste de almacenamiento en función del tamaño del último día en que la clave estuvo disponible. Seguirás incurriendo en costes de almacenamiento con ese tamaño de base de datos hasta que se elimine o la clave vuelva a estar disponible.

Qué se protege con CMEK

Cuando creas una base de datos de Firestore con compatibilidad con MongoDB protegida con CMEK, tu clave de Cloud KMS se usa para proteger los datos en reposo. Esto incluye los datos que almacenas en un disco o en una unidad flash, como los índices y las copias de seguridad. Se aplican algunas excepciones. Los siguientes tipos de datos se cifran con el cifrado predeterminado de Google y no con la clave CMEK:

  • Datos en tránsito o en memoria
  • Metadatos de bases de datos

Cómo se gestiona un estado de clave no disponible

Las operaciones de cifrado y descifrado no se emiten en todas las solicitudes de datos. En su lugar, el sistema de compatibilidad de Firestore con MongoDB consulta Cloud KMS cada 5 minutos para comprobar si la clave sigue disponible y, a continuación, realiza operaciones de cifrado y descifrado si la clave está disponible.

Si el sistema detecta que la clave no está disponible, en un plazo de 10 minutos, las llamadas posteriores a la base de datos de Firestore con compatibilidad con MongoDB, incluidas las lecturas, las escrituras y las consultas, devolverán un error INVALID_ARGUMENT con el siguiente mensaje:

The customer-managed encryption key required by the requested
resource is not accessible.

Si la base de datos tiene políticas de tiempo de vida (TTL) y se supera algún tiempo de vencimiento mientras la clave no está disponible, la eliminación de datos por TTL se retrasará hasta que se restablezca la clave. Si la base de datos tiene operaciones de larga duración en curso, se verán afectadas de la siguiente manera:

Las claves se consideran no disponibles en cualquier situación en la que se impida intencionadamente que Firestore con compatibilidad con MongoDB acceda a la clave. Entre los datos que recoge se incluyen los siguientes:

Si se restaura la clave, la operación de sondeo detecta que la clave vuelve a estar disponible. El acceso se vuelve a habilitar, normalmente en unos minutos, pero en casos excepcionales puede tardar unas horas. Ten en cuenta que algunas operaciones con claves de Cloud KMS, como inhabilitar o destruir una clave, pueden tardar hasta 3 horas en propagarse. Firestore con compatibilidad con MongoDB no detecta ningún cambio hasta que se aplican en Cloud KMS.

La restauración de una clave implica lo siguiente, en función de la situación:

  • Volver a habilitar una versión de clave inhabilitada.
  • Restaurar una versión de clave eliminada. Antes de eliminarse de forma permanente, se programa la eliminación de una versión de clave. Solo puedes restaurar una clave durante el periodo en el que una versión de clave esté programada para eliminarse. No puedes restaurar una clave que ya se haya destruido permanentemente.
  • Volver a conceder permiso al agente de servicio de Firestore para acceder a la clave.

Consideraciones sobre la rotación de claves

Cuando rotas la clave CMEK, Firestore con compatibilidad con MongoDB vuelve a cifrar la base de datos con la versión principal más reciente de la clave CMEK. Durante el proceso de recifrado, mantén disponibles tanto la versión anterior como la nueva de la clave. Una vez que finalice el reencriptado, si inhabilitas o eliminas las versiones anteriores de la clave de CMEK, no se inhabilitará el acceso a la base de datos, ya que está encriptada con la nueva versión de la clave principal.

También puedes ver las versiones de claves que se están usando para proteger una base de datos. Para obtener más información, consulta Ver la clave en uso.

Consideraciones sobre las claves externas

Cuando usas una clave de Cloud EKM, Google no tiene control sobre la disponibilidad de tu clave gestionada externamente en el sistema del partner de gestión de claves externo.

Si una clave gestionada externamente no está disponible, Firestore con compatibilidad con MongoDB sigue admitiendo operaciones completas en la base de datos mediante una versión almacenada en caché de la clave durante un máximo de una hora.

Si, al cabo de una hora, Firestore con compatibilidad con MongoDB sigue sin poder conectarse a Cloud KMS, empezará a poner la base de datos sin conexión como medida de protección. Las llamadas a la base de datos fallarán y se mostrará un error INVALID_ARGUMENT que incluye información adicional.

Consulta la documentación de Cloud External Key Manager para obtener más información sobre el uso de claves externas.

Copia de seguridad y restauración

Las copias de seguridad utilizan el mismo mecanismo de cifrado que la base de datos a partir de la que se crearon. Cuando una base de datos de Firestore protegida con CMEK y compatible con MongoDB crea una copia de seguridad, la cifra con la versión de la clave principal que se usó en el momento de la creación de la copia de seguridad.

Firestore con compatibilidad con MongoDB crea la primera copia de seguridad de una base de datos CMEK 24 horas después de habilitar las programaciones de copias de seguridad.

Para obtener más información sobre las copias de seguridad de Firestore con compatibilidad con MongoDB, consulta el artículo Crear copias de seguridad y restaurar datos.

Una base de datos restaurada a partir de una copia de seguridad utiliza el mismo mecanismo de cifrado que la copia de seguridad de forma predeterminada. Cuando restauras una base de datos, puedes especificar un tipo de cifrado diferente de una de las siguientes formas:

  • Restaurar en una base de datos CMEK con una clave recién especificada.
  • Restaurar una base de datos que no use CMEK y que utilice el cifrado predeterminado de Google.
  • Restaurar una base de datos que use el mismo cifrado que la copia de seguridad.

Para obtener más información sobre cómo restaurar una base de datos de Firestore con compatibilidad con MongoDB a partir de una copia de seguridad, consulta Restaurar datos a partir de una copia de seguridad de una base de datos. Para obtener más información sobre cómo restaurar una base de datos de Firestore protegida con CMEK con compatibilidad con MongoDB a partir de una copia de seguridad, consulta Restaurar una base de datos protegida con CMEK.

Clonar

De forma predeterminada, una base de datos clonada de otra base de datos usa el mismo mecanismo de cifrado que la base de datos de origen. Cuando clonas una base de datos, puedes especificar un tipo de cifrado diferente de una de las siguientes formas:

  • Clonar en una base de datos CMEK con una clave recién especificada.
  • Clonar en una base de datos que no use CMEK y que utilice el cifrado predeterminado de Google.
  • (Predeterminado) Clonar en una base de datos que use el mismo cifrado que la base de datos de origen.

Para obtener más información sobre cómo clonar una base de datos de Firestore con compatibilidad con MongoDB, consulta Clonar una base de datos. Para obtener más información sobre cómo clonar una base de datos de Firestore protegida con CMEK con compatibilidad con MongoDB, consulta Clonar una base de datos protegida con CMEK.

Seguimiento de teclas

Puedes usar el seguimiento de claves para ver los recursos que protege una clave, como las bases de datos de Firestore con compatibilidad con MongoDB. Para obtener más información sobre el seguimiento de claves, consulta Ver el uso de las claves.

CMEK y disponibilidad de claves

Cuando las claves no están disponibles o están inhabilitadas, ten en cuenta los siguientes comportamientos que pueden producirse en las bases de datos habilitadas para CMEK:

  • Puedes eliminar una base de datos de CMEK que tenga claves no disponibles.

  • Cuando creas una base de datos con CMEK habilitada, las claves inhabilitadas no se muestran en la lista de claves disponibles de la Google Cloud consola. Si introduces manualmente una clave inhabilitada, el proceso de creación de la base de datos fallará y se mostrará un INVALID_ARGUMENT error 400.

Limitaciones

  • No puedes cambiar la clave de una base de datos protegida con CMEK. Puedes rotar, habilitar e inhabilitar claves.

  • No puedes habilitar CMEK en bases de datos que ya tengas. Solo puedes habilitar CMEK en bases de datos nuevas, y debes hacerlo al crear la base de datos. Para migrar datos de una base de datos no protegida con CMEK a una protegida con CMEK, exporta los datos y, a continuación, impórtalos a una nueva base de datos protegida con CMEK. También puedes restaurar o clonar datos de una base de datos que no use CMEK en una que sí lo haga.

  • Firestore admite un número limitado de bases de datos protegidas con CMEK.

Siguientes pasos