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
O log de auditoria de atividades de banco de dados no Banco de Dados do Azure para o servidor flexível PostgreSQL está disponível por meio da pgaudit
extensão. pgaudit
fornece sessão detalhada e/ou registro de auditoria de objeto.
Se você quiser logs no nível de recursos do Azure para operações como computação e dimensionamento de armazenamento, consulte o Log de Atividades do Azure.
Considerações sobre o uso
Por padrão, pgaudit
as instruções de log e suas instruções de log regulares são emitidas usando o recurso de registro padrão do Postgres. No servidor flexível do Banco de Dados do Azure para PostgreSQL, 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 serão enviados automaticamente (no formato JSON) para o Armazenamento do Azure, Hubs de Eventos e/ou logs do Azure Monitor, dependendo da sua escolha.
Para saber como configurar o registo no Armazenamento do Azure, Hubs de Eventos ou registos do Azure Monitor, visite a secção de registos de recursos do artigo Registos do servidor.
Instalando a extensão
Para poder usar pgaudit
a extensão, você precisa permitir, carregar e criar a extensão no banco de dados no qual você planeja usá-la.
Definir configurações de extensão
pgaudit
Permite configurar 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 objetos tem o escopo da auditoria para relações específicas. Você pode optar por configurar um ou ambos os tipos de registro.
Depois de ativar pgaudit
o , você pode configurar seus parâmetros para iniciar o registro.
Para configurar pgaudit
o , você pode seguir estas instruções:
Usando o portal do Azure:
Selecione sua instância do Banco de Dados do Azure para o servidor flexível PostgreSQL.
No menu de recursos, em Configurações, selecione Parâmetros do servidor.
Procure os
pgaudit
parâmetros.Escolha o parâmetro apropriado para editar. Por exemplo, para iniciar o registro em log , , , , e
COPY
instruções, definapgaudit.log
comoWRITE
.TRUNCATE
DELETE
UPDATE
INSERT
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 se você está obtendo o comportamento esperado.
Por exemplo, a configuração pgaudit.log_client
como ON não apenas grava eventos de auditoria no log do servidor, mas também os envia para processos do cliente (como psql). Esta definição deve, normalmente, ser deixada desativada.
pgaudit.log_level
é ativado apenas quando pgaudit.log_client
está ativado.
No Banco de Dados do Azure para servidor flexível PostgreSQL, pgaudit.log
não pode ser definido usando um -
atalho de sinal (menos) conforme descrito na pgaudit
documentação. Todas as classes de instrução necessárias (READ, WRITE, etc.) devem ser especificadas individualmente.
Se você definir o log_statement
parâmetro como ou ALL
e executar um CREATE ROLE/USER ... WITH PASSWORD ... ;
comando ou ALTER ROLE/USER ... WITH PASSWORD ... ;
, o PostgreSQL criará uma entrada nos logs do PostgreSQL onde a senha é registrada em texto não criptografado, o que pode causar um risco DDL
potencial à segurança. É o comportamento esperado de acordo com o design do mecanismo PostgreSQL.
No entanto, você pode usar a pgaudit
extensão e definir pgaudit.log
como DDL
, que não registra nenhuma CREATE/ALTER ROLE
instrução no log do servidor Postgres, ao contrário do que acontece quando você define log_statement
como DDL
. Se precisar registrar essas instruções, você também pode definir pgaudit.log
como ROLE
, que retira a senha dos logs durante o registro CREATE/ALTER ROLE
.
Formato do registo de auditoria
Cada entrada de auditoria começa com AUDIT:
. O formato do resto da entrada é detalhado na documentação do pgaudit
.
Introdução
Para iniciar rapidamente, defina pgaudit.log
como ALL
, e abra os logs do servidor para revisar a saída.
Ver registos de auditoria
A maneira como você acessa os logs depende de qual ponto de extremidade você escolher. Consulte o artigo da conta de armazenamento de logs para o Armazenamento do Azure. Consulte o artigo de logs do Azure de fluxo para Hubs de Eventos.
Para os Logs do 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 consultas e alertas na visão geral da consulta Logs do Azure Monitor.
Você pode usar essa consulta para começar. Você pode configurar alertas com base em consultas.
Procure todas as pgaudit
entradas nos logs do Postgres para um determinado servidor no último dia
AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"