Definição
Sintaxe
Para configurar o auditConfig para seu sistema, execute o seguinte comando no banco de dados do admin :
db.adminCommand( { setClusterParameter: { auditConfig: <value> } } )
Para exibir os valores atuais do parâmetro de cluster do auditConfig , execute o seguinte comando no banco de dados do admin :
db.adminCommand( { getClusterParameter: "auditConfig" } )
Campos de parâmetros
auditConfig.auditAuthorizationSuccessTipo: booleano
Padrão: false
Permite a auditoria de êxitos de autorização para a ação authCheck.
Para auditar operações de leitura e gravação, o
auditConfig.auditAuthorizationSuccessdeve ser configurado paratrue.Quando
auditConfig.auditAuthorizationSuccesséfalse, o sistema de auditoria registra somente as falhas de autorização paraauthCheck. QuandoauditAuthorizationSuccesséfalse, a auditoria tem menos impacto no desempenho porque o sistema de auditoria registra apenas falhas de autorização.
auditConfig.filterTipo: document
Padrão: nenhum
expressão de filtro que controla quais tipos de operações o sistema de auditoria registra.
Os campos do documento podem ser qualquer campo da mensagem de auditoria, incluindo os campos retornados no documento de parâmetro . Os valores de campo são expressões de condição de query.
Para visualizar um documento de filtro de amostra, consulte a seção Exemplos .
Comportamento
A auditoria deve ser habilitada para usar o auditConfig.
Recuperando configurações de auditoria
Se a configuração de auditoria de tempo de execução estiver habilitada, o parâmetro auditAuthorizationSuccess não aparecerá no arquivo de configuração mongod ou mongos . O servidor falhará ao iniciar se o parâmetro estiver presente.
Se você executar getClusterParameter em auditConfig , os nós que não participam de uma configuração de auditoria de tempo de execução retornarão suas configurações atuais do arquivo de configuração para auditLog.filter e setParameter.auditAuthorizationSuccess .
Definindo configurações de auditoria
Quando você define configurações de auditoria com setClusterParameter, as alterações entram em vigor imediatamente em todos os servidores de configuração e fragmentos em um cluster fragmentado.
Configurar um filtro de auditoria muito amplo ou ativar o auditConfig.auditAuthorizationSuccess pode prejudicar o desempenho.
Exemplo
O exemplo seguinte utiliza o comando setClusterParameter para habilitar a auditoria quando uma collection é criada ou excluída. As mensagens de auditoria foram reformatadas. Eles aparecem em uma única linha no arquivo de log.
db.adminCommand( { setClusterParameter: { auditConfig: { filter: { atype: { $in: [ "createCollection", "dropCollection" ] } }, auditAuthorizationSuccess: false } } } )
Após configurar o parâmetro auditConfig , se você criar uma collection inventory no reconhecimento de data center sales , o sistema de auditoria registrará uma mensagem semelhante à seguinte:
{ "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 }
Se a coleção inventory for descartada do banco de dados sales , o sistema de auditoria registrará uma mensagem semelhante à seguinte:
{ "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 }