Definición
Sintaxis
Para configurar auditConfig para su implementación, ejecute el siguiente comando en la base de datos de admin:
db.adminCommand( { setClusterParameter: { auditConfig: <value> } } )
Para ver los valores actuales del parámetro del clúster auditConfig, ejecute el siguiente comando en la base de datos admin:
db.adminCommand( { getClusterParameter: "auditConfig" } )
Campos de parámetros
auditConfig.auditAuthorizationSuccessTipo: booleano
Por defecto: false
Permite auditar los éxitos de autorización para la acción authCheck.
Para auditar las operaciones de lectura y escritura,
auditConfig.auditAuthorizationSuccessdebe configurarse entrue.Cuando
auditConfig.auditAuthorizationSuccessestáfalse, el sistema de auditoría solo registra los fallos de autorización paraauthCheck. CuandoauditAuthorizationSuccessestá enfalse, la auditoría tiene menos impacto en el rendimiento porque el sistema de auditoría solo registra los fallos de autorización.
auditConfig.filterTipo: documento
Por defecto: ninguno
Expresión de filtro que controla qué tipos de operaciones registra el sistema de auditoría.
Los campos del documento pueden ser cualquier campo en el mensaje de auditoría, incluyendo los campos que se devuelven en el documento param. Los valores del campo son expresiones de condiciones de query.
Para ver un documento de filtro de muestra, consulta la Sección de ejemplos.
Comportamiento
La auditoría debe estar habilitada para usar auditConfig.
Recuperando configuraciones de auditar
Si la configuración de auditoría en tiempo de ejecución está habilitada, el parámetro auditAuthorizationSuccess no aparece en el archivo de configuración mongod ni en el mongos. El servidor fallará al iniciar si el parámetro está presente.
Si ejecutas getClusterParameter en auditConfig, los nodos que no participan en una configuración de auditoría de tiempo de ejecución devuelven su configuración de archivo de configuración actual para auditLog.filter y setParameter.auditAuthorizationSuccess.
Configuración de las auditorías
Cuando configurás las configuraciones de auditoría con setClusterParameter, los cambios entran en vigor inmediatamente en todos los servidores de configuración y particiones de un clúster particionado.
Configurar un filtro de auditoría demasiado amplio o habilitar auditConfig.auditAuthorizationSuccess puede degradar el rendimiento.
Ejemplo
El siguiente ejemplo utiliza el comando setClusterParameter para habilitar la auditoría cuando se crea o elimina una colección. Los mensajes de auditoría han sido reformateados. Aparecen en una sola línea en la entrada de registro.
db.adminCommand( { setClusterParameter: { auditConfig: { filter: { atype: { $in: [ "createCollection", "dropCollection" ] } }, auditAuthorizationSuccess: false } } } )
Después de configurar el parámetro auditConfig, si creas una colección inventory en la base de datos sales, el sistema de auditoría registra un mensaje similar al siguiente:
{ "atype" : "createCollection", "ts" : { "$date" : "2021-08-09T13:45:05.372+00:00" }, "uuid" : { "$binary" : "RKU/YLizS6K9se2GUU7ZVQ==", "$type" : "04" }, "local" : { "ip" : "127.0.0.1", "port" : 27502 }, "remote" : { "ip" : "127.0.0.1", "port" : 51918 }, "users" : [], "roles" : [], "param" : { "ns" : "sales.inventory" }, "result" : 0 }
Si la colección inventory se descarta de la base de datos sales, el sistema de auditoría registra un mensaje similar al siguiente:
{ "atype" : "dropCollection", "ts" : { "$date" : "2021-08-09T13:45:00.661+00:00" }, "uuid" : { "$binary" : "0gle4/pSQli+LUcz43ykag==", "$type" : "04" }, "local" : { "ip" : "127.0.0.1", "port" : 27502 }, "remote" : { "ip" : "127.0.0.1", "port" : 51928 }, "users" : [], "roles" : [], "param" : { "ns" : "sales.inventory" }, "result" : 0 }