Registrazione di controllo in Database di Azure per PostgreSQL - Server flessibile
SI APPLICA A: Database di Azure per PostgreSQL - Server flessibile
La registrazione di controllo delle attività del database in Database di Azure per PostgreSQL server flessibile è disponibile tramite l'estensione PostgreSQL Audit: pgaudit
. pgaudit
fornisce una sessione dettagliata e/o la registrazione di controllo degli oggetti.
Per i log a livello di risorsa di Azure per operazioni come il ridimensionamento delle risorse di calcolo e archiviazione, vedere Log attività di Azure.
Considerazioni sull'utilizzo
Per impostazione predefinita, pgaudit
le istruzioni di log e le normali istruzioni di log vengono generate usando la funzionalità di registrazione standard di Postgres. Nel server flessibile Database di Azure per PostgreSQL è possibile configurare tutti i log da inviare all'archivio log di Monitoraggio di Azure per analisi successive in Log Analytics. Se si abilita la registrazione delle risorse di Monitoraggio di Azure, i log vengono inviati automaticamente (in formato JSON) a Archiviazione di Azure, hub eventi e/o log di Monitoraggio di Azure, a seconda della scelta.
Per informazioni su come configurare la registrazione in Archiviazione di Azure, Hub eventi o log di Monitoraggio di Azure, vedere la sezione log delle risorse dell'articolo sui log del server.
Installazione del pgaudit
Prima di poter installare l'estensione pgaudit
in Database di Azure per PostgreSQL server flessibile, è necessario consentire pgaudit
l'uso dell'estensione elenco.
Tramite il portale di Azure:
1. Selezionare l'istanza del server flessibile Database di Azure per PostgreSQL.
1. Sulla barra laterale selezionare Parametri server.
1. Cercare il azure.extensions
parametro .
1. Selezionare pgaudit
come estensione da consentire.
Uso dell'interfaccia della riga di comando di Azure:
È possibile consentire le estensioni tramite il set di parametri dell'interfaccia della riga di comando comando.
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`
Per installare pgaudit
, è necessario includerlo nelle librerie di precaricamento condiviso del server. Per rendere effettiva una modifica al parametro shared_preload_libraries
di Postgres, è necessario riavviare il server. È possibile modificare i parametri usando il portale di Azure, l'interfaccia della riga di comando di Azure o l'API REST.
Tramite il portale di Azure:
Selezionare l'istanza del server flessibile di Database di Azure per PostgreSQL.
Nella barra laterale selezionare Parametri del server.
Cercare il
shared_preload_libraries
parametro.Selezionare
pgaudit
.È possibile verificare che
pgaudit
sia caricato in shared_preload_libraries eseguendo la query seguente in psql:show shared_preload_libraries;
Verrà visualizzato
pgaudit
nel risultato della query che restituirà shared_preload_libraries.Connettersi al server usando un client (ad esempio psql) e abilitare l'estensione
pgaudit
.CREATE EXTENSION `pgaudit`;
Suggerimento
Se viene visualizzato un errore, verificare che il server sia stato riavviato dopo il salvataggio di shared_preload_libraries
.
Impostazioni dipgaudit
pgaudit
consente di configurare la registrazione di controllo di sessione o oggetto. La registrazione del controllo sessione genera log dettagliati delle istruzioni eseguite. La registrazione del controllo oggetti ha come ambito il controllo relazioni specifiche. È possibile scegliere di configurare uno o entrambi i tipi di registrazione.
Dopo aver abilitato pgaudit
, è possibile configurarne i parametri per avviare la registrazione.
Per configurare pgaudit
è possibile seguire le istruzioni seguenti.
Tramite il portale di Azure:
Selezionare il database di Azure per il server PostgreSQL.
Nella barra laterale selezionare Parametri del server.
Cercare i parametri
pgaudit
.Selezionare il parametro di impostazioni appropriato da modificare. Ad esempio, per avviare la registrazione impostare
pgaudit.log
suWRITE
Selezionare il pulsante Salva per salvare le modifiche
La pgaudit
documentazione fornisce la definizione di ogni parametro. Testare prima i parametri e verificare di ottenere il comportamento previsto.
L'impostazione su pgaudit.log_client
ON reindirizzerà i log a un processo client (ad esempio psql) invece di essere scritto nel file. Questa impostazione viene in genere disabilitata.
pgaudit.log_level
viene abilitato solo quando pgaudit.log_client
è attivo.
In Database di Azure per PostgreSQL server pgaudit.log
flessibile non può essere impostato usando un collegamento con segno -
(meno) come descritto nella pgaudit
documentazione. Tutte le classi di istruzioni obbligatorie (READ, WRITE e così via) devono essere specificate singolarmente.
Se si imposta il parametro log_statement su DDL o ALL ed eseguire un CREATE ROLE/USER ... WITH PASSWORD ... ;
comando o ALTER ROLE/USER ... WITH PASSWORD ... ;
, PostgreSQL crea una voce nei log postgreSQL, in cui la password viene registrata in testo non crittografato, che potrebbe causare un potenziale rischio per la sicurezza. Si tratta del comportamento previsto per la progettazione del motore PostgreSQL.
È tuttavia possibile usare l'estensione pgaudit
e impostare il pgaudit.log=DDL
parametro nella pagina dei parametri del server, che non registra alcuna CREATE/ALTER ROLE
istruzione in Postgres Log, a differenza dell'impostazione Postgres log_statement=DDL
. Se è necessario registrare queste istruzioni, è anche possibile aggiungere pgaudit.log ='ROLE'
, che redigirà la password dai log durante la registrazione CREATE/ALTER ROLE
di .
Formato del log di controllo
Ogni voce di controllo è indicata da AUDIT:
vicini l'inizio della riga di log. Il formato del resto della voce è dettagliato nella pgaudit
documentazione.
Introduzione
Per iniziare rapidamente, impostare su pgaudit.log
WRITE
e aprire i log del server per esaminare l'output.
Visualizzazione dei log di controllo
Il modo in cui si accede ai log dipende dall'endpoint scelto. Vedere l'articolo log dell'account di archiviazione per Archiviazione di Azure. Vedere l'articolo Trasmettere i log di Azure per Hub eventi.
Per Log di Monitoraggio di Azure, i log vengono inviati all'area di lavoro selezionata. I log di Postgres usano la modalità di raccolta AzureDiagnostics, in modo che possano essere sottoposte a query dalla tabella AzureDiagnostics. I campi nella tabella sono descritti di seguito. Altre informazioni sull'esecuzione di query e avvisi sono disponibili nella panoramica query sui log di Monitoraggio di Azure.
Per iniziare, è possibile usare questa query. È possibile configurare gli avvisi in base alle query.
Cercare tutte le pgaudit
voci nei log di Postgres per un determinato server nell'ultimo giorno
AzureDiagnostics
| where Resource =~ "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"