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:
Aktivieren Sie Audit-Logs zum Datenzugriff für Ihr AlloyDB-Projekt.
Bitten Sie Ihren Administrator, Ihnen die Rolle Loganzeige privater Logs (
roles/logging.privateLogViewer) zuzuweisen.
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
parameterundstatementkönnen in Chunks aufgeteilt werden. Das FeldchunkCountgibt die Gesamtzahl der Chunks an. Siehe auch die Beschreibung des FeldschunkIndex. - chunkIndex. Gibt die Indexnummer der Datenblöcke in den Feldern
parameterundstatementim aktuellenrequest-Container an. Die erste Zahl ist1. Sehen Sie sich auch die Beschreibung des FeldschunkCountan. - -Befehl. Beispiel: ALTER TABLE oder SELECT.
- -Parameter. Das Feld
chunkIndexkann den Inhalt dieses Felds bestimmen. Weitere Informationen finden Sie in der Beschreibung des FeldschunkIndex. Wenn der Wert für das Flagpgaudit.log_parameterfestgelegt ist, kann das Feldparameterdie 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
chunkIndexkann den Inhalt des Feldsstatementbestimmen. Weitere Informationen finden Sie in der Beschreibung des FeldschunkIndex. - 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.