Sdílet prostřednictvím


Protokolování auditu na flexibilním serveru Azure Database for PostgreSQL

PLATÍ PRO: Flexibilní server Azure Database for PostgreSQL

Protokolování auditu databázových aktivit na flexibilním pgaudit serveru Azure Database for PostgreSQL je dostupné prostřednictvím rozšíření. pgaudit poskytuje podrobné protokolování auditu a/nebo objektu.

Pokud chcete protokoly na úrovni prostředků Azure pro operace, jako je škálování výpočetních prostředků a úložiště, přečtěte si protokol aktivit Azure.

Důležité informace o využití

Ve výchozím nastavení pgaudit se příkazy protokolů a běžné příkazy protokolu generují pomocí standardního protokolování Postgres. Na flexibilním serveru Azure Database for PostgreSQL můžete nakonfigurovat odesílání všech protokolů do úložiště protokolů služby Azure Monitor pro pozdější analýzu v Log Analytics. Pokud povolíte protokolování prostředků služby Azure Monitor, vaše protokoly se automaticky odesílají (ve formátu JSON) do služby Azure Storage, Event Hubs a/nebo do protokolů služby Azure Monitor v závislosti na vaší volbě.

Informace o nastavení protokolování do protokolů azure Storage, Event Hubs nebo Azure Monitoru najdete v části protokoly prostředků článku protokoly serveru.

Instalace rozšíření

Abyste mohli rozšíření používatpgaudit, musíte povolit, načíst a vytvořit rozšíření v databázi, na které ho plánujete použít.

Konfigurace nastavení rozšíření

pgaudit umožňuje konfigurovat protokolování auditu relací nebo objektů. Protokolování auditu relace generuje podrobné protokoly spuštěných příkazů. Protokolování auditu objektů je auditováno na konkrétní vztahy. Můžete nastavit jeden nebo oba typy protokolování.

Jakmile povolítepgaudit, můžete nakonfigurovat jeho parametry tak, aby se spustilo protokolování.

Ke konfiguraci pgauditmůžete postupovat podle těchto pokynů:

Pomocí webu Azure Portal:

  1. Vyberte instanci flexibilního serveru Azure Database for PostgreSQL.

  2. V nabídce prostředků v části Nastavení vyberte Parametry serveru.

  3. Vyhledejte pgaudit parametry.

  4. Vyberte příslušný parametr, který chcete upravit. Chcete-li například spustit protokolování INSERT, , TRUNCATEUPDATEDELETEa COPY příkazy, nastavit pgaudit.log na WRITE.

  5. Pokud chcete uložit změny, vyberte tlačítko Uložit .

Oficiální dokumentace pgaudit obsahuje definici každého parametru. Nejprve otestujte parametry a ověřte, že dostáváte očekávané chování.

Nastavení ono například pgaudit.log_client nejen zapisuje události auditu do protokolu serveru, ale také je odesílá do klientských procesů (jako je psql). Toto nastavení by se obecně mělo nechávat zakázané.

Nastavení pgaudit.log_level je povolené pouze v případě, že je povolené nastavení pgaudit.log_client.

Na flexibilním serveru pgaudit.log Azure Database for PostgreSQL není možné nastavit zástupce se znaménkem - (minus), jak je popsáno v pgaudit dokumentaci. Všechny požadované třídy příkazů (READ, WRITE atd.) by měly být zadány jednotlivě.

Pokud nastavíte log_statement parametr na DDL nebo spustíte CREATE ROLE/USER ... WITH PASSWORD ... ; příkaz nebo ALL ALTER ROLE/USER ... WITH PASSWORD ... ;, pak PostgreSQL vytvoří položku v protokolech PostgreSQL, kde se heslo zaprotokoluje v prostém textu, což může způsobit potenciální bezpečnostní riziko. Jedná se o očekávané chování podle návrhu modulu PostgreSQL.

Můžete však použít pgaudit rozšíření a nastavit pgaudit.log na DDL, který nezaznamenává žádné CREATE/ALTER ROLE příkazy v protokolu serveru Postgres, na rozdíl od toho, když nastavíte log_statement DDL. Pokud potřebujete tyto příkazy zaprotokolovat, můžete také nastavit pgaudit.log, který ROLEpři protokolování CREATE/ALTER ROLEupraví heslo z protokolů .

Formát protokolu auditu

Každá položka auditu začíná AUDIT:na . Formát zbytku položky je podrobně popsán v dokumentaci .pgaudit

Začínáme

Pokud chcete rychle začít, nastavte pgaudit.log na ALLa otevřete protokoly serveru a zkontrolujte výstup.

Zobrazení protokolů auditu

Způsob, jakým přistupujete k protokolům, závisí na zvoleném koncovém bodu. Přečtěte si článek o účtu úložiště protokolů pro Azure Storage. Podívejte se na článek streamu protokolů Azure pro službu Event Hubs.

V případě protokolů služby Azure Monitor se protokoly odesílají do vybraného pracovního prostoru. Protokoly Postgres používají režim shromažďování AzureDiagnostics , aby se mohly dotazovat z tabulky AzureDiagnostics. Další informace o dotazování a upozorňování najdete v přehledu dotazů protokolů služby Azure Monitor.

Tento dotaz můžete použít k zahájení práce. Výstrahy můžete nakonfigurovat na základě dotazů.

Vyhledání všech pgaudit položek v protokolech Postgres pro konkrétní server za poslední den

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