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 la registrazione di controllo dettagliata per sessioni e/o oggetti.

Per i log a livello di risorsa di Azure per operazioni come il calcolo e il ridimensionamento dell'archiviazione, vedere il log attività di Azure.

Considerazioni sull'utilizzo

Per impostazione predefinita, le istruzioni di log di pgAudit vengono emesse insieme alle istruzioni di log regolari usando la funzionalità di registrazione standard di Postgres. In Database di Azure per PostgreSQL server flessibile è 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 verranno inviati automaticamente (in formato JSON) a Archiviazione di Azure, Hub eventi e/o i log di Monitoraggio di Azure, a seconda della scelta.

Per informazioni su come configurare la registrazione per Archiviazione di Azure, hub eventi o log di Monitoraggio di Azure, vedere la sezione log delle risorse dell'articolo sui log del server.

Installazione di pgAudit

Prima di poter installare l'estensione pgAudit in Database di Azure per PostgreSQL server flessibile, è necessario consentire l'uso dell'estensione pgAudit elenco.

Uso del portale di Azure:

  1. Selezionare l'istanza del server flessibile Database di Azure per PostgreSQL.
  2. Nella barra laterale selezionare Parametri server.
  3. Cercare il azure.extensions parametro.
  4. Selezionare pgAudit come estensione da consentire. Screenshot showing Azure Database for PostgreSQL - allow-listing extensions for installation.

Uso dell'interfaccia della riga di comando di Azure:

È possibile consentire l'elenco di estensioni tramite il comando set di parametri dell'interfaccia della riga di 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 di shared_preload_libraries Postgres, è necessario riavviare il server. È possibile modificare i parametri usando la portale di Azure, l'interfaccia della riga di comando di Azure o l'API REST.

Uso del portale di Azure:

  1. Selezionare l'istanza del server flessibile Database di Azure per PostgreSQL.

  2. Nella barra laterale selezionare Parametri server.

  3. Cercare il shared_preload_libraries parametro.

  4. Selezionare pgaudit. Screenshot showing Azure Database for PostgreSQL flexible server enabling shared_preload_libraries for pgaudit.

  5. È possibile verificare che pgaudit sia caricato in shared_preload_libraries eseguendo la query seguente in psql:

    show shared_preload_libraries;
    

    Nel risultato della query verrà visualizzato pgaudit che restituirà shared_preload_libraries.

  6. Connessione 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 shared_preload_librariesdi .

Impostazioni pgAudit

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 di controllo degli oggetti ha come ambito 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. Uso del portale di Azure:

  1. Selezionare il server di Database di Azure per PostgreSQL.
  2. Nella barra laterale selezionare Parametri server.
  3. Cercare i pgaudit parametri.
  4. Selezionare il parametro di impostazioni appropriato da modificare. Ad esempio, per avviare la registrazione impostata su pgaudit.logWRITEScreenshot showing Azure Database for PostgreSQL - configuring logging with pgaudit
  5. Fare clic sul pulsante Salva per salvare le modifiche

La documentazione di pgAudit fornisce la definizione di ogni parametro. Testare prima i parametri e verificare di ottenere il comportamento previsto.

Nota

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.

Nota

In Database di Azure per PostgreSQL server pgaudit.log flessibile non è possibile impostare un collegamento con segno - (meno) come descritto nella documentazione di pgAudit. Tutte le classi di istruzioni obbligatorie (READ, WRITE e così via) devono essere specificate singolarmente.

Nota

Se si imposta il parametro log_statement su DDL o ALL e si esegue 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 può causare un potenziale rischio per la sicurezza. Questo comportamento è previsto in base alla progettazione del motore PostgreSQL. È tuttavia possibile usare l'estensione PGAudit e impostare pgaudit.log='DDL' il 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, è possibile aggiungere pgaudit.log ='ROLE' anche , che, durante la registrazione 'CREATE/ALTER ROLE' , redigirà la password dai log.

Formato del log di controllo

Ogni voce di controllo è indicata dall'inizio AUDIT: della riga di log. Il formato del resto della voce è dettagliato nella documentazione di pgAudit.

Attività iniziali

Per iniziare rapidamente, impostare su pgaudit.logWRITEe 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. Per Archiviazione di Azure, vedere l'articolo sull'account di archiviazione dei log. Per Hub eventi, vedere l'articolo Trasmettere i log di Azure.

Per i 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 delle query sui log di Monitoraggio di Azure.

È possibile usare questa query per iniziare. È possibile configurare gli avvisi in base alle query.

Cercare tutte le voci pgAudit 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:"

Passaggi successivi