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.
Vous pouvez auditer les activités de base de données dans Azure Database pour PostgreSQL à l’aide de l’extensionpgaudit.
pgaudit fournit une journalisation d’audit détaillée des sessions et des objets.
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 le mécanisme de journalisation standard de Postgres émet vos messages de journalisation habituels. Dans Azure Database pour PostgreSQL, vous pouvez configurer l’envoi de tous les journaux vers le magasin de journaux d’Azure Monitor afin de les analyser ultérieurement dans Log Analytics. Si vous activez la journalisation des ressources Azure Monitor, vos journaux sont automatiquement envoyés (au format JSON) à stockage Azure, Event Hubs et aux journaux Azure Monitor, en fonction de 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 utiliser l’extension pgaudit , autoriser, charger et créer l’extension dans la base de données où 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, configurez ses paramètres pour démarrer la journalisation.
Pour configurer pgaudit, suivez ces instructions :
Utilisez le portail Azure :
Sélectionnez votre instance d’Azure Database pour PostgreSQL - Serveur flexible.
Dans le menu de la ressource, sous la section 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.Cliquez sur Enregistrer pour enregistrer vos 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). En règle générale, laissez ce paramètre désactivé.
pgaudit.log_level est activé uniquement lorsque pgaudit.log_client est activé.
Dans Azure Database pour PostgreSQL - Serveur flexible, vous ne pouvez pas définir pgaudit.log à l’aide du raccourci du signe - (moins), comme décrit dans la documentation pgaudit. Spécifiez individuellement toutes les classes d’instructions requises (READ, WRITE et ainsi de suite).
Si vous définissez le paramètre log_statement sur DDL ou ALL et que vous exécutez une commande CREATE ROLE/USER ... WITH PASSWORD ... ; ou ALTER ROLE/USER ... WITH PASSWORD ... ;, PostgreSQL crée une entrée dans les journaux de PostgreSQL dans laquelle le mot de passe est consigné en clair, ce qui peut présenter un risque de sécurité. Ce comportement est attendu conformément à la 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 masque 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 méthode d’accès aux journaux dépend du point de terminaison que vous choisissez. Pour le stockage Azure, consultez l’article Compte de stockage des journaux. Pour Event Hubs, consultez l’article Diffusion des journaux Azure.
Pour Azure Monitor Logs, vous envoyez les journaux vers l’espace de travail sélectionné. Les journaux Postgres utilisent le mode de collecte AzureDiagnostics . Vous pouvez donc les interroger à partir de la table AzureDiagnostics. Pour en savoir plus sur les requêtes et les alertes, consultez la vue d’ensemble de la requête dans Azure Monitor Logs.
Vous pouvez utiliser cette requête pour commencer. Vous pouvez configurer des alertes basées sur les requêtes.
Recherchez 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
Pendant une mise à niveau de version majeure, le processus supprime automatiquement l’extension pgaudit, puis le recrée une fois la mise à niveau terminée. Pendant que le processus restaure l’extension, il ne conserve pas automatiquement les configurations personnalisées définies dans pgaudit.log ou d’autres paramètres associés.