Partager via


Journalisation d’audit dans Azure Database pour PostgreSQL

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 au niveau des ressources Azure pour des opérations telles que la mise à l’échelle du calcul et du stockage, consultez le journal d’activité Azure.

Considérations relatives à l’utilisation

Par défaut, pgaudit les instructions de journalisation et vos instructions de journal régulières sont émises à l’aide de la fonctionnalité de journalisation standard de Postgres. Dans Azure Database pour PostgreSQL, vous pouvez configurer tous les journaux à envoyer 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) vers stockage Azure, Event Hubs et/ou les journaux Azure Monitor, selon votre choix.

Pour savoir comment configurer la journalisation sur stockage Azure, Event Hubs ou les journaux Azure Monitor, consultez la section journaux des journaux de ressources de l’article sur les journaux d’activité 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 de l’audit de session émet des journaux détaillés d’instructions exécutées. La journalisation de l’audit d’objet est étendue à des relations spécifiques. Vous pouvez choisir de configurer un ou les deux 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 :

  1. Sélectionnez votre instance d’Azure Database pour PostgreSQL.

  2. Dans le menu de ressources, sous Paramètres, sélectionnez Paramètres du serveur.

  3. Recherchez les pgaudit paramètres.

  4. Sélectionnez le paramètre approprié à modifier. Par exemple, pour démarrer la journalisation INSERT, , DELETEUPDATE, TRUNCATEet les COPY instructions, définissez sur pgaudit.logWRITE.

  5. 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 et vérifiez que vous obtenez le comportement attendu.

Par exemple, le paramètre pgaudit.log_client pour ON écrire non seulement les événements d’audit dans le journal du serveur, mais également les envoyer aux processus clients (comme psql). Ce paramètre doit généralement être désactivé.

pgaudit.log_level est activé uniquement lorsqu’il pgaudit.log_client est activé.

Dans Azure Database pour PostgreSQL, pgaudit.log ne peut pas être défini à l’aide d’un - raccourci de signe (moins), comme décrit dans la pgaudit documentation. Toutes les classes d’instruction requises (READ, WRITE, etc.) doivent être spécifiées individuellement.

Si vous définissez le paramètre sur DDL ou ALL exécutez une CREATE ROLE/USER ... WITH PASSWORD ... ; commande ou une commandeALTER ROLE/USER ... WITH PASSWORD ... ;, PostgreSQL crée une entrée dans les journaux PostgreSQL où le log_statement mot de passe est connecté en texte clair, ce qui peut entraîner un risque de sécurité potentiel. Il s’agit du comportement attendu par conception du moteur PostgreSQL.

Toutefois, vous pouvez utiliser l’extension et la définir DDLpgaudit.log sur , qui n’enregistre CREATE/ALTER ROLE aucune instruction dans le pgaudit journal du serveur Postgres, contrairement à ce qui se produit lorsque vous définissez log_statementDDLsur . Si vous avez besoin de journaliser ces instructions, vous pouvez également définir pgaudit.logROLEsur , ce qui réactifie le mot de passe des journaux lors de la journalisationCREATE/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.logALLsur et ouvrez les journaux de votre 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 du compte de stockage des journaux pour stockage Azure. Consultez l’article de flux de 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 , afin qu’ils puissent être interrogés à partir de la table AzureDiagnostics. En savoir plus sur l’interrogation et les alertes dans la vue d’ensemble de la requête journaux Azure Monitor .

Vous pouvez utiliser cette requête pour commencer. Vous pouvez configurer des alertes basées sur des 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.