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

Según la configuración predeterminada, todos los datos en reposo en Firestore se encriptan con la encriptación predeterminada de Google. Firestore 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 lugar de que Google administre las claves de encriptación que protegen tus datos, tu base de datos de Firestore se protege con una clave que controlas y administras en Cloud Key Management Service (Cloud KMS).

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

Funciones

  • Control de datos: Las CMEK te permiten 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.
  • Rendimiento: Las CMEK no afectan el ANS de Firestore.
  • Auditabilidad: Si habilitas el registro de auditoría para Cloud KMS, todas las operaciones en la clave se registran y pueden verse en Cloud Logging.
  • Restricciones de las políticas de la organización: Puedes usar restricciones de las políticas de la organización de CMEK para especificar los requisitos de cumplimiento de encriptación para las bases de datos de Firestore 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 facturarán los costos de operación cuando Firestore le solicite 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 mediante un sondeo de Cloud KMS. Los costos suelen ser bajos debido a la cantidad esperada de operaciones criptográficas generadas por Firestore. Los costos de los Registros de auditoría de Cloud son un gasto adicional, pero también se espera que sean, en general, bajos, si se tiene en cuenta la cantidad esperada de operaciones criptográficas.

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

Si revocas la clave a una base de datos, el costo de almacenamiento se cobrará en función del tamaño del último día en que la clave estuvo disponible. Se seguirán generando costos de almacenamiento con ese tamaño de base de datos hasta que se borre la base de datos 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 que se almacenan en el disco o en 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 su lugar, el sistema de 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 operaciones de lectura, escritura y consulta) 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 plazos de vencimiento cuando 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 que impida de forma intencional que Firestore acceda a la clave. Esto incluye lo siguiente:

Si se restablece la clave, la operación de sondeo detecta que esta volvió a estar disponible. El acceso se vuelve a habilitar, por lo general, en minutos, pero puede tardar algunas horas en casos excepcionales. Ten en cuenta que algunas operaciones en las 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 se aplica 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.
  • Restablece 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 versión de clave. No puedes restablecer una clave que ya se destruyó de forma permanente.
  • Vuelve a otorgar el permiso del 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 sigue admitiendo operaciones completas de bases de datos con una versión de la clave almacenada en caché, hasta por una hora.

Después de una hora, si Firestore aún no puede conectarse con Cloud KMS, 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 consideraciones cuando uses claves externas.

Limitaciones

  • No se admite cambiar una clave de una base de datos protegida con CMEK. Se admite la rotación, la habilitación y la inhabilitación de claves.
  • Los programas 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 datos de entidades y documentos, no para datos de índice.
  • No puedes habilitar las CMEK en las bases de datos existentes. Puedes habilitar CMEK solo en bases de datos nuevas. Debes habilitarla cuando crees la base de datos. Para migrar datos de una base de datos existente que no es de CMEK a una base de datos protegida con CMEK, exporta los datos y, luego, impórtalos a una base de datos nueva protegida con CMEK.
  • El seguimiento de claves no es compatible con la base de datos protegida con CMEK.
  • Durante la versión preliminar, Firestore admitirá una cantidad limitada de bases de datos protegidas con CMEK.

¿Qué sigue?