Docs Menu
Docs Home
/ /
Cifrado en reposo

Configurar el cifrado

Nuevo en la versión 3.2.

Esta página describe la configuración del servidor para admitir el cifrado en reposo. Si usa MongoDB Atlas, sus datos ya están cifrados. MongoDB gestiona el cifrado de Atlas a nivel de proveedor de la nube, pero también puede usar su propia solución de gestión de claves. Consulte la documentación de gestión de claves de Atlas para obtener más información.

MongoDB Enterprise 3.2 introduce una opción de cifrado nativo para el motor de almacenamiento WiredTiger. Fuera de Atlas, el cifrado solo está disponible para instalaciones empresariales que utilizan el motor de almacenamiento WiredTiger.

La gestión segura de las claves de cifrado es un requisito fundamental para el cifrado del almacenamiento. MongoDB utiliza una clave maestra que no se almacena con la instalación. Solo la clave maestra se gestiona externamente; otras claves se pueden almacenar con la instancia de MongoDB.

El motor de almacenamiento cifrado de MongoDB admite dos opciones de administración de claves para la clave maestra:

  • Integración con un dispositivo de gestión de claves de terceros a través del Protocolo de Interoperabilidad de Gestión de Claves (KMIP). Recomendado

  • Uso de la gestión de claves local a través de un archivo de claves.

Importante

MongoDB no puede cifrar datos existentes. Al habilitar el cifrado con una nueva clave, la instancia de MongoDB no puede tener datos preexistentes. Si su instalación de MongoDB ya tiene datos, consulte Cifrar datos existentes en reposo para obtener más información.

MongoDB Enterprise admite la transferencia segura de claves con dispositivos de gestión de claves compatibles. El uso de un administrador de claves permite almacenar las claves en él.

MongoDB Enterprise admite la transferencia segura de claves con dispositivos de gestión de claves compatibles con el Protocolo de Interoperabilidad de Administración de Claves (KMIP). Se espera que cualquier proveedor de dispositivos compatible con KMIP sea compatible.

Para obtener una lista de los socios certificados de MongoDB, consulta la Lista de socios.

Tip

Recomendado

Utilizar un administrador de claves cumple con las directrices regulatorias de gestión de claves, como HIPAA, PCI-DSS y FERPA, y es recomendable en comparación con la gestión local de claves.

  • Su administrador de claves debe admitir el protocolo de comunicación KMIP.

  • Para una integración con un dispositivo de administración de claves de terceros mediante el KMIP, debe permitir las siguientes operaciones KMIP:

    • Crear (operation_create)

    • Obtener (operation_get)

    • Activar (operation_activate)

  • Para autenticar MongoDB en un servidor KMIP, debe tener un certificado válido emitido por el dispositivo de administración de claves.

Nota

MongoDB Enterprise en Windows ya no admite AES256-GCM como un cifrado de bloques para el cifrado en reposo. Este uso solo es compatible con Linux.

Para crear una nueva clave, conéctese mongod al administrador de claves iniciando mongod con las siguientes opciones:

Incluir opciones adicionales según sea necesario para la configuración. Por ejemplo, si se desea que los clientes remotos se conecten a su implementación o si los miembros de su implementación se ejecutan en hosts diferentes, especificar el --bind_ip.

La siguiente operación crea una nueva clave maestra en tu administrador de claves, la cual mongod usa para encriptar las claves que mongod genera para cada base de datos.

mongod --enableEncryption --kmipServerName <KMIP Server HostName> \
--kmipPort <KMIP server port> --kmipServerCAFile ca.pem \
--kmipClientCertificateFile client.pem

Al conectarse al servidor KMIP, elmongodverifica que el--kmipServerNameespecificado coincida con el Nombre Alternativo del Sujeto SAN (o, si el SAN no está presente, con el Nombre Común CN) del certificado presentado por el servidor KMIP. [1] Si el SAN está presente, elmongodno coincide con el CN. Si el nombre de host no coincide con el SAN (o el CN), elmongodno podrá conectarse.

Para verificar que la creación y el uso de la clave se realizaron correctamente, revise el archivo de registro. Si se realizó correctamente, el proceso registrará los siguientes mensajes:

[initandlisten] Created KMIP key with id: <UID>
[initandlisten] Encryption key manager initialized using master key with id: <UID>

Puede usar una clave maestra existente que su servidor KMIP creó y administra. Para usar una clave existente, conecte al administrador mongod mongod de claves iniciando con las siguientes opciones:

