MongoDB utiliza la biblioteca compartida de cifrado automático (recomendada) o la mongocryptd proceso ejecutable para traducir consultas en consultas cifradas y para cifrar o descifrar datos.
Antes de comenzar
Sigue las tareas anteriores para instale un controlador compatible con Queryable Encryption y sus dependencias antes de continuar.
Elija un componente de análisis de consultas
librería compartida de cifrado automático
La Librería Compartida de Cifrado Automático es una librería dinámica que permite que tu aplicación cliente realice cifrado automático. Una librería dinámica es un conjunto de funcionalidades a las que una aplicación accede en tiempo de ejecución en vez de en tiempo de compilación. La Librería Compartida de Cifrado Automático realiza las siguientes tareas:
Lee el esquema de cifrado para determinar qué campos cifrar o descifrar
Evita que su aplicación ejecute operaciones no compatibles en campos cifrados
La librería compartida de cifrado automático no realiza ninguna de las siguientes acciones:
Realizar cifrado o descifrado de datos
Accede al material de la llave de cifrado
Escuchar datos a través de la red
La biblioteca compartida de cifrado automático es una alternativa preferida a mongocryptd y no requiere que usted inicie otro proceso para realizar el cifrado automático.
mongocryptd
Importante
Usa la librería compartida de cifrado automático
Si estás comenzando un nuevo proyecto, utiliza la Biblioteca Compartida de cifrado automático. La librería compartida de cifrado automático reemplaza a mongocryptd y no requiere que inicies un nuevo proceso.
mongocryptd se instala con Servidor empresarial MongoDB.
Cuando creas un cliente de MongoDB con cifrado en uso, el proceso de mongocryptd comienza 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 de campos y el descifrado automático, los controladores utilizan la licencia Apache libmongocrypt librería.
Procedimiento
Para descargar la librería Compartida de cifrado automático desde el MongoDB Download Center, selecciona la versión y la plataforma, y luego la librería.
Tip
Para ver una lista ampliada de lanzamientos y paquetes disponibles, consulta Descargas de MongoDB Enterprise.
En el Version desplegable, seleccione 8.0.15 (current).
En el menú desplegable Platform, seleccione su plataforma.
En el menú desplegable Package, selecciona crypt_shared.
Haga clic en Download.
Para configurar cómo su driver busca la librería compartida de cifrado automático, utilice los siguientes parámetros:
Nombre | Descripción |
|---|---|
Ruta de biblioteca compartida de crypt | Especifica la ruta absoluta al paquete de la biblioteca compartida de cifrado automático,
Por defecto: |
cryptSharedLibRequired | Especifica si el driver debe utilizar la librería Compartida de cifrado automático. Si
Por defecto: |
Para ver un ejemplo que demuestra cómo configurar estos parámetros, consulta la Guía rápida de la API.
Instalar mongocryptd:
Para sistemas operativos Linux compatibles: Para instalar el paquete Server, siga el tutorial de instalación en Linux e instale el paquete mongodb-enterprise 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.
Para OSX: Para instalar el paquete de servidor, siga 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: Para instalar el paquete de servidor, sigue el tutorial de instalación en Windows. Después de la instalación, debe agregar el paquete mongocryptd a la RUTA del sistema. Siga las mejores prácticas documentadas para su instalación de Windows para agregar el binario mongocryptd al PATH del sistema.
Para instalar desde un fichero comprimido / ZIP oficial: Para instalar desde un fichero oficial, sigue las mejores prácticas documentadas para tu sistema operativo para añadir el binario mongocryptd al PATH de tu sistema.
Configura mongocryptd:
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.
Importante
Iniciar al arrancar
Si es posible, inicie mongocryptd en el arranque, en lugar de iniciarlo a pedido.
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. |
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.
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'])
Próximos pasos
Tras instalar un componente de análisis de consultas, crea una llave maestra de cliente en el sistema de gestión de claves de tu preferencia.