Docs Menu
Docs Home
/ /

Limitaciones

Tenga en cuenta estas limitaciones y restricciones antes de habilitar el cifrado consultable. Algunas operaciones no son compatibles y otras se comportan de forma diferente.

El cifrado consultable es incompatible con Búsqueda en Atlas de MongoDB.

Al habilitar Queryable Encryption en una colección, se eliminan los campos de algunos comandos de diagnóstico y se omiten algunas operaciones del registro de las query. Esto limita los datos disponibles para los ingenieros de soporte de MongoDB, especialmente cuando analizan el rendimiento de las query. Para medir el impacto de las operaciones en las colecciones cifradas, utiliza una herramienta de supervisión de rendimiento de aplicaciones de terceros para recopilar métricas.

Para obtener más detalles, consulte la sección Redacción.

El factor de contención es una configuración que ayuda a optimizar el rendimiento en función del número de operaciones simultáneas. Si no se configura, la contención utiliza un valor predeterminado de 8, que proporciona un alto rendimiento para la mayoría de las cargas de trabajo.

Solo se puede establecer el factor de contención al especificar un campo para cifrado. Una vez especificado un campo para cifrado, el factor de contención es inmutable.

Para obtener más información, consulte Configurar el factor de contención.

Ejecute manualmente la compactación 1 de la colección de metadatos cuando supere los GB. La compactación reduce el tamaño de las colecciones de metadatos asociadas a los campos cifrados y mejora el rendimiento.

No modifique el encryptedFieldsMap pasado a su MongoClient. Esto podría provocar un comportamiento inesperado e incorrecto al realizar consultas.

El mongod solo almacena el valor cifrado y aplica cualquier expresión de agregación u operador de consulta que especifique un campo cifrado BinData al BinData valor. Si bien la expresión u operador puede admitir BinData campos, el valor resultante puede ser incorrecto o inesperado en comparación con la ejecución de la misma expresión u operador con el valor descifrado. El mongod genera un error si la expresión u operador no admite BinData valores.

Para mejorar la seguridad, el cifrado consultable elimina campos de algunos comandos de diagnóstico en colecciones cifradas y omite ciertas operaciones del registro de consultas. Una colección cifrada es cualquier colección con la opción encryptedFields.

Las operaciones CRUD a continuación se omiten del registro de consultas de operaciones lentas y de la colección del Generador de perfiles system.profile de base de datos cuando las ejecuta en una colección cifrada.

El collStats comando y $collStats la etapa de agregación:

  • Omit "queryExecStats"

  • Omit "latencyStats"

  • Redacte "WiredTiger", si está presente, para incluir solo el campo url.

El currentOp comando y $currentOp la etapa de agregación:

  • Omitir todos los campos después de "command".

  • Redacte "command" para incluir solo el primer elemento, $comment y $db.

El comando solo devuelve el nombre de la colección de colecciones top cifradas.

La $planCacheStats etapa de agregación omite las operaciones contra colecciones cifradas, aunque las operaciones se almacenan en caché de manera normal.

  • Se admiten conjuntos de réplicas y clústeres fragmentados

  • No se admiten implementaciones independientes

  • No se admiten lecturas secundarias

  • Las colecciones de metadatos no deben fragmentarse

  • Las claves de fragmentos no deben ser campos cifrados

  • Para las transacciones de clúster fragmentadas que utilizan cifrado consultable, debe establecer readConcern snapshoten.

  • El cifrado consultable no admite operaciones de actualización de múltiples documentos. no esdb.collection.updateMany() compatible.

  • El cifrado consultable no admite operaciones de actualización o eliminación de múltiples declaraciones. No se admitedb.collection.bulkWrite() con más de una operación de actualización o eliminación.

  • El cifrado consultable limita db.collection.findAndModify() argumentos.

    • fields no está permitido

    • new debe ser falso

  • Al realizar una operación de inserción y actualización, todos los campos cifrados en el filtro se excluyen de la inserción.

  • No se puede utilizar el cifrado a nivel de campo del lado del cliente con el cifrado consultable en la misma colección.

    • El cifrado consultable no admite la migración desde colecciones cifradas con cifrado de nivel de campo del lado del cliente. Debe descifrar sus documentos e insertarlos uno por uno.

    • El cifrado consultable no admite la migración automática desde una colección sin cifrar. Debe insertar los documentos uno por uno.

  • El cifrado consultable solo es compatible con colecciones nuevas. No se puede añadir ni eliminar el cifrado consultable de colecciones existentes.

  • No se puede cambiar el nombre de una colección con campos cifrados.

  • No se pueden especificar jsonSchema a al crear una colección de cifrado consultable db.createCollection() si jsonSchema contiene la encrypt palabra clave.

  • El cifrado consultable no admite vistas, colecciones de series temporales ni colecciones limitadas.

  • El cifrado consultable no admite índices TTL ni índices únicos.

  • No puedes deshabilitar la validación jsonSchema.

  • Cuando una colección utiliza la opción encryptedFields:

    • No puedes establecer validationLevel en none.

    • No puedes establecer validationAction en warn.

  • Al eliminar colecciones de un MongoClient que no está configurado para cifrado consultable, no se eliminan las colecciones de metadatos asociadas. mongod registra una advertencia si elimina una colección con campos cifrados antes de eliminar las colecciones de metadatos.

