Nota
Auditoría en MongoDB Atlas
MongoDB Atlas admite la auditoría para todos M10 y clústeres más grandes. Atlas admite especificar un filtro de auditoría en formato JSON como se documenta en Configure los filtros de auditoría y utilice el generador de filtros de auditoría de Atlas para simplificar la configuración de auditoría. Para obtener más información, consulte la documentación de Atlas.
Configurar la auditoría de la base de datos y Configurar un filtro de auditoría personalizado.
MongoDB Enterprise admite la auditoría de diversas operaciones. Una solución de auditoría completa debe abarcar todos los mongod procesos del servidor y mongos del enrutador.
La función de auditoría puede escribir eventos de auditoría en la consola, el syslog (opción no disponible en Windows), un archivo JSON o un archivo BSON. Para obtener más información sobre las operaciones auditadas y los mensajes del registro de auditoría, consulte Mensajes de auditoría de eventos del sistema.
Activar y configurar salida de auditar
Para habilitar la auditoría en MongoDB Enterprise, establezca un destino de salida de auditoría con --auditDestination.
Advertencia
Salida a Syslog
Para habilitar la auditoría e imprimir los eventos de auditoría en syslog (opción no disponible en Windows) en formato JSON, especifica syslog para la configuración de --auditDestination. Por ejemplo:
mongod --dbpath data/db --auditDestination syslog
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.
Importante
Antes de vincularse a otras direcciones IP, considere habilitar el control de acceso y otras medidas de seguridad enumeradas en la Lista de verificación de seguridad para implementaciones autoadministradas para evitar el acceso no autorizado.
Advertencia
El límite de mensajes syslog puede provocar el recorte de los mensajes de auditoría. El sistema de auditoría no detectará el truncamiento ni el error en el momento que ocurra.
En un sistema Linux, los mensajes están sujetos a las reglas definidas en el archivo de configuración de Linux /etc/systemd/journald.conf. Por defecto, las ráfagas de mensajes de registro están limitadas a 1000 mensajes en un período de 30 segundos. Para ver más mensajes, aumente el parámetro RateLimitBurst en /etc/systemd/journald.conf.
También puedes especificar estas opciones en el archivo de configuración:
storage: dbPath: data/db auditLog: destination: syslog
Salida a consola
Para habilitar la auditoría y imprimir los eventos de auditoría en la salida estándar (es decir, stdout), especifica console para el ajuste --auditDestination. Por ejemplo:
mongod --dbpath data/db --auditDestination console
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.
Importante
Antes de vincularse a otras direcciones IP, considere habilitar el control de acceso y otras medidas de seguridad enumeradas en la Lista de verificación de seguridad para implementaciones autoadministradas para evitar el acceso no autorizado.
También puedes especificar estas opciones en el archivo de configuración:
storage: dbPath: data/db auditLog: destination: console
Salida a archivo JSON
Para habilitar la auditoría e imprimir eventos de auditoría en un archivo en formato JSON, especifique las siguientes opciones:
Opción | Valor |
|---|---|
| |
| |
El nombre de archivo de salida. Se acepta tanto el nombre de ruta completo como el nombre de ruta relativo. |
Por ejemplo, lo siguiente habilita la auditoría y registra los eventos de auditoría en un archivo con el nombre de ruta relativa de data/db/auditLog.json:
mongod --dbpath data/db --auditDestination file --auditFormat JSON --auditPath data/db/auditLog.json
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.
Importante
Antes de vincularse a otras direcciones IP, considere habilitar el control de acceso y otras medidas de seguridad enumeradas en la Lista de verificación de seguridad para implementaciones autoadministradas para evitar el acceso no autorizado.
El archivo de auditoría puede rotarse con el comando logRotate, ya sea junto con el registro del servidor o de forma independiente. Las especificidades de la rotación pueden configurarse con la opción del archivo de configuración systemLog.logRotate o la opción de línea de comandos --logRotate.
También puedes especificar estas opciones en el archivo de configuración:
storage: dbPath: data/db auditLog: destination: file format: JSON path: data/db/auditLog.json
Nota
La impresión de eventos de auditoría en un archivo en formato JSON degrada el rendimiento del servidor más que imprimirlos en un archivo en formato BSON.
Salida a archivo BSON
Para habilitar la auditoría y enviar los eventos de auditoría a un archivo en formato binario BSON, especifica las siguientes opciones:
Opción | Valor |
|---|---|
| |
| |
El nombre de archivo de salida. Se acepta tanto el nombre de ruta completo como el nombre de ruta relativo. |
Por ejemplo, lo siguiente habilita la auditoría y registra los eventos de auditoría en un archivo BSON con el nombre de ruta relativa de data/db/auditLog.bson:
mongod --dbpath data/db --auditDestination file --auditFormat BSON --auditPath data/db/auditLog.bson
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.
Importante
Antes de vincularse a otras direcciones IP, considere habilitar el control de acceso y otras medidas de seguridad enumeradas en la Lista de verificación de seguridad para implementaciones autoadministradas para evitar el acceso no autorizado.
El archivo de auditoría es rotated al mismo tiempo que la entrada de registro del servidor. Los detalles de la rotación pueden configurarse con la opción de archivo de configuración systemLog.logRotate o la opción de línea de comandos --logRotate.
También puedes especificar estas opciones en el archivo de configuración:
storage: dbPath: data/db auditLog: destination: file format: BSON path: data/db/auditLog.bson
El siguiente ejemplo convierte el registro de auditoría en una forma legible utilizando bsondump y produce el resultado:
bsondump data/db/auditLog.bson
Mensajes de salida en formato OCSF
A partir de MongoDB 8.0, MongoDB puede escribir mensajes de registro en OCSF formato. El esquema OCSF proporciona registros en un formato estandarizado compatible con procesadores de registros.
Para usar el esquema OCSF para mensajes de registro, establece la opción --auditSchema en OCSF. Por ejemplo:
mongod --dbpath data/db --auditDestination file --auditFormat JSON --auditPath data/db/auditLog.json --auditSchema OCSF
También puedes especificar el esquema OCSF en la opción del archivo de configuración auditLog.schema:
storage: dbPath: data/db auditLog: destination: file format: JSON path: data/db/auditLog.json schema: OCSF
Para obtener más información sobre el esquema OCSF, consulte Mensajes de auditoría del esquema OCSF.
Gestión de filtros de auditoría en tiempo de ejecución
A partir de MongoDB 5.0, los filtros de auditoría pueden configurarse durante el tiempo de ejecución. La gestión de filtros de auditoría en tiempo de ejecución proporciona tres beneficios comparados con las configuraciones de filtros de auditoría que se especifican en un mongod local o en un archivo de configuración mongos:
Separación de responsabilidades
Antes de MongoDB 5.0, cualquier persona que auditara una instancia de MongoDB mongod o mongos tenía que poseer acceso de escritura al sistema de archivos del servidor host para poder actualizar los filtros de auditoría. La gestión de filtros de auditoría en tiempo de ejecución mejora la seguridad al separar el acceso a la auditoría del acceso administrativo.
Usar la administración de filtros de auditoría en tiempo de ejecución en lugar de editar archivos de configuración directamente significa:
No se requiere acceso al sistema de archivos, por lo que un auditor no necesita acceso al servidor host
mongodni almongos.No hay acceso directo al archivo de configuración de la instancia
mongodomongos.La Gestión del Filtro de Auditoría en Tiempo de Ejecución solo expone filtros de auditoría y el parámetro
auditAuthorizationSuccess.
Configurabilidad en tiempo de ejecución
A partir de MongoDB 5.0, cuando la gestión de filtros de auditoría en tiempo de ejecución está habilitada, la auditoría puede reconfigurarse en tiempo de ejecución sin reiniciar la mongod o la instancia de mongos. Una instancia configurada estáticamente debe reiniciarse para actualizar su configuración de auditoría.
Las modificaciones del filtro de auditoría realizadas en tiempo de ejecución se mantienen cuando una instancia se apaga y reinicia.
coherencia
Dentro de un clúster, si todos los mongod y mongos nodos participantes están configurados para usar la Gestión de Filtros de Auditoría en Tiempo de Ejecución, entonces todos los nodos usarán los mismos filtros de auditoría. En contraste, si cada nodo tiene sus propios filtros de auditoría configurados localmente, no hay garantía de coherencia de filtros de auditoría entre nodos.
Habilitar la administración de filtros de auditoría en tiempo de ejecución
A partir de MongoDB 5.0, las configuraciones de auditoría para los nodos mongod y mongos pueden configurarse en tiempo de ejecución. Un grupo de estos nodos puede participar en una configuración de auditoría distribuida.
Para incluir un nodo en una configuración de auditoría distribuida, actualice el archivo de configuración del nodo de la siguiente manera y reinicie el servidor.
Parameter | Valor |
|---|---|
| |
Sin establecer | |
Sin establecer |
El servidor registra un error y no puede iniciarse si:
runtimeConfigurationestrueyO bien
auditLog.filteroauditAuthorizationSuccessestá establecido.
Para modificar los filtros de auditoría y el parámetro en tiempo de auditAuthorizationSuccess ejecución,auditConfig consulte.