Journalisation d’audit dans Azure Database pour PostgreSQL : Serveur flexible
S’APPLIQUE À : Azure Database pour PostgreSQL : serveur flexible
L’enregistrement d’audit des activités de base de données dans Azure Database pour PostgreSQL – Serveur flexible est disponible via l’extension pgaudit
. pgaudit
fournit un enregistrement d’audit détaillé des sessions et/ou 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, les instructions de journal pgaudit
et vos instructions de journal habituelles sont émises à l’aide de la fonctionnalité de journalisation standard de Postgres. Dans Azure Database pour PostgreSQL – Serveur flexible, vous pouvez configurer l’envoi de tous les journaux au magasin de journaux Azure Monitor pour une analyse ultérieure dans Log Analytics. Si vous activez la journalisation des ressources Azure Monitor, vos journaux sont automatiquement envoyés (au format JSON) aux journaux Azure Monitor, Stockage Azure et/ou Event Hubs, selon votre choix.
Pour savoir comment configurer la journalisation dans les services Stockage Azure et Event Hubs ou les journaux Azure Monitor, consultez la section concernant les journaux de ressources dans l’article sur les journaux de serveur.
Installation de l’extension
Pour pouvoir utiliser l’extension pgaudit
, vous devez établir une liste d’autorisation, charger et créer l’extension dans la base de données où vous comptez vous en servir.
Configurer les paramètres d’extension
pgaudit
vous permet de configurer l’enregistrement d’audit des sessions ou des objets. 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 :
À l’aide du Portail Azure :
Sélectionnez votre instance d’Azure Database pour PostgreSQL – Serveur flexible.
Dans le menu de ressource, sous Paramètres, sélectionnez Paramètres du serveur.
Recherchez les paramètres
pgaudit
.Choisissez le paramètre approprié à modifier. Par exemple, pour commencer à journaliser les instructions
INSERT
,UPDATE
,DELETE
,TRUNCATE
etCOPY
, affectez la valeurWRITE
àpgaudit.log
.Sélectionnez le bouton Enregistrer pour enregistrer les changements.
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, si vous affectez la valeur ON à pgaudit.log_client
, les événements d’audit sont non seulement écrits dans le journal du serveur, mais également envoyés aux processus clients (par exemple psql). Ce paramètre doit généralement rester désactivé.
pgaudit.log_level
est activé uniquement lorsque pgaudit.log_client
est activé.
Dans le serveur flexible Azure Database pour PostgreSQL, pgaudit.log
ne peut pas être défini avec un raccourci de 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 affectez la valeur DDL
ou ALL
au paramètre log_statement
, et si 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 PostgreSQL, où le mot de passe est journalisé en texte clair, ce qui peut entraîner une risque de sécurité potentiel. Il s’agit du comportement attendu conformément à la conception du moteur PostgreSQL.
Vous pouvez toutefois utiliser l’extension pgaudit
, et affecter la valeur DDL
à pgaudit.log
, qui n’enregistre aucune instruction CREATE/ALTER ROLE
dans les journaux du serveur Postgres, contrairement à ce qui se produit quand vous affectez la valeur DDL
à log_statement
. Si vous devez journaliser ces instructions, vous pouvez également affecter la valeur ROLE
à pgaudit.log
, ce qui permet de masquer le mot de passe des journaux pendant la journalisation de 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 commencer, définissez pgaudit.log
sur ALL
, puis ouvrez vos journaux de serveur pour passer en revue 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 le Stockage Azure. Consultez l’article Diffusion en streaming 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 pgaudit
dans les journaux Postgres pour un serveur particulier au cours du dernier jour
AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"