Incluir opciones adicionales según sea necesario para la configuración. Por ejemplo, si se desea que los clientes remotos se conecten a su implementación o si los miembros de su implementación se ejecutan en hosts diferentes, especificar el --bind_ip.

mongod --enableEncryption --kmipServerName <KMIP Server HostName> \
--kmipPort <KMIP server port> --kmipServerCAFile ca.pem \
--kmipClientCertificateFile client.pem --kmipKeyIdentifier <UID>

Al conectarse al servidor KMIP, elmongodverifica que el--kmipServerNameespecificado coincida con el Nombre Alternativo del Sujeto SAN (o, si el SAN no está presente, con el Nombre Común CN) del certificado presentado por el servidor KMIP. [1] Si el SAN está presente, elmongodno coincide con el CN. Si el nombre de host no coincide con el SAN (o el CN), elmongodno podrá conectarse.

[1](1, 2) A partir de MongoDB 4.2, al realizar una comparación de SAN, MongoDB admite la comparación de nombres DNS o direcciones IP. En versiones anteriores, MongoDB solo admite comparaciones de nombres DNS.

Importante

El uso del método de archivo de claves no cumple con la mayoría de las pautas regulatorias de administración de claves y requiere que los usuarios administren de forma segura sus propias claves.

La gestión segura del archivo de claves es fundamental.

Para cifrar con un archivo de claves, debe tener un64 archivo de claves codificado en base que contenga una sola 16 32 cadena de caracteres o. Solo el propietario del proceso debe poder acceder a este archivo de claves.mongod

  1. Cree el archivo de clave codificado base64 con la cadena de caracteres 16 o 32. Puede generar el archivo de clave codificado con el método que prefiera. Por ejemplo,

    openssl rand -base64 32 > mongodb-keyfile
  2. Actualiza los permisos del archivo.

    chmod 600 mongodb-keyfile
  3. Para utilizar el archivo de clave, inicie con las siguientes mongod opciones:

    • --enableEncryption,

    • --encryptionKeyFile <path to keyfile>,

    mongod --enableEncryption --encryptionKeyFile mongodb-keyfile

    Incluir opciones adicionales según sea necesario para la configuración. Por ejemplo, si se desea que los clientes remotos se conecten a su implementación o si los miembros de su implementación se ejecutan en hosts diferentes, especificar el --bind_ip.

  4. Verifique si el administrador de claves de cifrado se inicializó correctamente con el archivo de claves. Si la operación se realizó correctamente, el proceso registrará el siguiente mensaje:

    [initandlisten] Encryption key manager initialized with key file: <path to keyfile>

MongoDB no puede cifrar datos existentes. Al habilitar el cifrado con una nueva clave, la instancia de MongoDB no puede tener datos preexistentes.

Si está utilizando un conjunto de réplicas que tiene datos existentes, utilice una sincronización inicial continua para cifrar los datos.

Por ejemplo, considere un conjunto de réplicas con tres miembros. El conjunto de réplicas está en uso y contiene datos que desea cifrar. Estos son los pasos que seguiría para cifrar los datos en reposo:

1

Siga estos pasos para preparar el servidor:

  • Elija uno de los servidores secundarios.

  • Detener en el servidor mongod secundario.

  • Opcional: Realice una copia de seguridad de los datos dbPath en. Si no necesita una copia de seguridad completa, considere hacer una copia de seguridad solo del diagnostic.data directorio para conservar datos útiles para la resolución de problemas en caso de que surja algún problema. Consulte Captura de datos de diagnóstico a tiempo completo para obtener más información.

  • Elimine los archivos y directorios dbPath en.

2

Inicie el servidor secundario con el cifrado habilitado. La mongod instancia crea un nuevo almacén de claves.

3

Importe los datos del servidor principal. Inicie el proceso mongod y especifique las opciones de replicación según corresponda.

mongod Realiza una sincronización inicial y encripta los datos durante el proceso de sincronización.

4

Cuando la primera instancia secundaria haya terminado de importar y cifrar los datos, repita el proceso en las otras instancias mongod secundarias.

5

Una vez cifrados todos los secundarios, el principal. Los secundarios elegibles elegirán un nuevostep down principal.

El servidor principal antiguo ahora es secundario. Repita los pasos para eliminar los datos sin cifrar y luego ejecute una sincronización inicial.

Volver

Cifrado en reposo

En esta página