Definición
Sintaxis
Para configurar auditConfig para su implementación, ejecute el siguiente comando en la base de datos admin:
db.adminCommand( { setClusterParameter: { auditConfig: <value> } } )
Para ver los valores actuales del parámetro de 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 establecerse entrue.Cuando
auditConfig.auditAuthorizationSuccessfalsees, el sistema de auditoría solo registra los fallos de autorizaciónauthCheckde. CuandoauditAuthorizationSuccessfalsees, la auditoría tiene un menor impacto en el rendimiento porque el sistema 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 del mensaje de auditoría, incluidos los devueltos en el documento param. Los valores de los campos son expresiones de condición de consulta.
Para ver un documento de filtro de muestra, consulte la Sección de ejemplos.
Comportamiento
La auditoría debe estar habilitada para utilizar auditConfig.
Recuperación de configuraciones de auditoría
Si la configuración de auditoría en tiempo de ejecución está habilitada, el auditAuthorizationSuccess parámetro no aparece en el mongod mongos archivo de configuración ni. El servidor no se iniciará si el parámetro está presente.
Si ejecuta getClusterParameter en auditConfig, los nodos que no participan en una configuración de auditoría en tiempo de ejecución devuelven sus configuraciones de archivo de configuración actuales para auditLog.filter y setParameter.auditAuthorizationSuccess.
Configuración de auditoría
Cuando establece configuraciones de auditoría con, los cambios surten setClusterParameter efecto inmediatamente en todos los servidores de configuración y fragmentos de un clúster fragmentado.
Establecer 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 al crear o eliminar una colección. Los mensajes de auditoría se han reformateado y aparecen en una sola línea en el archivo de registro.
db.adminCommand( { setClusterParameter: { auditConfig: { filter: { atype: { $in: [ "createCollection", "dropCollection" ] } }, auditAuthorizationSuccess: false } } } )
Después de configurar el parámetro auditConfig, si crea 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 elimina 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 }