Overview
Aprende cómo usar el mecanismo de cifrado explícito de Queryable Encryption. El cifrado explícito te permite especificar el material clave utilizado para cifrar campos. Ofrece un control granular sobre la seguridad, a costa de una mayor complejidad al configurar colecciones y escribir código para los controladores de MongoDB.
El cifrado explícito es un mecanismo en el que se especifica cómo cifrar y descifrar campos en el documento para cada operación que se realiza en la base de datos.
El cifrado explícito está disponible en los siguientes productos de MongoDB:
MongoDB Community Server
MongoDB Enterprise Advanced
MongoDB Atlas
Usa cifrado explícito
Crear una instancia de ClientEncryption
ClientEncryption es una abstracción utilizada en todos los controladores y
mongosh que encapsula la Colección de Bóvedas de Llaves y KMS operaciones involucradas en el cifrado explícito.
Para crear una instancia de ClientEncryption, especifique:
Un objeto
kmsProvidersconfigurado con acceso al proveedor de KMS que aloja su Clave Maestra de Cliente.El espacio de nombres de tu Colección de Bóvedas de Llaves
Si utiliza MongoDB Community servidor, configure la opción
bypassQueryAnalysisenTrueUna
MongoClientinstancia con acceso a tu Colección de Bóvedas de Llaves
Para más opciones de ClientEncryption, consulte Opciones de MongoClient para Queryable Encryption.
Cifrar campos en operaciones de lectura y escritura
Debe actualizar las operaciones de lectura y guardado en toda su aplicación para que esta cifre los campos antes de realizar operaciones de lectura y guardado.
Para cifrar campos, utiliza el método encrypt de tu instancia de ClientEncryption. Especifica lo siguiente:
El valor a cifrar
El algoritmo utilizado, ya sea
IndexedoUnindexedEl ID de la llave de cifrado de datos
El factor de contención (si se utiliza el algoritmo
Indexed)En caso de realizar una operación de lectura, configura el tipo de query definido para tu campo (si estás usando el algoritmo
Indexed)
Nota
Tipos de consulta
El tipo de query solo se aplica a las operaciones de lectura.
Para aprender más sobre los tipos de consultas, ver Tipos de consultas.
Elección de algoritmo
Use el algoritmo Indexed si especifica un queryType en el campo.
Indexed admite queries de igualdad. Los campos de Indexed requieren un índice en el servidor. El índice se crea especificando la opción encryptedFields en db.createCollection().
Descifrado automático
Para descifrar campos automáticamente, configura tu instancia de MongoClient de la siguiente manera:
Especifica un objeto
kmsProvidersEspecifique su Colección de Bóvedas de Llaves
Si utiliza MongoDB Community servidor, configure la opción
bypassQueryAnalysisenTrue
Nota
Descifrado automático en MongoDB Community servidor
El descifrado automático está disponible en MongoDB Community servidor. El cifrado automático requiere MongoDB Enterprise o MongoDB Atlas.
Aplicación de cifrado a nivel de campo del lado del servidor
Especificar Campos para Cifrado para aplicar el cifrado de campos específicos en una colección.
Indexed los campos requieren un índice en el servidor. El índice se crea especificando la opción encryptedFields en db.createCollection().
Si tu instancia de MongoDB aplica el cifrado de campos específicos, cualquier cliente que realice Queryable Encryption con cifrado explícito debe cifrar esos campos según lo especificado. Para aprender cómo configurar la aplicación de Queryable Encryption del lado del servidor, consulta Cifrado de campo y capacidad de consulta.
Obtén más información
Para obtener más información sobre las Colecciones de Bóvedas de Llaves, las llaves de cifrado de datos y las llaves maestras de cliente, consulta Claves y Key Vaults.
Para obtener más información sobre los proveedores KMS y objeto{s kmsProviders, consulte Proveedores KMS.