Claves de encriptación administradas por el cliente (CMEK)

De forma predeterminada, todos los datos en reposo en Firestore en modo Datastore se encriptan con la encriptación predeterminada de Google. Firestore en modo Datastore controla y administra esta encriptación sin que debas realizar ninguna acción adicional.

Si tienes requisitos regulatorios o de cumplimiento específicos relacionados con las claves que protegen tus datos, puedes usar claves de encriptación administradas por el cliente (CMEK) para Firestore en modo Datastore. En lugar de que Google administre las claves de encriptación que protegen tus datos, tu base de datos de Firestore en modo Datastore está protegida con una clave que controlas y administras en Cloud Key Management Service (Cloud KMS).

En esta página, se describen CMEK para Firestore en modo Datastore. Para obtener más información sobre las CMEK en general, incluido cuándo y por qué habilitarlas, consulta la documentación de Cloud KMS. Para obtener instrucciones sobre cómo realizar tareas relacionadas con CMEK con Firestore en modo Datastore, consulta Usa CMEK.

Funciones

  • Control de datos: CMEK te permite administrar el acceso a la clave de KMS. Puedes rotar, inhabilitar y destruir la clave que se usa para encriptar los datos en reposo en tu base de datos de Firestore en modo Datastore.
  • Rendimiento: CMEK no afecta el ANS de Firestore.
  • Auditabilidad: Si habilitas el registro de auditoría para Cloud KMS, todas las operaciones de la clave se registran y se pueden ver en Cloud Logging.
  • Restricciones de la política de la organización: Puedes usar las restricciones de la política de la organización de CMEK para especificar los requisitos de cumplimiento de encriptación de las bases de datos de Firestore en modo Datastore de tu organización.

Precios

Cloud KMS cobra por el costo de la clave y por todas las operaciones criptográficas realizadas con ella. Consulta los precios de Cloud KMS para obtener más detalles.

Se te facturan los costos de operación cuando Firestore en modo Datastore solicita a la clave de Cloud KMS que realice una operación de encriptación o desencriptación. La encriptación o la desencriptación no están sincronizadas con tu solicitud. Se hace cada 5 minutos con un sondeo de Cloud KMS. Por lo general, los costos son bajos, debido a la cantidad esperada de operaciones criptográficas que Firestore genera en el modo Datastore. Los costos de los registros de auditoría de Cloud son un gasto adicional, pero también se espera que sean generalmente bajos, dada la cantidad esperada de operaciones criptográficas.

No se aplican costos adicionales de Firestore en modo Datastore por usar una base de datos protegida con CMEK, y se siguen aplicando los precios de Firestore en modo Datastore.

Si revocas tu clave a una base de datos, el costo de almacenamiento se cobrará según el tamaño del último día en que la clave estuvo disponible. Se seguirán generando costos de almacenamiento en ese tamaño de base de datos hasta que se borre o la clave vuelva a estar disponible.

Qué se protege con CMEK

Cuando creas una base de datos de Firestore protegida con CMEK, se usa tu clave de Cloud KMS para proteger los datos en reposo. Esto incluye los datos almacenados en el disco o la memoria flash. Se aplican algunas excepciones. Los siguientes tipos de datos se encriptan con la encriptación predeterminada de Google y no con la clave CMEK:

  • Datos en tránsito o en memoria
  • Metadatos de la base de datos

Cómo se controla un estado de clave no disponible

Las operaciones de encriptación y desencriptación no se emiten en todas las solicitudes de datos. En cambio, el sistema Firestore sondea Cloud Key Management Service cada 5 minutos para verificar si la clave aún está disponible y, luego, realiza operaciones de encriptación y desencriptación si la clave está disponible. Si el sistema detecta que la clave no está disponible, en un plazo de 10 minutos, cualquier llamada posterior a la base de datos de Firestore, incluidas las lecturas, las escrituras y las consultas, mostrará un error FAILED_PRECONDITION con el 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 actividad (TTL) y si se exceden los tiempos 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 operaciones de import o exportación de datos dejarán de progresar y se marcarán como Failed. Las operaciones con errores no se volverán a intentar si se restablece la clave.
  • Las operaciones de compilación de índices y las operaciones en las que se habilitan políticas de TTL nuevas dejarán de progresar. Se volverán a intentar las operaciones detenidas si se restablece la clave.

Las claves se consideran no disponibles en cualquier situación que no permita a Firestore acceder a ellas de forma intencional. Esto incluye lo siguiente:

Si se restablece la clave, la operación de sondeo detecta que la clave está nuevamente disponible. El acceso se vuelve a habilitar, por lo general, en unos minutos, pero puede tardar unas horas en casos excepcionales. Ten en cuenta que algunas operaciones en claves de Cloud KMS, como inhabilitar o destruir una clave, pueden tardar hasta 3 horas en propagarse. Firestore no detecta ningún cambio hasta que entren en vigencia en Cloud KMS.

El restablecimiento de una clave implica lo siguiente, según la situación:

  • Vuelve a habilitar una versión de clave inhabilitada.
  • Restablecer una versión de clave destruida. Antes de destruirse de manera permanente, se programa la destrucción de una versión de clave. Solo puedes restablecer una clave durante el período en el que está programada la destrucción de una clave. No puedes restablecer una clave que ya se destruyó de forma permanente.
  • Volver a otorgar permiso al agente de servicio de Firestore para acceder a la clave

Consideraciones de claves externas

Cuando usas una clave de Cloud EKM, Google no tiene control sobre la disponibilidad de tu clave administrada de forma externa en el sistema de socios de administración de claves externas.

Si una clave administrada de forma externa no está disponible, Firestore en modo Datastore seguirá admitiendo operaciones completas de base de datos mediante una versión almacenada en caché de la clave, hasta por una hora.

Después de una hora, si Firestore en modo Datastore aún no puede conectarse con Cloud KMS, Firestore en modo Datastore comienza a desconectar la base de datos como medida de protección. Las llamadas a la base de datos fallarán con un error FAILED_PRECONDITION que incluye detalles adicionales.

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

Limitaciones

  • No se admite el cambio de una clave de una base de datos protegida con CMEK. Se admiten la rotación, la habilitación y la inhabilitación de claves.
  • Las programaciones de copias de seguridad y las operaciones de restablecimiento no son compatibles con las bases de datos protegidas por CMEK. Puedes usar la recuperación de un momento determinado (PITR) para la recuperación ante desastres.
  • Las bases de datos protegidas por CMEK admiten Key Visualizer solo para los datos de entidades y documentos, no para los de índice.
  • No puedes habilitar CMEK en bases de datos existentes. Solo puedes habilitar CMEK en bases de datos nuevas y debes habilitarlas cuando crees la base de datos. Para migrar datos de una base de datos existente que no usa CMEK a una base de datos protegida con CMEK, expórtalos y, luego, impórtalos a una base de datos nueva protegida con CMEK.
  • El seguimiento de claves no es compatible con las bases de datos protegidas por CMEK.
  • Durante la versión preliminar, Firestore admitirá una cantidad limitada de bases de datos protegidas por CMEK.

¿Qué sigue?