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.
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.
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.
Selecteer uw flexibele Azure Database for PostgreSQL-serverexemplaren.
Selecteer Serverparameters op de zijbalk.
Zoek de
shared_preload_libraries
parameter.Selecteer
pgaudit
.U kunt controleren of
pgaudit
deze in shared_preload_libraries is geladen door de volgende query uit te voeren in psql:show shared_preload_libraries;
U ziet
pgaudit
in het queryresultaat dat shared_preload_libraries retourneert.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:
Selecteer uw Azure Database for the PostgreSQL-server.
Selecteer Serverparameters op de zijbalk.
Zoek naar de
pgaudit
parameters.Kies de juiste instellingenparameter om te bewerken. Bijvoorbeeld om logboekregistratie in te stellen
pgaudit.log
opWRITE
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
WRITE
en 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:"