Overview
El cifrado explícito proporciona un control preciso de la seguridad, a costa de una mayor complejidad al configurar colecciones y escribir código para los controladores MongoDB. Con el cifrado explícito, se especifica cómo cifrar los campos del documento para cada operación que se realiza en la base de datos e incluye esta lógica en toda la aplicación.
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 más opciones ClientEncryption, 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:
Indexed,UnindexedoRangeEl ID de la clave de cifrado de datos
El factor de contención (si está utilizando el
IndexedRangealgoritmo o)Si está realizando una operación de lectura utilizando el algoritmo
IndexedoRange, configure el tipo de consulta definido para su campo.Las opciones
rangemín, máx (si se está usando elRangealgoritmo)
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 y comportamiento admitidos.
Elección de algoritmo
Utilice el algoritmo Indexed o Range si especifica un queryType en el campo.
Indexed Admite consultasRange de igualdad. admite consultasIndexed Range de rango. Los campos y requieren un índice en el servidor. El índice se crea especificando la encryptedFields opción db.createCollection() en.
Nota
A partir de MongoDB 8.0, el algoritmo de Queryable Encryption rangePreview queda obsoleto y se elimina. Utiliza el algoritmo range en su lugar.
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
Pasos para aplicar el cifrado de campos específicos en una colección.
Indexed Los Range 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 el 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 Campos cifrados y consultas habilitadas.
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 de cifrado y Key Vaults.
Para obtener más información sobre los proveedores de KMS y los kmsProviders objetos, consulte Proveedores de KMS.