Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Auditoría

Configura los Filtros de Auditoría

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 según lo documentado a continuación y utilizar el generador de filtros de auditoría de Atlas para una configuración de auditoría simplificada. Para obtener más información, consulte la documentación de Atlas para Configurar la supervisión de bases de datos y Configurar un filtro de supervisión personalizado.

MongoDB Enterprise supports auditoría de diversas operaciones. Cuando está habilitada, la función de auditoría, por defecto, registra todas las operaciones auditables según lo detallado en Acciones, detalles y resultados de eventos de auditoría. Puede especificar filtros de eventos para limitar los eventos que se registran.

Puedes configurar los filtros de auditoría en el inicio o puedes configurar MongoDB para permitir la configuración de filtros en tiempo de ejecución.

Los filtros de Auditar tienen la misma forma que los documentos de predicado de query especificados para los comandos find. Para ver ejemplos de filtros de auditoría, consulta Ejemplos.

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

true

Sin establecer

Sin establecer

El servidor registra un error y no puede iniciarse si:

  • runtimeConfiguration es true y

  • O bien auditLog.filter o auditAuthorizationSuccess está establecido.

Para modificar los filtros de auditoría y el parámetro en tiempo de auditAuthorizationSuccess ejecución,setAuditConfig consulte.

Los filtros de auditoría se pueden especificar en la línea de comandos o en el archivo de configuración utilizado para iniciar la instancia de mongod o mongos.

Los filtros se pueden especificar en YAML, en la auditLog sesión del archivo de configuración. Consulte los ejemplos a continuación para ver ejemplos de configuración.

Nota

Si runtimeConfiguration está habilitado, entonces no se puede usar el archivo de configuración para especificar filtros de auditoría.

Para registrar todos los eventos auditables, no especifique un filtro de auditoría. Por defecto, la función de auditoría registra todas las operaciones auditables.

El siguiente ejemplo audita solo las acciones createCollection y las acciones dropCollection utilizando el filtro:

{ atype: { $in: [ "createCollection", "dropCollection" ] } }

Para especificar un filtro de auditoría, encierre el documento del filtro entre comillas simples para pasarlo como un string.

mongod --dbpath data/db --auditDestination file --auditFilter '{ atype: { $in: [ "createCollection", "dropCollection" ] } }' --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.

Para especificar el filtro de auditoría en un archivo de configuración, debe utilizar el formato YAML del archivo de configuración.

storage:
dbPath: data/db
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ atype: { $in: [ "createCollection", "dropCollection" ] } }'

El <field> puede incluir cualquier campo en el mensaje de auditoría. Para operaciones de autenticación (es decir, atype: "authenticate"), los mensajes de auditoría incluyen un campo db en el documento param.

El siguiente ejemplo audita únicamente las operaciones authenticate que ocurren en la base de datos test mediante el uso del filtro:

{ atype: "authenticate", "param.db": "test" }

Para especificar un filtro de auditoría, encierre el documento del filtro entre comillas simples para pasarlo como un string.

mongod --dbpath data/db --auth --auditDestination file --auditFilter '{ atype: "authenticate", "param.db": "test" }' --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.

Para especificar el filtro de auditoría en un archivo de configuración, debe utilizar el formato YAML del archivo de configuración.

storage:
dbPath: data/db
security:
authorization: enabled
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ atype: "authenticate", "param.db": "test" }'

Para filtrar en todas las operaciones de authenticate entre las bases de datos, omite "param.db": "test" y usa el filtro { atype: "authenticate" }.

El <field> puede incluir cualquier campo en el mensaje de auditoría. Para la creación de colecciones y operaciones de descarte (es decir, atype: "createCollection" y atype: "dropCollection"), los mensajes de auditoría incluyen un campo de espacio de nombres ns en el documento param.

El siguiente ejemplo audita solo las operaciones createCollection y dropCollection que ocurren en la base de datos test utilizando el filtro:

Nota

La expresión regular requiere dos barras invertidas (\\) para escapar del punto (.).

{ atype: { $in: [ "createCollection", "dropCollection" ] }, "param.ns": /^test\\./ } }

Para especificar un filtro de auditoría, encierre el documento del filtro entre comillas simples para pasarlo como un string.

mongod --dbpath data/db --auth --auditDestination file --auditFilter '{ atype: { $in: [ "createCollection", "dropCollection" ] }, "param.ns": /^test\\./ } }' --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.

