Afficher les journaux d'audit générés par pgAudit pour AlloyDB pour PostgreSQL

Pour surveiller l'activité de la base de données et répondre aux exigences de conformité gouvernementales, financières et ISO, vous pouvez afficher et interroger les journaux d'audit des accès aux données générés par pgAudit pour AlloyDB pour PostgreSQL dans Cloud Logging. Vous pouvez également inspecter le format d'entrée de journal pgAudit et surveiller l'état du pipeline de journalisation d'audit dans Cloud Monitoring. Pour en savoir plus sur pgAudit, consultez À propos de pgAudit.

Avant de commencer

Pour afficher les journaux d'audit, procédez comme suit :

Consulter les journaux d'audit

Les journaux pgAudit générés pour une instance donnée sont envoyés à Cloud Logging en tant que journaux d'audit des accès aux données.

Vous pouvez afficher les journaux pgAudit générés dans l'explorateur de journaux.

Pour afficher les journaux pgAudit, sélectionnez le filtre de journaux cloudaudit.googleapis.com/data_access dans l'application Explorateur de journaux.

Pour afficher tous les journaux pgAudit d'un projet AlloyDB, exécutez la requête suivante à l'aide de l'interface Filtre avancé :

resource.type="alloydb.googleapis.com/Instance"
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access"
protoPayload.request.@type="type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"

Remplacez PROJECT_ID par l'ID de votre projet AlloyDB.

Format des journaux pour pgAudit

Chaque entrée de journal pgAudit dans les journaux d'audit des accès aux données contient des champs qui représentent les informations collectées pour une requête. Pour en savoir plus sur ces champs d'entrée de journal, consultez la documentation pgAudit.

Exemple d'entrée de journal pgAudit :

{
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    methodName: "alloydb.instances.query"
    request: {
      @type: "type.googleapis.com/google.cloud.alloydb.audit.v1.PgAuditEntry"
      auditClass: "READ"
      auditType: "SESSION"
      chunkCount: "1"
      chunkIndex: "1"
      command: "SELECT"
      database: "finance"
      databaseSessionId: 2209692
      parameter: "[not logged]"
      statement: "SELECT * FROM revenue"
      statementId: 2
      substatementId: 1
      user: "alice"
    }
  }
}

Vous trouverez ci-dessous la description des champs disponibles dans les journaux d'audit pour l'accès aux données :

  • auditClass. Type d'instruction consigné. Les valeurs possibles sont READ, WRITE, FUNCTION, ROLE, LDD, MISC et MISC_SET.
  • auditType. SESSION ou OBJECT.
  • chunkCount. La segmentation peut se produire sur les données fournies dans les champs parameter et statement. Le champ chunkCount indique le nombre total de fragments. Consultez également la description du champ chunkIndex.
  • chunkIndex. Spécifie le numéro d'index des fragments de données dans les champs parameter et statement du conteneur request actuel. Le nombre initial est 1. Reportez-vous également à la description du champ chunkCount.
  • mklink. Par exemple, ALTER TABLE ou SELECT.
  • . Le champ chunkIndex peut déterminer le contenu de ce champ. Consultez la description du champ chunkIndex. Si la valeur de l'option pgaudit.log_parameter est définie, le champ parameter peut contenir les paramètres de l'instruction sous forme de données CSV entre guillemets. [none] si aucun paramètre n'est défini. Dans le cas contraire, ce champ contient la valeur [not logged] (non consigné).
  • statement. Instruction exécutée sur le backend. Le champ chunkIndex peut déterminer le contenu du champ statement. Consultez la description du champ chunkIndex.
  • statementId. Identifiant d'instruction unique pour cette session. Chaque ID d'instruction représente un appel de backend. Les ID d'instruction sont séquentiels, même si certaines instructions ne sont pas consignées.
  • substatementId. ID séquentiel de chaque sous-instruction dans l'instruction principale.

Surveiller l'état du pipeline des journaux d'audit

AlloyDB traite les journaux d'audit générés par l'utilisateur de manière asynchrone avant de les transférer de manière sécurisée vers Cloud Logging. Vous pouvez surveiller l'état, le débit et l'arriéré du pipeline de journalisation d'audit pour vos instances et vos nœuds à l'aide de Cloud Monitoring.

Les métriques suivantes sont disponibles sur la ressource surveillée alloydb.googleapis.com/InstanceNode dans l'explorateur de métriques :

Nom de la métrique Nom à afficher Genre de métrique / Type de valeur Unité Description
alloydb.googleapis.com/node/database/logging/audit/backlog_bytes_count Taille du backlog du journal d'audit GAUGE / INT64 Octets (By) Taille, en octets, du backlog du journal d'audit sur le nœud en attente de traitement et d'importation dans Cloud Logging. Une valeur élevée ou croissante indique une contre-pression dans le pipeline de transfert des journaux d'audit.
alloydb.googleapis.com/node/database/logging/audit/processed_bytes_count Octets de journal d'audit traités DELTA / INT64 Octets (By) Nombre total d'octets de données de journal d'audit traités et transférés avec succès vers Cloud Logging depuis le nœud.
alloydb.googleapis.com/node/database/logging/audit/processed_entries_count Entrées de journal d'audit traitées DELTA / INT64 Nombre (1) Nombre total d'entrées de journal d'audit traitées et transférées vers Cloud Logging depuis le nœud.

Pour en savoir plus, consultez la documentation de référence sur les métriques d'insights système.

Étapes suivantes