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 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 establecerse 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 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, consulta la Sección de ejemplos.
Comportamiento
La auditoría debe estar habilitada para utilizar 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 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.
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 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 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 }