Overview
Tip
Usa la librería compartida de cifrado automático
MongoDB lanzó un nuevo asistente de cifrado, crypt_shared,
denominada librería Compartida. La librería compartida reemplaza mongocryptd y no requiere la creación de un nuevo proceso.
Nota
Característica de la empresa
La funcionalidad automática de encriptación a nivel de campo solo está disponible en MongoDB Enterprise 6.0 o posterior, y en las clusters de MongoDB Atlas 6.0 o posterior.
mongocryptd está instalado con MongoDB Enterprise Server (versión 4.2 y posteriores).
Al crear un cliente MongoDB habilitado para Queryable Encryption, el proceso mongocryptd se inicia automáticamente por defecto y maneja las siguientes responsabilidades:
Utiliza las reglas automáticas de cifrado especificadas para marcar campos en operaciones de lectura y escritura para su cifrado.
Evita que se ejecuten operaciones no permitidas en campos cifrados.
Analiza el esquema de cifrado especificado para la conexión de la base de datos. Las reglas de cifrado automático utilizan un subconjunto estricto de la sintaxis del JSON schema. Si las reglas de cifrado automático contienen una sintaxis inválida de cifrado automático o cualquier sintaxis de validación de documentos,
mongocryptddevuelve un error.
mongocryptd es responsable únicamente 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 llave de cifradomongocryptdno escucha a través de la red
Los drivers compatibles con MongoDB 4.2 y posteriores utilizan la Biblioteca libmongocryptde Apache librería para realizar cifrado a nivel de campo del lado del cliente y descifrado automático.
Los drivers oficiales compatibles con MongoDB 4.2+, mongosh, y el shell heredado 4.2 o posterior mongo requieren acceso al proceso mongocryptd en la máquina host del cliente. Estos clientes buscan el proceso mongocryptd en la ruta del sistema por defecto.
Instalación
Para los sistemas operativos Linux compatibles, instala el paquete del servidor siguiendo el tutorial de instalación en Linux , sigue las instrucciones de instalación documentadas e instala el paquete de servidores mongodb-enterprise. Alternativamente, especifique mongodb-enterprise-cryptd en su lugar para instalar solo el binario mongocryptd. El gestor de paquetes instala los binarios en una ubicación del PATH del sistema (por ejemplo, /usr/bin/)
Para OSX, instala el paquete del servidor siguiendo el tutorial de instalación en MacOS. El gestor de paquetes instala los binarios en una ubicación en la ruta del sistema.
Para Windows, instala el paquete del servidor siguiendo el tutorial de instalación en Windows. Debes agregar el paquete mongocryptd al PATH de tu sistema después de la instalación. Consulta las mejores prácticas documentadas para tu instalación de Windows para obtener instrucciones sobre cómo agregar el archivo binario mongocryptd a la variable PATH del sistema.
Para instalaciones a través de un fichero comprimido oficial o un fichero ZIP, siga las mejores prácticas documentadas para su sistema operativo para agregar el binario mongocryptd al PATH de su sistema.
Configuración
Si el controlador compatible con la versión 4.2+ tiene acceso al proceso mongocryptd, por defecto, el controlador gestiona la creación del proceso mongocryptd.
Nota
Puerto mongocryptd en uso
Si ya se está ejecutando un proceso mongocryptd en el puerto especificado por el controlador, este puede registrar una advertencia y continuar operando sin generar un nuevo proceso. Cualquier configuración especificada por el driver solo se aplica una vez que el proceso existente sale y un nuevo cliente cifrado intenta conectarse.
Puedes configurar cómo tu driver inicia mongocryptd mediante los siguientes parámetros:
Nombre | Descripción |
|---|---|
Puerto | The port from which mongocryptd listens for messages.Specify this value in the AutoEncryptionSettings.Default: 27020 |
idleShutdownTimeoutSecs | Number of idle seconds in which the mongocryptd process should wait before exiting.Specify this value in the AutoEncryptionSettings.Default: 60 |
Importante
Iniciar al arrancar
Si es posible, recomendamos que mongocryptd se inicie al arrancar el sistema en lugar de lanzarlo on-demand.
Ejemplos
Para ver ejemplos de cómo configurar su proceso mongocryptd, haga clic en la pestaña correspondiente al driver que está utilizando en su aplicación:
El siguiente snippet 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 por defecto de mongocryptd:
var extraOptions = new Dictionary<string, object>() { { "idleShutdownTimeoutSecs", 60 }, }; autoEncryptionOptions.With(extraOptions: extraOptions);
El siguiente snippet 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 por defecto de mongocryptd:
extraOptions := map[string]interface{}{ "mongocryptdSpawnArgs": []string{ "--idleShutdownTimeoutSecs=75", }, }
El siguiente snippet 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 por defecto 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 snippet 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 el mongocryptdURI para que coincida con el puerto de escucha.
El siguiente fragmento de código establece la configuración de tiempo de espera por defecto de mongocryptd:
autoEncryption: { ... extraOptions: { mongocryptdSpawnArgs: ["--idleShutdownTimeoutSecs", "75"] }
El siguiente snippet 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 por defecto de mongocryptd:
auto_encryption_opts = AutoEncryptionOpts(mongocryptd_spawn_args=['--idleShutdownTimeoutSecs=75'])