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 serveru Azure Database for PostgreSQL je dostupné prostřednictvím rozšíření Audit PostgreSQL: pgAudit. pgAudit poskytuje podrobné protokolování auditu relací a/nebo objektů.

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í příkazy protokolování pgAudit vysílá standardní protokolovací zařízení Postgres společně s normálními příkazy protokolování. 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ýzy v Log Analytics. Pokud povolíte protokolování prostředků služby Azure Monitor, budou se vaše protokoly automaticky odesílat (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 pgAudit

Než budete moct nainstalovat rozšíření pgAudit na flexibilním serveru Azure Database for PostgreSQL, musíte povolit rozšíření pgAudit pro použití.

Pomocí webu Azure Portal:

  1. Vyberte instanci flexibilního serveru Azure Database for PostgreSQL.
  2. Na bočním panelu vyberte Parametry serveru.
  3. Vyhledejte azure.extensions parametr.
  4. Jako rozšíření vyberte pgAudit, které chcete povolit. Screenshot showing Azure Database for PostgreSQL - allow-listing extensions for installation.

Pomocí Azure CLI:

Rozšíření seznamu povolených můžete povolit pomocí příkazu sady parametrů rozhraní příkazového řádku.

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

Pokud chcete nainstalovat pgAudit, musíte ho zahrnout do sdílených knihoven předběžného načtení serveru. Změna parametru shared_preload_libraries Postgres vyžaduje, aby se projevilo restartování serveru. Parametry můžete změnit pomocí webu Azure Portal, Azure CLI nebo rozhraní REST API.

Pomocí webu Azure Portal:

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

  2. Na bočním panelu vyberte Parametry serveru.

  3. Vyhledejte shared_preload_libraries parametr.

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

  5. Spuštěním následujícího dotazu v psql můžete zkontrolovat, že se pgaudit načetl do shared_preload_libraries:

    show shared_preload_libraries;
    

    Ve výsledku dotazu by se měla zobrazit pgaudit , která vrátí shared_preload_libraries.

  6. Připojení k serveru pomocí klienta (například psql) a povolte rozšíření pgAudit.

    CREATE EXTENSION pgaudit;
    

Tip

Pokud se zobrazí chyba, potvrďte, že jste po uložení shared_preload_librariesserver restartovali .

Nastavení pgAudit

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íte pgAudit, můžete jeho parametry nakonfigurovat tak, aby se spustilo protokolování. Ke konfiguraci pgAudit můžete postupovat podle následujících pokynů. Pomocí webu Azure Portal:

  1. Vyberte svůj server Azure Database for PostgreSQL.
  2. Na bočním panelu vyberte Parametry serveru.
  3. Vyhledejte pgaudit parametry.
  4. Vyberte příslušný parametr nastavení, který chcete upravit. Pokud například chcete spustit protokolování nastavené pgaudit.log na WRITEScreenshot showing Azure Database for PostgreSQL - configuring logging with pgaudit
  5. Kliknutím na tlačítko Uložit uložíte změny.

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

Poznámka:

Nastavení pgaudit.log_client ON přesměruje protokoly na proces klienta (například psql) místo zápisu do souboru. 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.

Poznámka:

Flexibilní server pgaudit.log Azure Database for PostgreSQL nejde nastavit pomocí - klávesové zkratky (minus), jak je popsáno v dokumentaci pgAudit. Všechny požadované třídy příkazů (READ, WRITE atd.) by měly být zadány jednotlivě.

Poznámka:

Pokud nastavíte parametr log_statement na DDL nebo ALL a spustíte CREATE ROLE/USER ... WITH PASSWORD ... ; příkaz nebo 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. Toto chování se očekává podle návrhu modulu PostgreSQL. Na stránce parametrů serveru ale můžete použít rozšíření PGAudit a nastavit pgaudit.log='DDL' parametr, který v protokolu Postgres nezaznamenává žádné CREATE/ALTER ROLE příkazy, na rozdíl od nastavení Postgres log_statement='DDL' . Pokud potřebujete tyto příkazy zaprotokolovat, můžete také přidat pgaudit.log ='ROLE' , což při protokolování 'CREATE/ALTER ROLE' změní heslo z protokolů.

Formát protokolu auditu

Každá položka auditu je označená AUDIT: blízko začátku řádku protokolu. Formát zbytku položky je podrobně popsaný v dokumentaci pgAudit.

Začínáme

Pokud chcete rychle začít, nastavte pgaudit.logWRITEa 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. Informace o službě Azure Storage najdete v článku o účtu úložiště protokolů. Informace o službě Event Hubs najdete v článku streamu protokolů Azure.

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. Pole v tabulce jsou popsaná níže. 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ů.

Vyhledejte všechny položky pgAudit v protokolech Postgres pro konkrétní server za poslední den.

AzureDiagnostics
| where Resource =~ "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"

Další kroky