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 servidor flexível do Banco de Dados do Azure para PostgreSQL está disponível por meio da extensão de Auditoria do PostgreSQL: pgaudit
. 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álises posteriores 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.
Instalação pgaudit
Antes de instalar pgaudit
a extensão no Banco de Dados do Azure para o servidor flexível PostgreSQL, você precisa permitir a extensão de lista pgaudit
para uso.
Usando o portal do Azure:
1. Selecione seu Banco de Dados do Azure para instância de servidor flexível do PostgreSQL.
1. Na barra lateral, selecione Parâmetros do servidor.
1. Procure o azure.extensions
parâmetro.
1. Selecione pgaudit
como a extensão que você deseja permitirlist.
Usando a CLI do Azure:
Você pode permitir extensões por meio do comando conjunto de parâmetros CLI.
az postgres flexible-server parameter set --resource-group <your resource group> --server-name <your server name> --subscription <your subscription id> --name azure.extensions --value `pgaudit`
Para instalar pgaudit
o , você deve incluí-lo nas bibliotecas de pré-carregamento compartilhadas do servidor. Uma alteração no parâmetro do Postgres shared_preload_libraries
requer uma reinicialização do servidor para entrar em vigor. Você pode alterar parâmetros usando o portal do Azure, a CLI do Azure ou a API REST.
Usando o portal do Azure:
Selecione sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL.
Na barra lateral, selecione Parâmetros do servidor.
Procure o
shared_preload_libraries
parâmetro.Selecione
pgaudit
.Você pode verificar se
pgaudit
está carregado no shared_preload_libraries executando a seguinte consulta no psql:show shared_preload_libraries;
Você deve ver
pgaudit
no resultado da consulta que retornará shared_preload_libraries.Conecte-se ao seu servidor usando um cliente (como psql) e habilite a
pgaudit
extensão.CREATE EXTENSION `pgaudit`;
Gorjeta
Se vir um erro, confirme que reiniciou o servidor depois de guardar shared_preload_libraries
o .
Definições dopgaudit
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 habilitar pgaudit
o , você pode configurar seus parâmetros para iniciar o registro.
Para configurar pgaudit
, você pode seguir as instruções abaixo.
Usando o portal do Azure:
Selecione seu Banco de Dados do Azure para o servidor PostgreSQL.
Na barra lateral, selecione Parâmetros do servidor.
Procure os
pgaudit
parâmetros.Escolha o parâmetro de configurações apropriado para editar. Por exemplo, para iniciar o log, defina
pgaudit.log
comoWRITE
Selecione o botão Salvar para salvar as alterações
A pgaudit
documentação fornece a definição de cada parâmetro. Teste os parâmetros primeiro e confirme se você está obtendo o comportamento esperado.
A configuração pgaudit.log_client
como ON redirecionará os logs para um processo do cliente (como psql) em vez de serem gravados no arquivo. 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 parâmetro log_statement como DDL 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 potencial de segurança. Este é o comportamento esperado de acordo com o design do mecanismo PostgreSQL.
No entanto, você pode usar a pgaudit
extensão e definir o pgaudit.log=DDL
parâmetro na página de parâmetros do servidor, que não registra nenhuma CREATE/ALTER ROLE
instrução no Postgres Log, ao contrário da configuração do Postgres log_statement=DDL
. Se você precisar registrar essas instruções, você pode adicionar pgaudit.log ='ROLE'
adicionalmente, que retira a senha dos logs durante o registro CREATE/ALTER ROLE
.
Formato do registo de auditoria
Cada entrada de auditoria é indicada perto AUDIT:
do início da linha de log. O formato do resto da entrada é detalhado na pgaudit
documentação.
Introdução
Para iniciar rapidamente, defina pgaudit.log
como WRITE
, 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. Os campos na tabela são descritos abaixo. 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 =~ "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"