Menu Docs

Orientação para auditoria e registro do Atlas

Para monitorar e registrar as atividades da plataforma Atlas , use auditoria e registros.

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.

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 :

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.

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)

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:

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.

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

Execute o comando atlas auditing describe Atlas CLI para retornar a configuração de auditoria para o projeto especificado:

atlas auditing describe --output json

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"}'

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

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

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>"
  • Instale o Terraform.

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
}

Você não pode recuperar registros com Terraform. Em vez disso, use os seguintes endpoints da API de administração do Atlas :