Orientação para auditoria e registro do Atlas
Nesta página
Para monitorar e registrar as atividades da plataforma Atlas , use auditoria e registros.
Recursos para auditar e registro do Atlas
Auditoria
Disponível em clusters M10+
, a auditoria de banco de dados permite que você acompanhe a atividade do sistema para implementações com vários usuários. Como administrador do Atlas, você pode:
Confie nas configurações de auditoria padrão do Atlas. Por padrão, o Atlas realiza auditoria de autenticação de banco de dados em clusters
M10+
para registrar eventos de autenticação, incluindo aqueles referentes a:database users
endereços IP de origem
carimbos de data/hora para tentativas bem-sucedidas e com falha
Configure um filtro de auditoria em formato JSON para personalizar a auditoria do MongoDB e selecionar as ações, os usuários de banco de dados, as funções do Atlas e grupos LDAP que você deseja auditar. Se você criar um filtro de auditoria personalizado, poderá ignorar o uso do construtor de filtros de auditoria gerenciado da IU do Atlas e configurar seu próprio filtro personalizado para auditoria de eventos. Para uma lista completa de eventos que você pode configurar para auditar e para exemplos, consulte Auditoria do MongoDB e Exemplos de Filtros de Auditoria.
É possível configurar a auditoria manual da maioria das ações de evento do sistema documentadas no Atlas. A auditoria granular do banco de dados MongoDB permite que você acompanhe o uso de todos os comandos DDL (Data definition language), DML (data manipulation language) e DCL (data control language) em detalhes. Consulte também Configurar auditoria de banco de dados.
Acessando logs de auditoria
O Atlas retém os últimos 30 dias de mensagens de log e mensagens de auditoria de eventos do sistema. Você pode baixar os logs do Atlas a qualquer momento até o final de seus períodos de retenção usando a IU do Atlas, a API de administração do Atlas e o Atlas CLI.
Para saber mais, consulte Exibir e baixar registros do MongoDB.
Você pode revisar e atualizar sua configuração de auditoria por projeto. Utilize os seguintes comandos do Atlas CLI :
A descrição de auditoria do Atlas retorna a configuração de auditoria do projeto especificado.
atlas auditing update atualiza a configuração de auditoria do projeto especificado.
Você pode visualizar as tentativas de autenticação que os usuários fazem em seu cluster com a Atlas CLI, a API de administração do Atlas ou a UI do Atlas. O Atlas registra tentativas de autenticação bem-sucedidas e malsucedidas, incluindo o carimbo de data/hora de cada tentativa e qual usuário tentou autenticar.
Você também pode visualizar e filtrar o feed de atividades de uma organização ou projeto com a Atlas CLI, a API de administração do Atlas ou a UI do Atlas. O feed de atividades lista todos os eventos no nível da organização ou do projeto .
Para realizar uma auditar completa, você pode usar uma combinação de registros de auditar, mensagens de registro do MongoDB e o feed de atividades do projeto e da organização.
Recomendações para auditar e registro do Atlas
Recomendamos que você configure a auditoria de banco de dados ao provisionar seus clusters. A auditoria coloca uma carga adicional em seus clusters e aumenta os custos. Para otimizar os custos, você pode desativar a auditoria em ambientes inferiores para desenvolvimento. Alguns setores, como o de saúde e o de serviços financeiros, podem optar por manter a auditoria habilitada em ambientes de desenvolvimento por motivos de compliance.
Habilitar a auditoria para todos os usuários de banco de dados, incluindo usuários do serviço de aplicativo, pode afetar o desempenho do cluster. Recomendamos que você auditar apenas as ações dos usuários que necessitam de auditoria.
Para ambientes de preparação e produção, habilite a auditoria para obter segurança adicional.
Recomendamos que você auditar, no mínimo, os seguintes eventos:
Falha no logon
Atividade da sessão
Logon e logoff
Tentativas de executar funções não autorizadas
Alteração de senha
Alterações no acesso do usuário do banco de dados
Procedimentos armazenados de configuração do DDL e do sistema
Modificação de auditoria nativa
Executando uma operação de backup ou restauração
Alterando as configurações nativas de auditoria do DBMS
Modificando a segurança
Executando comandos de início e parada do banco de dados
Para todos os eventos anteriores, você deve incluir no registro de auditar as seguintes informações:
ID da sessão
Nome de host e endereço IP do cliente
Nome de host e endereço IP do servidor do banco de dados
Usuário do banco de dados
Nome do Banco de Dados
Usuário do sistema operacional
Nome do serviço/instância
Porta
Aplicativo
Query
Comando SQL
Objeto
Timestamp
Código de erro (se aplicável)
Acesso programático aos logs de auditoria
Para integrar com ferramentas além das integrações integradas, recomendamos que você recupere logs com as seguintes ferramentas programáticas e forneça a saída no formato JSON para suas ferramentas externas:
Para enviar logs continuamente para um bucket AWS S3, use os pontos de extremidade da API de Administração do Atlas para Exportação de Logs Baseada em Push.
Para recuperar registros de implantação e listas de eventos de projeto, use os endpoints da API de Administração do Atlas para registros e eventos de projeto e organização.
Para recuperar os registros de implantação, use o comando atlas deployment logs no Atlas CLI. Para saber mais, consulte Registros de sistema do Atlas.
Exemplos de Automação: Auditoria e Registro em Log do Atlas
Veja exemplos do Terraform para aplicar nossas recomendações de Staging/Produção em todos os pilares em um só lugar no Github.
Os exemplos seguintes mostram como recuperar e baixar registros e configurar a auditoria utilizando as ferramentas do Atlas para automação.
Além dos exemplos a seguir, veja a postagem no blog Simplificando o Gerenciamento de Logs para o Amazon S3 Usando Exportações de Log Baseadas em Push do Atlas com HashiCorp Terraform.
Atualizar configuração de auditoria
Execute o seguinte comando do Atlas CLI para auditar todos os eventos de autenticação de usuários conhecidos no seu projeto:
atlas auditing update --auditFilter '{"atype": "authenticate"}'
Execute o seguinte comando da Atlas CLI para auditar um usuário conhecido por meio de um arquivo de configuração:
atlas auditing update -f filter.json
Descrever a configuração de auditoria
Execute o comando atlas auditing describe Atlas CLI para retornar a configuração de auditoria para o projeto especificado:
atlas auditing describe --output json
Criar e usar filtro de auditoria
Crie um filtro de auditoria para auditar somente as operações de autenticação que ocorrem contra o banco de dados de teste. Para aprender mais, veja Configurar filtros de auditoria.
{ atype: "authenticate", "param.db": "test" }
Para usar um filtro de auditar que você criou, atualize a configuração de auditar usando o comando atlas auditing update Atlas CLI :
atlas auditing update --auditFilter '{"atype": "authenticate", "param.db": "test"}'
Obter logs
Para recuperar o log de acesso, use um comando semelhante ao seguinte. Este comando retorna uma lista formatada em JSON de todas as solicitações de autenticação feitas nos clusters denominados Cluster0
para o projeto com o ID 618d48e05277a606ed2496fe
:
atlas accesslogs list --output json --projectId 618d48e05277a606ed2496fe --clusterName Cluster0
Recuperar todos os eventos de registro da organização em um arquivo JSON
Para retornar todos os eventos da organização especificada, use um comando semelhante ao seguinte. Este comando retorna uma lista de eventos formatada em JSON para a organização com o ID 5dd5a6b6f10fab1d71a58495
:
atlas events organizations list --orgId 5dd5a6b6f10fab1d71a58495 --output json
Baixar registros
Execute o seguinte comando da Atlas CLI para baixar um arquivo compactado que contém os registros MongoDB para o host especificado em seu projeto.
atlas logs download atlas-lnmtkm-shard-00-00.ajlj3.mongodb.net mongodb.gz --projectId 56fd11f25f23b33ef4c2a331
O exemplo a seguir demonstra como habilitar a auditoria para seu sistema. Antes de criar recursos com Terraform, você deve:
Crie sua organização pagadora e crie uma chave de API para a organização pagadora. Armazene suas chaves públicas e privadas como variáveis de ambiente executando os seguintes comandos no terminal:
export MONGODB_ATLAS_PUBLIC_KEY="<insert your public key here>" export MONGODB_ATLAS_PRIVATE_KEY="<insert your private key here>"
Habilitar a auditoria e criar um filtro de auditoria para o cluster
Você pode configurar a auditoria manual da maioria das ações de evento do sistema documentadas criando filtros de auditar. Para saber mais sobre como configurar filtros de auditar, consulte Configurar filtros de auditoria.
Create a project resource "mongodbatlas_project" "project_test" { name = var.project_name org_id = var.org_id } Create a cluster with three nodes resource "mongodbatlas_advanced_cluster" "cluster_test" { project_id = mongodbatlas_project.project_test.id name = var.cluster_name cluster_type = "REPLICASET" replication_specs { region_configs { priority = 7 provider_name = "AWS" region_name = "US_EAST_1" electable_specs { instance_size = "M10" node_count = 3 } } } } Specify an auditing resource and enable auditing for a project. To configure auditing, specify the unique project ID. If you change this value to a different "project_id", this deletes the current audit settings for the original project. "audit_authorization_success" indicates whether the auditing system captures successful authentication attempts for audit filters using the "atype" : "authCheck" auditing event. Warning! If you set "audit_authorization_success" to "true", this can severely impact cluster performance. Enable this option with caution. "audit_filter" is the JSON-formatted audit filter. "enabled" denotes whether or not the project associated with the specified "{project_id}"" has database auditing enabled. Defaults to "false". Auditing created by API Keys must belong to an existing organization. In addition to arguments listed previously, the following attributes are exported: "configuration_type" denotes the configuration method for the audit filter. Possible values are: - "NONE" - auditing is not configured for the project. - "FILTER_BUILDER" - auditing is configured via the Atlas UI filter builder. - "FILTER_JSON" - auditing is configured via a custom filter in Atlas or API. resource "mongodbatlas_auditing" "test" { project_id = "mongodbatlas_project.project_test.id" audit_filter = "{ 'atype': 'authenticate', 'param': { 'user': 'auditAdmin', 'db': 'admin', 'mechanism': 'SCRAM-SHA-1' }}" audit_authorization_success = false enabled = true }
Obter logs
Você não pode recuperar registros com Terraform. Em vez disso, use os seguintes endpoints da API de administração do Atlas :
Use a API Admin de rastreamento de acesso para retornar registros de acesso para todas as tentativas de autenticação do banco de dados, identificado pelo nome do cluster ou do host.
Use APIs de Monitoramento e Logs para recuperar um arquivo de log compactado com mensagens de log para o host especificado.