Para especificar el filtro de auditoría en un archivo de configuración, debe utilizar el formato YAML del archivo de configuración.

storage:
dbPath: data/db
security:
authorization: enabled
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ atype: { $in: [ "createCollection", "dropCollection" ] }, "param.ns": /^test\\./ } }'

El siguiente ejemplo audita las operaciones de los usuarios con el rol readWrite en la base de datos test, incluyendo los usuarios con roles que heredan de readWrite, utilizando el filtro:

{ roles: { role: "readWrite", db: "test" } }

Para especificar un filtro de auditoría, encierre el documento del filtro entre comillas simples para pasarlo como un string.

mongod --dbpath data/db --auth --auditDestination file --auditFilter '{ roles: { role: "readWrite", db: "test" } }' --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.

Para especificar el filtro de auditoría en un archivo de configuración, debe utilizar el formato YAML del archivo de configuración.

storage:
dbPath: data/db
security:
authorization: enabled
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ roles: { role: "readWrite", db: "test" } }'

Para capturar operaciones de lectura y escritura en la auditoría, también debe permitir que el sistema de auditoría registre los éxitos de autorización utilizando el parámetro auditAuthorizationSuccess. [1]

Nota

Habilitar auditAuthorizationSuccess degrada el rendimiento más que registrar únicamente los fallos de autorización.

Este filtro audita múltiples operaciones de lectura y escritura:

{
atype: "authCheck",
"param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] }
}

Las operaciones auditadas incluyen:

Para especificar un filtro de auditoría, encierre el documento del filtro entre comillas simples para pasarlo como un string.

mongod --dbpath data/db --auth --setParameter auditAuthorizationSuccess=true --auditDestination file --auditFilter '{ atype: "authCheck", "param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] } }' --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.

Para especificar el filtro de auditoría en un archivo de configuración, debe utilizar el formato YAML del archivo de configuración.

storage:
dbPath: data/db
security:
authorization: enabled
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ atype: "authCheck", "param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] } }'
setParameter: { auditAuthorizationSuccess: true }

Para capturar operaciones de lectura y escritura en la auditoría, también debe permitir que el sistema de auditoría registre los éxitos de autorización utilizando el parámetro auditAuthorizationSuccess. [1]

Nota

Habilitar auditAuthorizationSuccess degrada el rendimiento más que registrar únicamente los fallos de autorización.

Este filtro audita varias operaciones de lectura y escritura en la colección orders de la base de datos test:

{
atype: "authCheck",
"param.ns": "test.orders",
"param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] }
}

Las operaciones auditadas incluyen:

Para especificar un filtro de auditoría, encierre el documento del filtro entre comillas simples para pasarlo como un string.

mongod --dbpath data/db --auth --setParameter auditAuthorizationSuccess=true --auditDestination file --auditFilter '{ atype: "authCheck", "param.ns": "test.orders", "param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] } }' --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.

Para especificar el filtro de auditoría en un archivo de configuración, debe utilizar el formato YAML del archivo de configuración.

storage:
dbPath: data/db
security:
authorization: enabled
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ atype: "authCheck", "param.ns": "test.orders", "param.command": { $in: [ "find", "insert", "delete", "update", "findAndModify" ] } }'
setParameter: { auditAuthorizationSuccess: true }

Para filtrar por varios campos de mensajes de auditoría, puede especificar un operador de consulta de nivel superior como. Por ejemplo, el siguiente filtro captura operaciones $or donde atype es authenticate o la operación fue realizada por un usuario con el readWrite rol:

{
$or: [
{ atype: "authenticate" },
{ "roles.role": "readWrite" }
]
}

Para especificar un filtro de auditoría, encierre el documento del filtro entre comillas simples para pasarlo como un string.

mongod --dbpath data/db --auth --setParameter auditAuthorizationSuccess=true --auditDestination file --auditFilter '{ $or: [ { atype: "authenticate" }, { "roles.role": "readWrite" } ] }' --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.

Para especificar el filtro de auditoría en un archivo de configuración, debe utilizar el formato YAML del archivo de configuración.

storage:
dbPath: data/db
security:
authorization: enabled
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson
filter: '{ $or: [ { atype: "authenticate" }, { "roles.role": "readWrite" } ] }'
[1](1, 2) Puede habilitar el parámetro auditAuthorizationSuccess sin --auth habilitar; sin embargo, todas las operaciones devolverán éxito en las comprobaciones de autorización.

Volver

Configurar

En esta página