Overview
Aprenda a utilizar el mecanismo de cifrado explícito de cifrado consultable.
El cifrado explícito es un mecanismo en el que usted especifica cómo desea cifrar y descifrar los campos de su documento en cada operación que realiza en su base de datos.
El cifrado explícito está disponible en los siguientes productos MongoDB que utilizan la versión 6.0 o posterior:
Servidor comunitario MongoDB
MongoDB Enterprise Advanced
MongoDB Atlas
Utilice cifrado explícito
Las siguientes secciones proporcionan una visión general del uso de cifrado explícito en tu aplicación habilitada para Queryable Encryption:
Crear una ClientEncryption instancia
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 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.
Nota
Los ejemplos de código no están disponibles actualmente, pero estarán disponibles próximamente.
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 algoritmo
Indexed)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 tus campos automáticamente, debes configurar tu instancia de 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
El descifrado automático está disponible en el servidor comunitario MongoDB
Aunque el cifrado automático requiere MongoDB Enterprise o MongoDB Atlas, el descifrado automático está disponible en los siguientes productos MongoDB que usan la versión 6.0 o posterior:
Servidor comunitario MongoDB
MongoDB Enterprise Advanced
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.
Un cliente que realiza cifrado consultable con el mecanismo de cifrado explícito en una instancia de MongoDB configurada para aplicar el cifrado de ciertos campos debe cifrar esos campos como se especifica en la instancia de MongoDB.
Para aprender a configurar la implementación de cifrado consultable del lado del servidor, consulte Cifrado de campo y capacidad de consulta.
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.