Tip

Al eliminar una colección con un MongoClient configurado para cifrado consultable, los controladores compatibles también eliminan las colecciones de metadatos asociadas.

Cree siempre explícitamente cualquier colección que utilice cifrado consultable. La creación implícita de colecciones no genera los índices ni las colecciones de metadatos necesarios, lo que resulta en un rendimiento deficiente de las consultas.

El tipo de query que especifiques para un campo al crear la colección en encryptedFieldsMap es inmutable. No puedes añadir nuevos tipos de consulta a un campo existente, ni puedes cambiar el tipo de consulta existente.

Los nombres de campo cifrados son inmutables. Por ejemplo, si especifica ssn como campo a cifrar, no podrá convertir el nombre de $rename campo taxPayerID en.

Las aplicaciones no pueden confiar en la validación de cifrado automático para evitar consultas no admitidas en vistas de colecciones con campos cifrados.

Las consultas a vistas de colecciones que contienen valores cifrados con Cifrado Consultable pueden devolver resultados inesperados o incorrectos si la canalización de agregación de vistas subyacente o la consulta hacen referencia a campos cifrados. Si crea una vista en una colección que contiene valores cifrados con Cifrado Consultable, evite operar en campos cifrados para mitigar el riesgo de resultados inesperados o incorrectos.

Para obtener más información sobre las vistas, consulte vistas.

El cifrado consultable ignora las intercalaciones especificadas por el usuario o las predeterminadas de la colección. El cifrado oculta el valor del campo e impide el comportamiento normal de la intercalación. Las consultas sensibles a la intercalación en campos cifrados pueden devolver resultados inesperados o incorrectos.

Para obtener más información sobre las intercalaciones, consulte Documento de intercalación.

Los controladores compatibles con el Cifrado Consultable cuentan con una lista de operaciones admitidas para el cifrado automático. Para operaciones de lectura y escritura no admitidas, la biblioteca de soporte subyacente no puede introspeccionar el catálogo de la colección para identificar la intercalación predeterminada. Por lo tanto, las aplicaciones no pueden confiar en la validación del Cifrado Consultable para evitar consultas en campos cifrados con intercalación predeterminada.

Los índices únicos no pueden garantizar la unicidad si la clave del índice especifica algún campo cifrado.

El cifrado consultable siempre genera un valor cifrado diferente, incluso para la misma entrada. El servidor considera que cada valor cifrado es único, aunque el valor descifrado no lo sea. Esto significa que, incluso si una colección utiliza una restricción única impuesta por el índice en los campos, puede contener varios documentos con valores de texto sin formato duplicados para ese campo.

Los drivers compatibles con Queryable Encryption configurados para el cifrado automático admiten algunas operaciones para el cifrado automático. Para las operaciones de lectura y guardado no compatibles, la librería subyacente no puede analizar el catálogo de índices para identificar un campo dado como único. Las aplicaciones no pueden depender de la validación de cifrado automático para evitar violaciones de restricciones de unicidad en campos cifrados aleatoriamente.

No se puede configurar el cifrado consultable para cifrar el campo _id porque depende del valor generado automáticamente por MongoDB.

El cifrado automático admite un subconjunto de comandos, operadores de consulta, operadores de actualización, etapas de agregación y expresiones de agregación. Para ver la lista de operaciones compatibles, consulte Operaciones compatibles con el cifrado automático.

Volver

Compatibilidad