Overview
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 se instala con Servidor empresarial MongoDB.
Cuando crea un cliente MongoDB habilitado para CSFLE, el proceso mongocryptd se inicia automáticamente de forma predeterminada.
El proceso mongocryptd:
Utiliza las reglas de cifrado automático especificadas para marcar campos en operaciones de lectura y escritura para el cifrado.
Impide que se ejecuten operaciones no compatibles 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 contienen una sintaxis de cifrado automático no válida o cualquier
schema validationsintaxis,mongocryptddevuelve un error.
mongocryptd solo realiza las funciones anteriores, y no realiza ninguna de las siguientes:
mongocryptdno realiza cifrado ni descifradomongocryptdno accede a ninguna llave de cifradomongocryptdno escucha a través de la red
Para realizar el cifrado a nivel de campo del lado del cliente y la descifrado automática, los controladores utilizan la libmongocryptlicenciada por Apache Biblioteca
Los drivers oficiales de MongoDB, mongosh, y el shell heredado mongo requieren acceso al proceso mongocryptd en la máquina cliente host. Estos clientes buscan el proceso mongocryptd en la PATH 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, 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.
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 driver tiene acceso al proceso mongocryptd, lo inicia por defecto. Su aplicación debe tener permisos de escritura en el directorio de trabajo para crear el archivo mongocryptd.pid.
Nota
Puerto mongocryptd en uso
Si un proceso mongocryptd ya se está ejecutando en el puerto especificado por el controlador, este podría registrar una advertencia y continuar 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.
Configure cómo se inicia el controlador mongocryptd a través de los siguientes parámetros:
Nombre | Descripción |
|---|---|
Puerto | The port from which mongocryptd listens for messages.Default: 27020 |
idleShutdownTimeoutSecs | Number of idle seconds the mongocryptd process waits
before exiting.Default: 60 |
URI de mongocryptd | The URI on which to run the mongocryptd process.Default: "mongodb://localhost:27020" |
mongocryptdBypassSpawn | When true, prevents the driver from automatically
spawning mongocryptd.Default: false |
mongocryptdSpawnPath | The full path to mongocryptd.Default: Defaults to empty string and spawns from the system path. |
Importante
Iniciar al arrancar
Si es posible, inicie mongocryptd en el arranque, en lugar de iniciarlo a pedido.
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 predeterminada 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 predeterminada 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 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 snippet establece la configuración del puerto de escucha de mongocryptd:
autoEncryption: { ... extraOptions: { mongocryptdSpawnArgs: ["--port", "30000"], mongocryptdURI: 'mongodb://localhost:30000', }
Nota
En el controlador NodeJS, el mongocryptdURI debe coincidir 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 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 predeterminada de mongocryptd:
auto_encryption_opts = AutoEncryptionOpts(mongocryptd_spawn_args=['--idleShutdownTimeoutSecs=75'])