Partilhar 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

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.

Captura de ecrã da lista de permissões na Base de Dados do Azure para PostgreSQL.

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 pgaudito , 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:

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

  2. Na barra lateral, selecione Parâmetros do servidor.

  3. Procure o shared_preload_libraries parâmetro.

  4. Selecione pgaudit.

    Captura de ecrã a mostrar a Base de Dados do Azure para servidor flexível PostgreSQL a ativar shared_preload_libraries para 'pgaudit'.

  5. Você pode verificar se pgauditestá carregado no shared_preload_libraries executando a seguinte consulta no psql:

    show shared_preload_libraries;
    

    Você deve ver pgauditno resultado da consulta que retornará shared_preload_libraries.

  6. 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_librarieso .

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 pgaudito , 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:

  1. Selecione seu Banco de Dados do Azure para o servidor PostgreSQL.

  2. Na barra lateral, selecione Parâmetros do servidor.

  3. Procure os pgaudit parâmetros.

  4. Escolha o parâmetro de configurações apropriado para editar. Por exemplo, para iniciar o log, defina pgaudit.log como WRITE

  5. 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:"