Overview
Aprenda a usar el mecanismo de cifrado explícito de Queryable Encryption. El cifrado explícito le permite especificar el material de clave utilizado para cifrar los campos. Proporciona un control preciso de 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 usted especifica cómo cifrar y descifrar los campos de su documento para cada operación que realiza en su base de datos.
El cifrado explícito está disponible en los siguientes productos MongoDB:
Servidor comunitario MongoDB
MongoDB Enterprise Advanced
MongoDB Atlas
Utilice 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 Key Vault y OperacionesKMS involucradas en cifrado explícito.
Para crear una instancia ClientEncryption, especifique:
Un
kmsProvidersobjeto configurado con acceso al proveedor KMS que aloja su clave maestra de clienteEl espacio de nombres de su colección de Key Vault
Si utiliza MongoDB Community Server, configure la opción
bypassQueryAnalysisenTrueUna instancia
MongoClientcon acceso a su colección de Key Vault
Para obtener más ClientEncryption opciones,consulte Opciones de MongoClient para cifrado consultable.
Cifrar campos en operaciones de lectura y escritura
Debe actualizar las operaciones de lectura y escritura en toda su aplicación de modo que ésta encripte los campos antes de realizar operaciones de lectura y escritura.
Para cifrar campos, utilice el método encrypt de su instancia ClientEncryption. Especifique lo siguiente:
El valor a cifrar
El algoritmo utilizado, ya sea
IndexedoUnindexedEl ID de la clave de cifrado de datos
El factor de contención (si está utilizando el
Indexedalgoritmo)Si realiza una operación de lectura, configure el tipo de consulta definido para su campo (si está utilizando el algoritmo
Indexed)
Nota
Tipos de consulta
El tipo de consulta solo se aplica a operaciones de lectura.
Para obtener más información sobre los tipos de consulta, consulte Tipos de consulta.
Elección de algoritmo
Utilice el algoritmo Indexed si especifica un queryType en el campo.
Indexed Admite consultas deIndexed igualdad. Los campos requieren un índice en el servidor. El índice se crea especificando la encryptedFields opción db.createCollection() en.
Descifrado automático
Para descifrar campos automáticamente, configure su instancia MongoClient de la siguiente manera:
Especifique un objeto
kmsProvidersEspecifique su colección de Key Vault
Si utiliza MongoDB Community Server, configure la opción
bypassQueryAnalysisenTrue
Nota
Descifrado automático en el servidor comunitario MongoDB
El descifrado automático está disponible en MongoDB Community Server. El cifrado automático requiere MongoDB Enterprise o MongoDB Atlas.
Aplicación del 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 encryptedFields opción db.createCollection() en.
Si su instancia de MongoDB exige el cifrado de campos específicos, cualquier cliente que utilice cifrado consultable con cifrado explícito debe cifrar dichos campos según lo especificado. Para saber cómo configurar el cifrado consultable en el servidor, consulte Cifrado de campos y consultabilidad.
Obtén más información
Para obtener más información sobre las colecciones de Key Vault, las claves de cifrado de datos y las claves maestras de cliente, consulte Claves y bóvedas de claves.
Para obtener más información sobre los proveedores de KMS y los kmsProviders objetos, consulte Proveedores de KMS.