Overview
Tip
Usa la librería compartida de cifrado automático
MongoDB lanzó un nuevo asistente de cifrado, crypt_shared,
Se denomina Biblioteca Compartida. Esta biblioteca reemplaza a mongocryptd y no requiere generar un nuevo proceso.
Nota
Característica de la empresa
La función automática de cifrado a nivel de campo solo es compatible con MongoDB Enterprise 6.0 o posterior, y MongoDB Atlas 6.0 o posterior.
mongocryptd se instala con MongoDB Enterprise Server (versión 4.2 y posteriores).
Cuando crea un cliente MongoDB habilitado para cifrado consultable, el proceso mongocryptd se inicia automáticamente de manera predeterminada y maneja las siguientes responsabilidades:
Utiliza las reglas de cifrado automático especificadas para marcar campos en operaciones de lectura y escritura para el cifrado.
Evita que se ejecuten operaciones no admitidas en campos cifrados.
Analiza el esquema de cifrado especificado para la conexión a la base de datos. Las reglas de cifrado automático utilizan un subconjunto estricto de la sintaxis del esquema JSON. Si las reglas de cifrado automático contienen una sintaxis de cifrado automático no válida o cualquier sintaxis de validación de documentos,
mongocryptddevuelve un error.
mongocryptd Sólo es responsable de las funciones anteriores y no realiza ninguna de las siguientes:
mongocryptdno realiza cifrado ni descifrado por sí mismomongocryptdno accede a ningún material de clave de cifradomongocryptdno escucha a través de la red
Los controladores compatibles con MongoDB 4.2 y posteriores utilizan la biblioteca libmongocrypt con licencia Apache. Biblioteca para realizar cifrado a nivel de campo del lado del cliente y descifrado automático.
Los 4.2controladores oficiales compatibles conmongosh MongoDB +,, y el 4.2 shell o mongo posterior,, requieren acceso al mongocryptd proceso en el host del cliente. Estos clientes buscan el mongocryptd proceso en la ruta del sistema de forma predeterminada.
Instalación
Para sistemas operativos Linux compatibles, instale el paquete Server siguiendo el tutorial de instalación en Linux, siga las instrucciones de instalación documentadas e instale el mongodb-enterprise paquete Server. Como alternativa, especifique mongodb-enterprise-cryptd para instalar solo el mongocryptd binario. El administrador de paquetes instala los binarios en una ubicación en la ruta del sistema (p. ej.,). /usr/bin/
Para OSX, instale el paquete Server siguiendo el tutorial de instalación en macOS. El administrador de paquetes instala los binarios en una ubicación en la ruta del sistema.
En Windows, instale el paquete Server siguiendo el tutorial de instalación en Windows. Debe agregar el paquete a la ruta del mongocryptd sistema después de la instalación. Consulte las prácticas recomendadas documentadas para su instalación en Windows para obtener instrucciones sobre cómo agregar el mongocryptd binario a la ruta del sistema.
Para instalaciones a través de un archivo tarball o ZIP oficial, siga las mejores prácticas documentadas para su sistema operativo para agregar el binario mongocryptd a la RUTA de su sistema.
Configuración
Si el controlador compatible con 4.2+ tiene acceso al proceso mongocryptd, de manera predeterminada el controlador administra el inicio del proceso mongocryptd.
Nota
Puerto mongocryptd en uso
Si un proceso mongocryptd ya se está ejecutando en el puerto especificado por el controlador, este puede registrar una advertencia y continuar funcionando sin generar un nuevo proceso. La configuración especificada por el controlador solo se aplica una vez que el proceso existente finaliza y un nuevo cliente cifrado intenta conectarse.
Puede configurar cómo se inicia su controlador mongocryptd a través de los siguientes parámetros:
Nombre | Descripción |
|---|---|
Puerto | The port from which mongocryptd listens for messages.Specify this value in the AutoEncryptionSettings.Default: 27020 |
Tiempo de espera de apagado inactivo en segundos | Number of idle seconds in which the mongocryptd process should wait before exiting.Specify this value in the AutoEncryptionSettings.Default: 60 |
Importante
Iniciar en el arranque
Si es posible, recomendamos que mongocryptd se inicie durante el arranque, en lugar de iniciarse a pedido.
Ejemplos
Para ver ejemplos de cómo configurar su proceso mongocryptd, haga clic en la pestaña correspondiente al controlador que está utilizando en su aplicación:
El siguiente fragmento de código establece la configuración del puerto de escucha de mongocryptd:
var extraOptions = new Dictionary<string, object>() { { "mongocryptdSpawnArgs", new [] { "--port=30000" } }, }; autoEncryptionOptions.With(extraOptions: extraOptions);
El siguiente fragmento de código establece la configuración de tiempo de espera predeterminada de mongocryptd:
var extraOptions = new Dictionary<string, object>() { { "idleShutdownTimeoutSecs", 60 }, }; autoEncryptionOptions.With(extraOptions: extraOptions);
El siguiente fragmento de código establece la configuración del puerto de escucha de mongocryptd:
extraOptions := map[string]interface{}{ "mongocryptdSpawnArgs": []string{ "--port=30000", }, }
El siguiente fragmento de código establece la configuración de tiempo de espera predeterminada de mongocryptd:
extraOptions := map[string]interface{}{ "mongocryptdSpawnArgs": []string{ "--idleShutdownTimeoutSecs=75", }, }
El siguiente fragmento de código establece la configuración del puerto de escucha de mongocryptd:
List<String> spawnArgs = new ArrayList<String>(); spawnArgs.add("--port=30000"); Map<String, Object> extraOpts = new HashMap<String, Object>(); extraOpts.put("mongocryptdSpawnArgs", spawnArgs); AutoEncryptionSettings autoEncryptionSettings = AutoEncryptionSettings.builder() ... .extraOptions(extraOpts);
El siguiente fragmento de código establece la configuración de tiempo de espera predeterminada de mongocryptd:
List<String> spawnArgs = new ArrayList<String>(); spawnArgs.add("--idleShutdownTimeoutSecs") .add("60"); Map<String, Object> extraOpts = new HashMap<String, Object>(); extraOpts.put("mongocryptdSpawnArgs", spawnArgs); AutoEncryptionSettings autoEncryptionSettings = AutoEncryptionSettings.builder() ... .extraOptions(extraOpts);
El siguiente fragmento de código establece la configuración del puerto de escucha de mongocryptd:
autoEncryption: { ... extraOptions: { mongocryptdSpawnArgs: ["--port", "30000"], mongocryptdURI: 'mongodb://localhost:30000', }
Nota
En la versión actual (3.3.4) del controlador NodeJS, debe especificar mongocryptdURI para que coincida con el puerto de escucha.
El siguiente fragmento de código establece la configuración de tiempo de espera predeterminada de mongocryptd:
autoEncryption: { ... extraOptions: { mongocryptdSpawnArgs: ["--idleShutdownTimeoutSecs", "75"] }
El siguiente fragmento de código establece la configuración del puerto de escucha de mongocryptd:
auto_encryption_opts = AutoEncryptionOpts(mongocryptd_spawn_args=['--port=30000'])
El siguiente fragmento de código establece la configuración de tiempo de espera predeterminada de mongocryptd:
auto_encryption_opts = AutoEncryptionOpts(mongocryptd_spawn_args=['--idleShutdownTimeoutSecs=75'])