Auditprotokollierung in Azure Database for PostgreSQL – Flexible Server

Sie können Datenbankaktivitäten in Azure Database for PostgreSQL mithilfe der pgaudit Erweiterung überwachen. pgaudit bietet detaillierte Sitzungs- und Objektüberwachungsprotokollierung.

Wenn Sie Azure-Protokolle auf Ressourcenebene für Vorgänge wie Compute- und Speicherskalierung sehen möchten, lesen Sie das Azure-Aktivitätsprotokoll.

Überlegungen zur Verwendung

Standardmäßig protokolliert pgaudit Anweisungen, und die Standardprotokollierung von Postgres gibt Ihre regulären Protokollmeldungen aus. In Azure Database for PostgreSQL können Sie alle Protokolle so konfigurieren, dass sie zur späteren Analyse in Log Analytics an den Azure Monitor Protokollspeicher gesendet werden. Wenn Sie Azure Monitor Ressourcenprotokollierung aktivieren, werden Ihre Protokolle automatisch (im JSON-Format) an Azure Storage, Event Hubs und Azure Monitor Protokolle gesendet, je nach Ihrer Wahl.

Weitere Informationen zum Einrichten der Protokollierung für Azure Storage, Event Hubs oder Azure Monitor-Protokolle finden Sie im Abschnitt „Ressourcenprotokolle“ des Artikels Serverprotokolle.

Installieren der Erweiterung

Um die pgaudit-Erweiterung zu verwenden, fügen Sie sie der Zulassungsliste hinzu, laden Sie sie und erstellen Sie sie in der Datenbank, in der Sie sie verwenden möchten.

Konfigurieren der Erweiterungseinstellungen

pgaudit ermöglicht es Ihnen, die Sitzungs- oder Objektüberwachungsprotokollierung zu konfigurieren. Bei der Sitzungsüberwachungsprotokollierung werden detaillierte Protokolle von ausgeführten Anweisungen ausgegeben. Bei der Objektüberwachungsprotokollierung ist die Überwachung auf bestimmte Beziehungen gerichtet. Sie können auswählen, ob Sie einen oder beide Protokollierungstypen einrichten möchten.

Konfigurieren Sie nach der Aktivierung pgauditdie Parameter so, dass die Protokollierung gestartet wird.

Führen Sie zum Konfigurieren pgauditdie folgenden Anweisungen aus:

Verwenden Sie das Azure-Portal:

  1. Wählen Sie Ihre Instanz des flexiblen Azure Database for PostgreSQL-Servers aus.

  2. Wählen Sie im Ressourcenmenü unter dem Abschnitt "Einstellungen " die Option "Parameter" aus.

  3. Suchen Sie nach den pgaudit-Parametern.

  4. Wählen Sie den entsprechenden Parameter zum Bearbeiten aus. Wenn Sie beispielsweise die Protokollierung von INSERT-, UPDATE-, DELETE-, TRUNCATE- und COPY-Anweisungen starten möchten, setzen Sie pgaudit.log auf WRITE.

  5. Wählen Sie Speichern, um Ihre Änderungen zu speichern.

Die offizielle -Dokumentation von pgaudit stellt die Definition der einzelnen Parameter bereit. Testen Sie zuerst die Parameter, und vergewissern Sie sich, dass Sie das erwartete Verhalten aufweisen.

Wenn beispielsweise pgaudit.log_client auf ON festgelegt wird, werden Audit-Ereignisse nicht nur in das Serverprotokoll geschrieben, sondern auch an Client-Prozesse (wie psql) gesendet. Lassen Sie diese Einstellung im Allgemeinen deaktiviert.

pgaudit.log_level ist nur aktiviert, wenn pgaudit.log_client aktiviert ist.

In Azure Database for PostgreSQL – Flexibler Server können Sie pgaudit.log nicht mithilfe des Kurzzeichens -- (Minus) festlegen, wie in der pgauditDokumentation beschrieben. Geben Sie alle erforderlichen Anweisungsklassen (READ, WRITEusw.) einzeln an.

Wenn Sie den Parameter log_statement auf DDL oder ALL setzen und einen CREATE ROLE/USER ... WITH PASSWORD ... ;- oder ALTER ROLE/USER ... WITH PASSWORD ... ;-Befehl ausführen, erstellt PostgreSQL einen Eintrag in den PostgreSQL-Protokollen, wobei das Kennwort im Klartext protokolliert wird, was ein potenzielles Sicherheitsrisiko darstellen kann. Dieses Verhalten wird gemäß dem Design des PostgreSQL-Moduls erwartet.

Sie können jedoch die pgaudit-Erweiterung verwenden und pgaudit.log auf DDL festlegen, was keineCREATE/ALTER ROLE-Anweisung im Postgres-Serverprotokoll aufzeichnet, im Gegensatz zur Festlegung von log_statement auf DDL. Wenn Sie diese Meldungen protokollieren müssen, können Sie auch pgaudit.log auf ROLE setzen; dadurch wird das Passwort in den Protokollen maskiert, während CREATE/ALTER ROLE protokolliert wird.

Format der Überwachungsprotokolle

Jeder Überwachungseintrag beginnt mit AUDIT:. Das Format des restlichen Eintrags wird in der -Dokumentation von pgaudit ausführlich erläutert.

Erste Schritte

Legen Sie für einen schnellen Einstieg pgaudit.log auf ALL fest, und öffnen Sie Ihre Serverprotokolle, um die Ausgabe zu überprüfen.

Anzeigen von Auditprotokollen

Die Methode für den Zugriff auf die Protokolle hängt davon ab, welchen Endpunkt Sie auswählen. Informationen zu Azure Storage finden Sie im Artikel Protokollspeicherkonto. Informationen zu Event Hubs finden Sie im Artikel zum Streamen von Azure-Protokollen.

Für Azure Monitor Protokolle senden Sie Protokolle an den ausgewählten Arbeitsbereich. Die Postgres-Protokolle verwenden den AzureDiagnostics-Sammlungsmodus , sodass Sie sie aus der AzureDiagnostics-Tabelle abfragen können. Weitere Informationen zum Abfragen und Warnen finden Sie in der Azure Monitor Protokollabfrageübersicht.

Sie können diese Abfrage für den Einstieg verwenden. Sie können Warnungen basierend auf Abfragen konfigurieren.

Suchen Sie nach allen pgaudit Einträgen in Postgres-Protokollen für einen bestimmten Server am letzten Tag.

AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"

Upgrade der Hauptversion mit installierter pgaudit-Erweiterung

Während eines Hauptversionsupgrades wird die pgaudit-Erweiterung automatisch gelöscht und nach Abschluss des Upgrades neu erstellt. Während der Prozess die Erweiterung wiederhergestellt, behält er keine benutzerdefinierten Konfigurationen, die in pgaudit.log oder anderen zugehörigen Parametern festgelegt sind, automatisch bei.