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 una muestra de documento de filtro, 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 }