Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
/ / /

Instala y configura un componente de análisis de queries CSFLE

MongoDB utiliza la librería compartida de cifrado automático (recomendado) o el mongocryptd proceso ejecutable para traducir consultas en consultas cifradas, y para cifrar o descifrar datos.

Para utilizar CSFLE con cifrado automático, primero debes elegir el componente de análisis de consultas que quieres que MongoDB use para cifrar los campos.

  • crypt_shared, la librería CSFLE recomendada.

  • mongocryptd, que está incluido en las instalaciones de MongoDB Enterprise servidor.

La librería libmongocrypt y los drivers de MongoDB requieren la Librería Compartida de Cifrado Automático o mongocryptd para interpretar las queries cifradas. Para más información, consulte Instala libmongocrypt para CSFLE.

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 Librería Compartida de cifrado automático es una alternativa preferida a mongocryptd y no requerirá que generes otro proceso para realizar un cifrado automático.

Nota

Si bien recomendamos utilizar la librería compartida de cifrado automático, todavía se admite mongocryptd.

Para aprender más sobre el cifrado automático, consulta Funcionalidades de CSFLE.

mongocryptd se instala con MongoDB Enterprise servidor.

Cuando se crea un cliente de MongoDB habilitado para CSFLE, el proceso mongocryptd se inicia automáticamente por defecto.

El proceso mongocryptd:

  • Utiliza las reglas automáticas de cifrado especificadas para marcar campos en operaciones de lectura y escritura para su 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 JSON schema. Si las reglas contienen una sintaxis de cifrado automático inválida o cualquier sintaxis de schema validation, mongocryptd devolverá un error.

mongocryptd solo realiza las funciones anteriores, y no realiza ninguna de las siguientes:

  • mongocryptd no realiza cifrado ni descifrado

  • mongocryptd no accede a ninguna llave de cifrado

  • mongocryptd no 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.

Los controladores oficiales de MongoDB requieren acceso al proceso de mongocryptd en la computadora host cliente. Estos clientes buscan por defecto el proceso mongocryptd en el sistema PATH.

1

Descargue la librería compartida de cifrado automático desde el Centro de descargas de MongoDB eligiendo la versión y la plataforma, y luego la librería:

  1. En el Version en el menú desplegable, selecciona la versión etiquetada como "actual".

  2. En el menú desplegable Platform, seleccione su plataforma.

  3. En el menú desplegable Package, selecciona crypt_shared.

  4. Haga clic en Download.

Tip

Para ver una lista ampliada de lanzamientos y paquetes disponibles, consulta Descargas de MongoDB Enterprise.

2

Puedes configurar cómo tu driver busca la librería Compartida de Cifrado Automático a través de los siguientes parámetros:

Nombre
Descripción

cryptSharedLibPath

Especifica la ruta absoluta al paquete de librería compartida de cifrado automático, crypt_shared.

Por defecto: undefined

cryptSharedLibRequired

Especifica si el controlador debe usar la librería compartida de cifrado automático. Si true, el driver generará un error si la librería compartida de cifrado automático no está disponible. Si false, el driver realiza la siguiente secuencia de acciones:

  1. Intentos de utilizar la librería compartida de cifrado automático.

  2. Si la librería de cifrado automático compartido no está disponible, el driver intentará iniciar y conectarse a mongocryptd.

Por defecto: false

Para ver un ejemplo que demuestra cómo configurar estos parámetros, consulta la Guía rápida de la API.

1

Para sistemas operativos Linux compatibles: para instalar el paquete del servidor, siga el tutorial de instalación en Linux e instale el paquete del servidor mongodb-enterprise. Alternativamente, especifique mongodb-enterprise-cryptd en su lugar para instalar solo el binario mongocryptd. El gestor de paquetes instala los archivos binarios en una ubicación del sistema PATH.

Para OSX: Para instalar el paquete del Servidor, sigue el tutorial de instalación en MacOS. El gestor de paquetes instala 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.

2

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, iniciar mongocryptd al arrancar, en lugar de ejecutarlo on-demand.

Configura cómo el controlador inicia mongocryptd mediante 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

mongocryptdURI

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 ya se está ejecutando un proceso mongocryptd en el puerto especificado por el driver, es posible que el driver registre un registro y continúe sin iniciar 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.

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 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 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'])

Volver

Cómo CSFLE descifra documentos

En esta página