Compartilhar via


Log de auditoria no Banco de Dados do Azure para PostgreSQL – Servidor flexível

APLICA-SE A: Banco de dados do Azure para PostgreSQL – Servidor Flexível

Os logs de auditoria de atividades do banco de dados no Banco de Dados do Azure para servidor flexível do PostgreSQL estão disponíveis por meio da extensão pgaudit. pgaudit fornece o log de auditoria detalhado de sessões e/ou objetos.

Se você quiser logs no nível de recursos do Azure para operações como o dimensionamento de computação e armazenamento, veja o Log de atividades do Azure.

Considerações sobre o uso

Por padrão, instruções de log pgaudit e suas instruções de log regulares são emitidas usando o recurso de log padrão do Postgres. No Banco de Dados do Azure para PostgreSQL – Servidor flexível, você pode configurar todos os logs a serem enviados para o repositório de logs do Azure Monitor para análise posterior no Log Analytics. Se você habilitar o log de recursos do Azure Monitor, seus logs são enviados automaticamente (no formato JSON) para o Armazenamento do Microsoft Azure, Hubs de Eventos e/ou logs de Azure Monitor, dependendo de sua escolha.

Para saber como configurar o log no Armazenamento do Microsoft Azure, nos Hubs de Eventos ou nos logs de Azure Monitor, visite a seção de logs de recursos do artigo de logs do servidor.

Como instalar a extensão

Para poder usar a extensão pgaudit, você precisa incluir a extensão em uma lista de permitidos, além de carregá-la e criá-la no banco de dados no qual você planeja usá-la.

Definir as configurações da extensão

O pgaudit permite que você configure o log de auditoria de sessão ou objeto. O log de auditoria de sessão emite logs detalhados de instruções executadas. O log de auditoria de objeto tem o escopo de auditoria para relações específicas. Você pode optar por configurar um ou ambos os tipos de registro em log.

Quando tiver habilitado o pgaudit, você poderá configurar os parâmetros dele para iniciar o registro em log.

Para configurar o pgaudit, você pode seguir estas instruções:

Usando o portal do Azure:

  1. Acesse sua instância do Banco de Dados do Azure para o servidor flexível do PostgreSQL.

  2. No menu de recursos, em Configurações, selecione Parâmetros do servidor.

  3. Pesquise os pgauditparâmetros.

  4. Escolha o parâmetro de configurações apropriado a ser editado. Por exemplo, para iniciar o registro em log das instruções INSERT, UPDATE, DELETE, TRUNCATE e COPY, defina pgaudit.log como WRITE.

  5. Selecione o botão Salvar para salvar as alterações.

A documentação oficial do pgaudit fornece a definição de cada parâmetro. Teste os parâmetros primeiro e confirme que você está obtendo o comportamento esperado.

Por exemplo, a configuração de pgaudit.log_client como ON não só grava eventos de auditoria no log do servidor, mas também os envia para processos de cliente (como psql). Essa configuração deve ser deixada desabilitada.

pgaudit.log_level é habilitado somente quando pgaudit.log_client está ativado.

No servidor flexível Banco de Dados do Azure para PostgreSQL, pgaudit.log não pode ser definido usando um atalho de sinal (menos) -, conforme descrito na documentação do pgaudit. Todas as classes de instrução necessárias (LEITURA, GRAVAÇÃO etc.) devem ser especificadas individualmente.

Se você definir o parâmetro log_statement como DDL ou ALL e executar um comando CREATE ROLE/USER ... WITH PASSWORD ... ; ou ALTER ROLE/USER ... WITH PASSWORD ... ;, o PostgreSQL criará uma entrada nos logs do PostgreSQL na qual a senha é registrada em texto não escrito, o que poderá causar um possível risco de segurança. Esse é o comportamento esperado de acordo com o design do mecanismo PostgreSQL.

No entanto, você pode usar a extensão pgaudit e definir pgaudit.log como DDL, que não registra nenhuma instrução CREATE/ALTER ROLE no log do servidor Postgres, ao contrário do que ocorre quando você define log_statement como DDL. Se você precisar registrar essas instruções em log, também poderá definir pgaudit.log como ROLE, o que, durante o registro em log de CREATE/ALTER ROLE, editará a senha dos logs.

Formato do log de auditoria

Cada entrada de auditoria começa com AUDIT:. O formato do restante da entrada é detalhado na documentação do pgaudit.

Introdução

Para começar rapidamente, defina pgaudit.log como ALL e abra seus logs de servidor para examinar a saída.

Exibir logs de auditoria

A maneira como você acessa os logs depende do ponto de extremidade escolhido. Para o Armazenamento do Microsoft Azure, veja o artigo sobre conta de armazenamento de logs. Para os hubs de eventos, veja o artigo sobre fluxos de logs do Azure.

Para logs de Azure Monitor, os logs são enviados para o espaço de trabalho selecionado. Os logs do Postgres usam o modo de coleta AzureDiagnostics para que possam ser consultados a partir da tabela AzureDiagnostics. Saiba mais sobre como consultar e alertar na visão geral Consulta de logs do Azure Monitor.

Você pode usar essa consulta para começar. Você pode configurar alertas com base em consultas.

Pesquisar em todas as entradas do pgaudit nos logs do Postgres por um servidor específico no último dia

AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"