Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La journalisation d’audit des activités de base de données dans Azure Database pour PostgreSQL est disponible via l’extension pgaudit .
pgaudit fournit une journalisation détaillée de session et/ou d’audit d’objet.
Si vous souhaitez des journaux de niveau ressource Azure pour des opérations telles que la mise à l’échelle du stockage et du calcul, consultez le journal d’activité Azure.
Considérations sur l’utilisation
Par défaut, pgaudit journalise les instructions, et vos instructions de journalisation habituelles sont générées via le mécanisme standard de journalisation de Postgres. Dans Azure Database pour PostgreSQL, vous pouvez également configurer tous les journaux à envoyer au magasin de journaux Azure Monitor pour analyse ultérieure dans Log Analytics. Si vous activez la journalisation des ressources Azure Monitor, vos journaux sont automatiquement envoyés (au format JSON) vers stockage Azure, Event Hubs et/ou les journaux Azure Monitor, selon votre choix.
Pour savoir comment configurer la journalisation vers Stockage Azure, Event Hubs ou les journaux Azure Monitor, consultez la section relative aux journaux de ressources de l’article sur les journaux du serveur.
Installation de l’extension
Pour pouvoir utiliser pgaudit l’extension, vous devez autoriser, charger et créer l’extension dans la base de données sur laquelle vous envisagez de l’utiliser.
Configurer les paramètres d’extension
pgaudit vous permet de configurer la journalisation d’audit de session ou d’objet.
La journalisation d’audit des sessions émet des journaux détaillés où se trouvent les instructions exécutées.
La journalisation d’audit des objets est limitée à certaines relations. Vous pouvez choisir de configurer un ou plusieurs types de journalisation.
Une fois que vous avez activé pgaudit, vous pouvez configurer ses paramètres pour démarrer la journalisation.
Pour configurer pgaudit, vous pouvez suivre ces instructions :
Utilisation du portail Azure :
Sélectionnez votre instance d’Azure Database pour PostgreSQL.
Dans le menu de la ressource, sous Paramètres, sélectionnez Paramètres.
Recherchez les paramètres
pgaudit.Sélectionnez le paramètre approprié à modifier. Par exemple, pour activer la journalisation des instructions
INSERT,UPDATE,DELETE,TRUNCATEetCOPY, définissezpgaudit.logsurWRITE.Sélectionnez Le bouton Enregistrer pour enregistrer les modifications.
La documentation officielle de pgaudit fournit la définition de chaque paramètre. Testez d’abord les paramètres pour vérifier que vous obtenez le comportement attendu.
Par exemple, définir pgaudit.log_client sur ON non seulement écrit les événements d’audit dans le journal du serveur, mais les envoie également aux processus clients (comme psql). Ce paramètre doit généralement rester désactivé.
pgaudit.log_level est activé uniquement lorsque pgaudit.log_client est activé.
Dans Azure Database pour PostgreSQL, pgaudit.log ne peut pas être défini à l’aide du raccourci avec le signe - (moins), comme décrit dans la documentation pgaudit. Toutes les classes d’instruction requises (READ, WRITE, etc.) doivent être spécifiées individuellement.
Si vous définissez le paramètre log_statement sur DDL ou ALL et exécutez une commande CREATE ROLE/USER ... WITH PASSWORD ... ; ou ALTER ROLE/USER ... WITH PASSWORD ... ;, PostgreSQL crée une entrée dans les journaux PostgreSQL où le mot de passe est consigné en texte clair, ce qui peut entraîner un risque potentiel pour la sécurité. Il s’agit du comportement attendu par conception du moteur PostgreSQL.
Toutefois, vous pouvez utiliser l’extension pgaudit et définir pgaudit.log sur DDL, ce qui n’enregistre aucune instruction CREATE/ALTER ROLE dans le journal du serveur Postgres, contrairement à ce qui se passe lorsque vous définissez log_statement sur DDL. Si vous avez besoin de journaliser ces instructions, vous pouvez également définir pgaudit.log sur ROLE, ce qui retire le mot de passe dans les journaux tout en journalisant CREATE/ALTER ROLE.
Format du journal d’audit
Chaque entrée d’audit commence par AUDIT:. Le format du reste de l’entrée est détaillé dans la documentation de pgaudit.
Mise en route
Pour démarrer rapidement, définissez pgaudit.log sur ALL, et ouvrez les journaux de votre serveur pour examiner la sortie.
Affichage des journaux d’audit
La façon dont vous accédez aux journaux dépend du point de terminaison que vous choisissez. Consultez l’article Compte de stockage des journaux pour stockage Azure. Consultez l’article Diffusion des journaux Azure pour Event Hubs.
Pour les journaux Azure Monitor, les journaux sont envoyés à l’espace de travail que vous avez sélectionné. Les journaux Postgres utilisent le mode de collecte AzureDiagnostics, pour qu’ils puissent être interrogés à partir de la table AzureDiagnostics. En savoir plus sur l’interrogation et la génération d’alertes dans la vue d’ensemble Interroger les journaux Azure Monitor.
Vous pouvez utiliser cette requête pour commencer. Vous pouvez configurer des alertes basées sur les requêtes.
Rechercher toutes les entrées dans les pgaudit journaux Postgres pour un serveur particulier le dernier jour
AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"
Mise à niveau de version majeure avec l’extension pgaudit installée
Lors d’une mise à niveau de version majeure, l’extension pgaudit est automatiquement supprimée, puis recréée une fois la mise à niveau terminée. Pendant la restauration de l’extension, toutes les configurations personnalisées définies dans pgaudit.log ou d’autres paramètres associés ne sont pas conservées automatiquement.