Docs Menu
Docs Home
/ /

Configurar filtros de auditoría

Nota

Auditoría en MongoDB Atlas

MongoDB Atlas admite auditorías para todos M10 y clústeres más grandes. Atlas permite especificar un filtro de auditoría con formato JSON, como se documenta a continuación, y usar 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 para Configurar la auditoría de base de datos yconfigurar un filtro de auditoría personalizado.

MongoDB Enterprise es compatible Auditoría de diversas operaciones. Cuando está habilitada, la función de auditoría registra, de forma predeterminada, todas las operaciones auditables, tal como se detalla en "Acciones, detalles y resultados de eventos de auditoría". Puede especificar filtros de eventos para limitar los eventos que se registran.

Puede configurar filtros de auditoría al inicio o puede 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 mongod los mongos nodos y se pueden configurar 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:

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

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

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 el archivo de configuración no se puede utilizar para especificar filtros de auditoría.

Para registrar todos los eventos auditables, no especifique un filtro de auditoría. De forma predeterminada, 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> campo puede incluir cualquier campo en el mensaje de auditoría. Para las operaciones de autenticación (poratype: "authenticate" ejemplo,), los mensajes de auditoría incluyen un db campo en el param documento.

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 mediante el uso del 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 habilitar el sistema de auditoría para registrar los éxitos de autorización mediante el auditAuthorizationSuccess parámetro. []1

Nota

Habilitar degrada el rendimiento más que registrar solo las fallas de auditAuthorizationSuccess 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 habilitar el sistema de auditoría para registrar los éxitos de autorización mediante el auditAuthorizationSuccess parámetro. []1

Nota

Habilitar degrada el rendimiento más que registrar solo las fallas de auditAuthorizationSuccess autorización.

Este filtro audita múltiples operaciones de lectura y escritura en la colección orders en 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 }

A partir de MongoDB 8.0, MongoDB puede escribir mensajes de registro en FormatoOCSF. El esquema OCSF contiene campos diferentes a los del mongo esquema predeterminado.

El siguiente filtro de auditoría captura las acciones de actividad de red que se registran en el esquema OCSF:

{ category_uid: 4 }

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 '{ category_uid: 4 }' --auditFormat JSON --auditSchema OCSF --auditPath data/db/auditLog.json

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: JSON
path: data/db/auditLog.json
filter: '{ category_uid: 4 }'
schema: OCSF
setParameter: { auditAuthorizationSuccess: true }

Para obtener más información sobre los mensajes de registro de OCSF, consulte Mensajes de auditoría de esquema de OCSF.

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 auditAuthorizationSuccess parámetro sin --auth habilitar; sin embargo, todas las operaciones devolverán éxito para las verificaciones de autorización.

Volver

Configurar

En esta página