Von pgAudit für AlloyDB for PostgreSQL generierte Audit-Logs aufrufen

Wenn Sie die Datenbankaktivität überwachen und die Compliance-Anforderungen von Behörden, Finanzinstituten und ISO erfüllen möchten, können Sie die von pgAudit für AlloyDB for PostgreSQL in Cloud Logging generierten Audit-Logs zum Datenzugriff aufrufen und abfragen. Sie können auch das Format des pgAudit-Logeintrags prüfen und den Status der Audit-Logging-Pipeline in Cloud Monitoring überwachen. Weitere Informationen zu pgAudit finden Sie unter Informationen zu pgAudit.

Hinweis

So rufen Sie Audit-Logs auf:

Audit-Logs ansehen

Die generierten pgAudit-Logs für die jeweilige Instanz werden als Audit-Logs zum Datenzugriff an Cloud Logging gesendet.

Sie können die generierten pgAudit-Logs über die Log-Explorer-Anwendung aufrufen.

Wenn Sie die pgAudit-Logs aufrufen möchten, wählen Sie in der Anwendung Log-Explorer den Logfilter cloudaudit.googleapis.com/data_access aus.

Wenn Sie alle pgAudit-Logs für ein AlloyDB-Projekt aufrufen möchten, führen Sie die folgende Abfrage über die Oberfläche Erweiterter Filter aus:

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"

Ersetzen Sie PROJECT_ID durch die ID Ihres AlloyDB-Projekts.

Logformat für pgAudit

Jeder pgAudit-Logeintrag in den Audit-Logs zum Datenzugriff enthält Felder, die die für eine Abfrage erfassten Informationen darstellen. Weitere Informationen zu diesen Logeintragsfeldern finden Sie in der pgAudit-Dokumentation.

Beispiel für einen pgAudit-Logeintrag:

{
  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"
    }
  }
}

Im Folgenden werden die Felder in den Audit-Logs zum Datenzugriff beschrieben:

  • auditClass. Der Typ der protokollierten Anweisung. Mögliche Werte sind READ, WRITE, FUNCTION, ROLE, DDL, MISC und MISC_SET.
  • auditType. SESSION oder OBJECT.
  • chunkCount. Die Daten in den Feldern parameter und statement können in Chunks aufgeteilt werden. Das Feld chunkCount gibt die Gesamtzahl der Chunks an. Siehe auch die Beschreibung des Felds chunkIndex.
  • chunkIndex. Gibt die Indexnummer der Datenblöcke in den Feldern parameter und statement im aktuellen request-Container an. Die erste Zahl ist 1. Sehen Sie sich auch die Beschreibung des Felds chunkCount an.
  • -Befehl. Beispiel: ALTER TABLE oder SELECT.
  • -Parameter. Das Feld chunkIndex kann den Inhalt dieses Felds bestimmen. Weitere Informationen finden Sie in der Beschreibung des Felds chunkIndex. Wenn der Wert für das Flag pgaudit.log_parameter festgelegt ist, kann das Feld parameter die Anweisungsparameter als CSV-Daten in Anführungszeichen enthalten. Wenn keine Parameter vorhanden sind, enthält dieses Feld [none]. Andernfalls enthält dieses Feld [not logged].
  • -Anweisung. Anweisung, die auf dem Back-End ausgeführt wird. Das Feld chunkIndex kann den Inhalt des Felds statement bestimmen. Weitere Informationen finden Sie in der Beschreibung des Felds chunkIndex.
  • statementId. Eindeutige Anweisungs-ID für diese Sitzung. Jede Anweisungs-ID stellt einen Back-End-Aufruf dar. Anweisungs-IDs sind sequenziell, auch wenn einige Anweisungen nicht protokolliert werden.
  • substatementId. Sequenzielle ID für jede Unteranweisung innerhalb der Hauptanweisung.

Status der Audit-Log-Pipeline überwachen

AlloyDB verarbeitet nutzergenerierte Audit-Logs asynchron, bevor sie sicher an Cloud Logging weitergeleitet werden. Mit Cloud Monitoring können Sie den Status, den Durchsatz und den Rückstand der Audit-Logging-Pipeline für Ihre Instanzen und Knoten überwachen.

Die folgenden Messwerte sind für die überwachte Ressource alloydb.googleapis.com/InstanceNode im Metrics Explorer verfügbar:

Messwertname Anzeigename Messwertart / Werttyp Einheit Beschreibung
alloydb.googleapis.com/node/database/logging/audit/backlog_bytes_count Größe des Audit-Log-Backlogs GAUGE / INT64 Byte (By) Die Größe des Audit-Log-Backlogs auf dem Knoten in Byte, der auf die Verarbeitung und den Upload in Cloud Logging wartet. Ein anhaltend hoher oder steigender Wert weist auf einen Rückstau in der Weiterleitungspipeline für Audit-Logs hin.
alloydb.googleapis.com/node/database/logging/audit/processed_bytes_count Verarbeitete Audit-Log-Bytes DELTA / INT64 Byte (By) Die Gesamtzahl der Byte an Audit-Logdaten, die erfolgreich verarbeitet und vom Knoten an Cloud Logging weitergeleitet wurden.
alloydb.googleapis.com/node/database/logging/audit/processed_entries_count Verarbeitete Audit-Logeinträge DELTA / INT64 Anzahl (1) Die Gesamtzahl der Audit-Logeinträge, die erfolgreich verarbeitet und vom Knoten an Cloud Logging weitergeleitet wurden.

Weitere Informationen finden Sie in der Referenz zu System Insights-Messwerten.

Nächste Schritte