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

Pomocí rozšíření můžete auditovat databázové aktivity v Azure Database for PostgreSQLpgaudit. pgaudit poskytuje podrobné protokolování relací a objektů pro účely auditu.

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 zaznamenává zprávy a standardní mechanismus pro protokolování v Postgresu zapisuje vaše běžné zprávy protokolu. V Azure Database for PostgreSQL můžete nakonfigurovat, aby se všechny protokoly odesílaly do úložiště protokolů Azure Monitor pro pozdější analýzu v Log Analytics. Pokud povolíte protokolování prostředků ve službě Azure Monitor, vaše protokoly se automaticky odesílají (ve formátu JSON) do služeb Azure Storage, Event Hubs a protokolů Azure Monitor v závislosti na vašem výběru.

Informace o tom, jak nastavit protokolování do Azure Storage, Event Hubs nebo protokolů Azure Monitor, najdete v části o protokolech prostředků v článku Protokoly serveru.

Instalace rozšíření

Chcete-li použít rozšíření pgaudit, povolte ho, načtěte ho a vytvořte ho v databázi, ve které ho plánujete používat.

Konfigurace nastavení rozšíření

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

Po povolení pgauditnakonfigurujte jeho parametry tak, aby se spustilo protokolování.

Ke konfiguraci pgauditpostupujte podle těchto pokynů:

Použití webu Azure Portal:

  1. Vyberte instanci Azure Database for PostgreSQL – Flexibilní server.

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

  3. Vyhledejte pgaudit parametry.

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

  5. Výběrem možnosti Uložit uložte změny.

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

Například nastavení pgaudit.log_client na ON nejen zapisuje auditní události do protokolu serveru, ale také je odesílá klientským procesům (jako je psql). Obecně platí, že toto nastavení nechejte zakázané.

pgaudit.log_level je povolené pouze, když je pgaudit.log_client zapnutý.

Ve flexibilním serveru Azure Database for PostgreSQL nemůžete nastavit pgaudit.log pomocí zkratky se znaménkem - (minus), jak je popsáno v dokumentaci pgaudit. Zadejte všechny požadované třídy příkazů (READWRITEatd.) jednotlivě.

Pokud nastavíte parametr log_statement na DDL nebo ALL a spustíte příkaz CREATE ROLE/USER ... WITH PASSWORD ... ; nebo ALTER ROLE/USER ... WITH PASSWORD ... ;, PostgreSQL vytvoří záznam v protokolech PostgreSQL, ve kterém je heslo zaznamenáno v prostém textu, což může představovat potenciální bezpečnostní riziko. Toto chování se očekává 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_statementDDL. Pokud potřebujete tyto příkazy zaprotokolovat, můžete také nastavit pgaudit.log na ROLE, čímž se při protokolování CREATE/ALTER ROLE skryje heslo v protokolech.

Formát protokolu auditu

Každá položka auditu začíná na AUDIT:. Formát zbytku položky je podrobně popsán v dokumentaci k 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

Metoda pro přístup k protokolům závisí na zvoleném koncovém bodu. Informace o službě Azure Storage najdete v článku o účtu pro úložiště protokolů. Pro informace o službě Event Hubs si přečtěte článek o streamování protokolů Azure.

V případě protokolů Azure Monitor odešlete protokoly do vybraného pracovního prostoru. Protokoly Postgres používají režim shromažďování AzureDiagnostics , takže je můžete dotazovat z tabulky AzureDiagnostics. Další informace o dotazování a upozorňování najdete v přehledu dotazů Azure Monitor Logs.

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

Vyhledejte všechny pgaudit položky 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:"

Upgrade na hlavní verzi s nainstalovaným rozšířením pgaudit

Během upgradu hlavní verze proces automaticky zahodí rozšíření pgaudit a po dokončení upgradu ho znovu vytvoří. Zatímco proces obnoví rozšíření, nezachová automaticky žádné vlastní konfigurace nastavené v pgaudit.log ani jiné související parametry.