Docs Menu
Docs Home
/ /
Encriptación a nivel de campo

Cifrado automático a nivel de campo en el lado del cliente

Nota

Característica de la empresa

La función automática de cifrado a nivel de campo solo está disponible en los clústeres MongoDB Enterprise 4.2 o posterior y MongoDB Atlas 4.2 o posterior.

Controladores oficiales compatibles con MongoDB 4.2+, mongosh, y el legado MongoDB 4.2 o posterior mongo El shell admite el cifrado automático de campos en operaciones de lectura y escritura. Para obtener una lista completa de los 4.2controladores oficiales compatibles con + y compatibles con el cifrado de campos del lado del cliente, consulte la Tabla de compatibilidad de controladores.

Las aplicaciones deben crear un objeto de conexión a la base de datos (p. ej.,)MongoClient con la configuración de cifrado automático. Esta configuración debe incluir reglas de cifrado automático que utilicen un subconjunto estricto de la sintaxis estándar del borrador del esquema JSON.4 y palabras clave de esquema específicas de cifrado. Las aplicaciones no tienen que modificar el código asociado con la construcción de la operación de lectura/escritura. Consulte Reglas de cifrado automático para obtener la documentación completa sobre las reglas de cifrado automático.

Los 4.2controladores oficiales compatibles conmongosh MongoDB +,, y el shell 4.2 heredado MongoDB o posterior mongo utilizan la biblioteca compartida de cifrado automático para analizar las reglas de cifrado automático y aplicarlas al leer o escribir documentos:

  • Para las operaciones de escritura, el controlador/shell cifra los valores de campo antes de escribir en la base de datos MongoDB.

  • Para las operaciones de lectura, el controlador/shell cifra los valores de campo en la consulta 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 la creación de un nuevo proceso. mongocryptd aún es compatible. Para obtener más información sobre la biblioteca compartida de cifrado automático, consulte Biblioteca compartida de cifrado automático.

Cada 4.2controlador oficial compatible con MongoDB + incorpora nuevas funciones para el cifrado automático y la gestión de claves de cifrado de datos. Consulte la documentación de su controlador preferido para obtener instrucciones específicas del lenguaje sobre cómo implementar el cifrado automático a nivel de campo del lado del cliente.

mongosh añade una opción adicional al Mongo() método para instanciar una conexión de base de datos con cifrado automático a nivel de campo del lado del cliente. Para ver un ejemplo completo, consulte Conectarse a un clúster con el cifrado automático del lado del cliente habilitado.

El cifrado automático a nivel de campo del lado del cliente requiere acceso a la biblioteca compartida de cifrado automático en el equipo host del cliente. Los controladores oficiales compatibles con MongoDB 4.2+ ofrecen opciones adicionales para administrar la biblioteca compartida de cifrado automático. Generalmente, los 4.2controladores compatibles con + y mongosh pueden acceder a la biblioteca compartida si está en el PATH sistema.

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 +, mongosh y el shell 4.2 MongoDB o posterior heredado mongo necesitan acceso al KMS para cifrar y descifrar campos protegidos o para crear nuevas claves de cifrado de datos.

  • Reglas de cifrado automático por campo utilizando sintaxis de esquema JSON.

A partir de MongoDB,4.2 el servidor admite la validación de esquemas para aplicar el cifrado de campos específicos de una colección. Los clientes que realizan el cifrado automático a nivel de campo del lado del cliente tienen un comportamiento específico según la configuración de la conexión a la base de datos:

  • Si el objeto de conexión ClientSideFieldLevelEncryptionOptions schemaMap contiene una clave para la colección especificada, el cliente utiliza dicho objeto para realizar el cifrado automático a nivel de campo e ignora el esquema remoto. Como mínimo, las reglas locales deben cifrar los campos que el esquema remoto marca como que requieren cifrado.

  • Si el ClientSideFieldLevelEncryptionOptions schemaMap objeto de conexión 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 cuenta con un esquema válido para el cifrado automático a nivel de campo. El cliente solo 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 del cifrado a nivel de campo del lado del servidor al lado del cliente, consulte Aplicar esquema de cifrado a nivel de campo.

Volver

Encriptación a nivel de campo

En esta página