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 registos de auditorias detalhados de sessões e/ou objetos.

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 predefinição, as instruções de registo pgAudit são emitidas juntamente com as instruções de registo regulares através da função de registo 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 de 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 o pgAudit

Antes de instalar a extensão pgAudit no Banco de Dados do Azure para servidor flexível PostgreSQL, você precisa permitir a extensão pgAudit para uso.

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 azure.extensions parâmetro.
  4. Selecione pgAudit como extensão que você deseja permitir-list. Captura de ecrã a mostrar a Base de Dados do Azure para PostgreSQL - extensões de listagem de permissões para instalação.

Usando a CLI do Azure:

Você pode permitir extensões de lista 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 o pgAudit, você precisa 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 tela mostrando o Banco de Dados do Azure para servidor flexível PostgreSQL habilitando shared_preload_libraries para pgaudit.

  5. Você pode verificar se o 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.

  6. Conecte-se ao seu servidor usando um cliente (como psql) e habilite a extensão pgAudit.

    CREATE EXTENSION pgaudit;
    

Gorjeta

Se vir um erro, confirme que reiniciou o servidor depois de guardar shared_preload_librarieso .

Configurações do pgAudit

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 habilitar o pgAudit, você pode configurar seus parâmetros para iniciar o registro. Para configurar o pgAudit, você pode seguir as instruções abaixo. Usando o portal do Azure:

  1. Selecione o servidor da Base de Dados do Azure para 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 WRITECaptura de tela mostrando o Banco de Dados do Azure para PostgreSQL - configurando o log com pgaudit
  5. Clique no botão Salvar para salvar as alterações

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

Nota

A configuração pgaudit.log_client como ON redirecionará os logs para um processo de 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.

Nota

No Banco de Dados do Azure para PostgreSQL, o servidor pgaudit.log flexível 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 (READ, WRITE, etc.) devem ser especificadas individualmente.

Nota

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 potencial risco de segurança. Este é o comportamento esperado de acordo com o design do mecanismo PostgreSQL. No entanto, você pode usar a extensão PGAudit e definir pgaudit.log='DDL' o 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, durante o registro 'CREATE/ALTER ROLE' , irá redigir a senha dos logs.

Formato do registo de auditoria

Cada entrada de auditoria é indicada perto AUDIT: do início da linha de log. O formato do restante da entrada é detalhado na documentação do pgAudit.

Introdução

Para começar rapidamente, defina pgaudit.log como WRITEe 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. Para o Armazenamento do Azure, consulte o artigo da conta de armazenamento de logs. Para Hubs de Eventos, consulte o artigo de logs do Azure de fluxo.

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 entradas pgAudit 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:"

Próximos passos