Delen via


Auditlogboekregistratie in Azure Database for PostgreSQL - Flexible Server

VAN TOEPASSING OP: Azure Database for PostgreSQL - Flexibele server

Auditlogboekregistratie van databaseactiviteiten in Azure Database for PostgreSQL flexibele server is beschikbaar via de PostgreSQL Audit-extensie: pgaudit. pgaudit biedt gedetailleerde sessie- en/of objectcontrolelogboekregistratie.

Zie het Azure-activiteitenlogboek als u logboeken op azure-resourceniveau wilt voor bewerkingen zoals het schalen van berekeningen en opslag.

Overwegingen voor gebruik

pgaudit Standaard worden logboekinstructies en uw reguliere logboekinstructies verzonden met behulp van de standaardregistratiefaciliteit van Postgres. In de flexibele Azure Database for PostgreSQL-server kunt u alle logboeken configureren die naar het Azure Monitor-logboekarchief moeten worden verzonden voor latere analyses in Log Analytics. Als u Logboekregistratie van Azure Monitor-resources inschakelt, worden uw logboeken automatisch (in JSON-indeling) verzonden naar Azure Storage-, Event Hubs- en/of Azure Monitor-logboeken, afhankelijk van uw keuze.

Als u wilt weten hoe u logboekregistratie instelt voor Azure Storage-, Event Hubs- of Azure Monitor-logboeken, gaat u naar de sectie resourcelogboeken van het artikel serverlogboeken.

Installeren pgaudit

Voordat u de extensie in azure Database for PostgreSQL flexibele server kunt installeren pgaudit , moet u de extensie toestaan pgaudit voor gebruik.

Azure Portal gebruiken:

   1. Selecteer uw flexibele Azure Database for PostgreSQL-serverexemplaren.    1. Selecteer serverparameters op de zijbalk.    1. Zoek naar de azure.extensions parameter.    1. Selecteer pgaudit als de extensie die u wilt toestaan.

Schermopname van allowlist in Azure Database for PostgreSQL.

Azure CLI gebruiken:

U kunt extensies in de lijst toestaan via de opdracht CLI-parameterset.

 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`

Als u wilt installeren pgaudit, moet u deze opnemen in de gedeelde preloadbibliotheken van de server. Voor een wijziging van de parameter van shared_preload_libraries Postgres moet de server opnieuw worden opgestart. U kunt parameters wijzigen met behulp van Azure Portal, Azure CLI of REST API.

Azure Portal gebruiken:

  1. Selecteer uw flexibele Azure Database for PostgreSQL-serverexemplaren.

  2. Selecteer Serverparameters op de zijbalk.

  3. Zoek de shared_preload_libraries parameter.

  4. Selecteer pgaudit.

    Schermopname van de flexibele Azure Database for PostgreSQL-server die shared_preload_libraries inschakelt voor pgaudit.

  5. U kunt controleren of pgauditdeze in shared_preload_libraries is geladen door de volgende query uit te voeren in psql:

    show shared_preload_libraries;
    

    U ziet pgauditin het queryresultaat dat shared_preload_libraries retourneert.

  6. Maak verbinding met uw server met behulp van een client (zoals psql) en schakel de pgaudit extensie in.

    CREATE EXTENSION `pgaudit`;
    

Tip

Als er een fout wordt weergegeven, controleert u of u de server opnieuw hebt opgestart nadat u deze hebt opgeslagen shared_preload_libraries.

pgaudit -instellingen

pgaudit hiermee kunt u logboekregistratie voor sessie- of objectcontrole configureren. Logboekregistratie van sessiecontrole verzendt gedetailleerde logboeken met uitgevoerde instructies. Logboekregistratie van objectcontrole is een controlebereik voor specifieke relaties. U kunt ervoor kiezen om een of beide typen logboekregistratie in te stellen.

Zodra u deze hebt ingeschakeld pgaudit, kunt u de parameters configureren om logboekregistratie te starten.
Volg de onderstaande instructies om deze te configureren pgaudit .
Azure Portal gebruiken:

  1. Selecteer uw Azure Database for the PostgreSQL-server.

  2. Selecteer Serverparameters op de zijbalk.

  3. Zoek naar de pgaudit parameters.

  4. Kies de juiste instellingenparameter om te bewerken. Bijvoorbeeld om logboekregistratie in te stellen pgaudit.log op WRITE

  5. Knop Opslaan selecteren om wijzigingen op te slaan

De pgaudit documentatie bevat de definitie van elke parameter. Test eerst de parameters en controleer of u het verwachte gedrag krijgt.

Als u op pgaudit.log_client ON instelt, worden logboeken omgeleid naar een clientproces (zoals psql) in plaats van naar het bestand te worden geschreven. Deze instelling moet over het algemeen uitgeschakeld blijven.

pgaudit.log_level wordt alleen ingeschakeld als pgaudit.log_client aan is.

In Azure Database for PostgreSQL flexibele server pgaudit.log kan niet worden ingesteld met behulp van een - (min)-tekensnelkoppeling, zoals beschreven in de pgaudit documentatie. Alle vereiste instructieklassen (READ, WRITE, enzovoort) moeten afzonderlijk worden opgegeven.

Als u de parameter log_statement instelt op DDL of ALL en een CREATE ROLE/USER ... WITH PASSWORD ... ; of ALTER ROLE/USER ... WITH PASSWORD ... ;, opdracht uitvoert, maakt PostgreSQL een vermelding in de PostgreSQL-logboeken, waarbij het wachtwoord is vastgelegd in duidelijke tekst, wat een mogelijk beveiligingsrisico kan veroorzaken. Dit is het verwachte gedrag volgens het Ontwerp van de PostgreSQL-engine.

U kunt echter de pgaudit extensie gebruiken en de pgaudit.log=DDL parameter instellen op de pagina met serverparameters, die geen instructie in Postgres-logboek registreert CREATE/ALTER ROLE , in tegenstelling tot postgres-instelling log_statement=DDL . Als u deze instructies wilt vastleggen, kunt u ook toevoegen pgaudit.log ='ROLE' , waardoor het wachtwoord wordt bewerkt uit logboeken tijdens het vastleggen van logboeken CREATE/ALTER ROLE.

Indeling van auditlogboek

Elke controlevermelding wordt aangegeven aan AUDIT: het begin van de logboekregel. De indeling van de rest van de vermelding wordt beschreven in de pgaudit documentatie.

Aan de slag

Als u snel wilt beginnen, stelt u deze in pgaudit.log WRITEen opent u de serverlogboeken om de uitvoer te bekijken.

Controlelogboeken weergeven

De manier waarop u de logboeken opent, is afhankelijk van het eindpunt dat u kiest. Zie het artikel over het logboekopslagaccount voor Azure Storage. Zie het artikel over Azure-logboeken streamen voor Event Hubs.

Voor Azure Monitor-logboeken worden logboeken verzonden naar de werkruimte die u hebt geselecteerd. De Postgres-logboeken maken gebruik van de verzamelingsmodus AzureDiagnostics , zodat ze kunnen worden opgevraagd vanuit de tabel AzureDiagnostics. De velden in de tabel worden hieronder beschreven. Meer informatie over het uitvoeren van query's en waarschuwingen in het overzicht van azure Monitor-logboeken.

U kunt deze query gebruiken om aan de slag te gaan. U kunt waarschuwingen configureren op basis van query's.

Zoeken naar alle pgaudit vermeldingen in Postgres-logboeken voor een bepaalde server op de laatste dag

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