Nota
Característica de la empresa
La funcionalidad automática del cifrado a nivel de campo solo está disponible en MongoDB Enterprise 4.2 o posterior y en los clústeres de MongoDB Atlas 4.2 o posterior.
Overview
Controladores oficiales de MongoDB compatibles con la versión 4.2+ mongosh, y el legado MongoDB 4.2 o posterior mongo Shell compatible con el cifrado automático de campos durante operaciones de lectura y escritura. Para obtener una lista completa de los controladores oficiales compatibles con 4.2+ que admiten el cifrado a nivel de campo del lado del cliente, consulte la Tabla de compatibilidad de controladores.
Las aplicaciones deben crear un objeto de conexión a base de datos (por ejemplo, MongoClient) con los parámetros de configuración de cifrado automático. Los ajustes de configuración deben incluir reglas de cifrado automático mediante un subconjunto estricto de la sintaxis estándar del JSON Schema Draft 4 y palabras clave específicas del esquema de cifrado. Las aplicaciones no tienen que modificar el código asociado a la construcción de la operación de lectura/guardado. Consulta Reglas de cifrado automático para obtener la documentación completa sobre las reglas de cifrado automático.
Los drivers compatibles oficiales de MongoDB 4.2+ , mongosh, y el shell heredado de MongoDB 4.2 o posterior mongo utilizan la Biblioteca de cifrado automático para analizar las reglas de cifrado automático y aplicar las reglas de cifrado al leer o escribir documentos:
Para las operaciones de guardar, el driver/shell cifra los valores de los campos antes de guardar en la base de datos de MongoDB.
Para las operaciones de lectura, el driver/shell cifra los valores de campo en la query antes de emitir la operación de lectura.
Para las operaciones de lectura que devuelven campos cifrados, el controlador/shell descifra automáticamente los valores cifrados solo si el controlador/shell se configuró con acceso a las claves utilizadas para proteger esos valores.
La biblioteca compartida de cifrado automático es una alternativa preferida a mongocryptd y no requiere iniciar un nuevo proceso. mongocryptd sigue siendo compatible. Para obtener más información sobre la Librería compartida de encriptación automática, consulta Librería compartida de encriptación automática.
Habilitar cifrado a nivel de campo del lado del cliente automático
Cada controlador oficial compatible con MongoDB 4.2+ introduce nuevas funcionalidades para admitir el cifrado automático y la gestión de llaves de cifrado de datos. Consulta la documentación de tu driver preferido para obtener instrucciones específicas sobre cómo implementar el cifrado automático a nivel de campo del lado del cliente.
mongosh añade una opción adicional al método Mongo() para instanciar una conexión de base de datos con cifrado automático a nivel de campo del lado del cliente. Para un ejemplo completo, consulta Conéctate a un clúster con cifrado automático en el lado del cliente habilitado.
El cifrado automático a nivel de campo del lado del cliente requiere acceso a la librería compartida de cifrado automático en la máquina host cliente. Los drivers oficiales compatibles con MongoDB 4.2+ tienen opciones adicionales para gestionar la librería compartida de cifrado automático. Generalmente, los drivers compatibles con 4.2+ y mongosh pueden acceder a la librería compartida si está en el sistema PATH.
Las aplicaciones deben especificar los siguientes componentes al crear una instancia de la conexión a la base de datos para habilitar el cifrado automático a nivel de campo del lado del cliente:
Un almacén de claves de cifrado de datos. Este almacén puede residir en un clúster remoto de MongoDB o en el clúster de MongoDB que almacena los datos cifrados del lado del cliente.
Un proveedor de Servicio de Gestión de Claves (KMS) compatible utilizado para gestionar llaves maestras de cliente (CMK). MongoDB cifra todas las claves de cifrado de datos utilizando la llave maestra de cliente especificada antes de almacenarlas en el Key Vault, dejando únicamente los metadatos sin cifrar.
4.2Los controladores compatibles con +,
mongoshy el shell 4.2 MongoDB o posterior heredadomongonecesitan acceso al KMS para cifrar y descifrar campos protegidos o para crear nuevas claves de cifrado de datos.Reglas automáticas por campo para el cifrado usando la sintaxis del JSON schema.
Aplicación de cifrado a nivel de campo del lado del servidor
A partir de MongoDB 4.2, el servidor permite utilizar la validación de esquema para aplicar el cifrado de campos específicos en una colección. Los clientes que realizan cifrado automático a nivel de campos del lado del cliente tienen un comportamiento específico dependiendo de la configuración de conexión de la base de datos:
Si la conexión
ClientSideFieldLevelEncryptionOptionsschemaMapobjeto contiene una clave para la colección especificada, el cliente utiliza ese objeto para realizar el cifrado automático a nivel de campo e ignora el esquema remoto. Como mínimo, las reglas locales deben cifrar aquellos campos que el esquema remoto marca como que requieren cifrado.Si la conexión
ClientSideFieldLevelEncryptionOptionsschemaMapobjeto no contiene una clave para la colección especificada, el cliente descarga el esquema remoto del lado del servidor para la colección y lo utiliza para realizar el cifrado automático a nivel de campo.Esta configuración requiere que el cliente confíe en que el servidor tiene un esquema válido con respecto al cifrado automático a nivel de campo. El cliente sólo utiliza el esquema remoto para realizar el cifrado automático a nivel de campo y no aplica ninguna otra regla de validación especificada en el esquema.
Para obtener documentación completa sobre la aplicación de cifrado a nivel de campo del lado de servidor y del lado de cliente, consulta Aplicar esquema de cifrado a nivel de campo.