Verwenden Sie gcloud logging read mit einem Filter auf cloudaudit.googleapis.com oder führen Sie dieselbe Abfrage in Logs Explorer aus und laden Sie die Ergebnisse als JSON herunter:
gcloud logging read 'logName:"cloudaudit.googleapis.com" AND timestamp>="2026-10-19T00:00:00Z" AND timestamp<"2026-10-20T00:00:00Z"'
--project=my-project --format=json > gcp_audit_1019.json
Audit-Protokolle für die Admin-Aktivität sind immer aktiv und werden 400 Tage lang aufbewahrt. Datenzugriffsprotokolle sind standardmäßig deaktiviert, außer für BigQuery, und werden 30 Tage lang aufbewahrt, wenn sie aktiviert sind.
Cloud-Audit-Logs zeichnen auf, wer was in Ihren Google Cloud-Projekten geändert hat: IAM-Berechtigungen, neue Dienstkontoschlüssel, Firewall-Änderungen, VMs, die in ungewöhnlichen Regionen gestartet werden. Prime Core hat 140 Erkennungsregeln für Google Cloud-Audit-Logs, die 74 MITRE ATT&CK-Techniken zugeordnet sind. Darunter: Missbrauch von Cloud-Konten (T1078.004), zusätzliche Anmeldedaten wie neue Dienstkontoschlüssel (T1098.001) und Manipulation des Protokollierens selbst (T1562.008).
Bevor Sie beginnen
Wissen, welches Audit-Log Sie benötigen.
| Typ | Standardmäßig aktiviert? | Aufbewahrung | Was darin enthalten ist |
|---|---|---|---|
| Admin-Aktivität | Immer, kann nicht deaktiviert werden | 400 Tage | Konfigurations- und IAM-Änderungen |
| Systemereignis | Immer | 400 Tage | Aktionen, die von Google-Systemen auf Ihre Ressourcen ausgeführt wurden |
| Datenzugriff | Nein (außer BigQuery) | 30 Tage | Lesezugriffe auf Daten und Metadaten |
| Richtlinie abgelehnt | Yes | 30 Tage | Anfragen, die durch Sicherheitsrichtlinien blockiert wurden |
Wenn die Frage lautet: „Wer hat diesen Bucket gelesen?“ und Datenzugriffsprotokolle nie aktiviert wurden, ist die Antwort nicht in Cloud Logging enthalten.
Berechtigungen. Logs Viewer (roles/logging.viewer) umfasst Admin-Aktivität, Systemereignis und Richtlinie abgelehnt. Datenzugriffsprotokolle erfordern Private Logs Viewer (roles/logging.privateLogViewer).
Umfang. Audit-Protokolle sind projektbezogen. Aktivitäten auf Organisationsebene und Ordner-Ebene haben eigene Protokolle. Abfragen Sie diese mit –organization=<ORG_ID> oder –folder=<FOLDER_ID> anstelle von –project.
Option 1: Logs Explorer
Öffnen Sie im Konsolenbereich Logging → Logs Explorer, geben Sie logName:“cloudaudit.googleapis.com“ ein, legen Sie den Zeitbereich fest, führen Sie die Abfrage aus und laden Sie dann die Ergebnisse als JSON herunter. Der Download ist begrenzt. Für größere Bereiche verwenden Sie gcloud.
Option 2: gcloud logging read
Der Befehl oben ist die Grundform. Drei Details sparen Zeit.
Platzieren Sie das Zeitfenster immer im Filter. Ohne Zeitstempelbedingung beschränkt sich gcloud logging read stillschweigend auf den letzten Tag (–freshness standardmäßig 1d). Das überrascht fast jeden einmal.
Erhöhen Sie das Limit bei Bedarf. Hinzufügen von –limit=100000 (oder was passt) für große Fenster.
Flach machen für den Upload. Die Ausgabe ist ein JSON-Array. Wandeln Sie es in einen Eintrag pro Zeile um:
jq -c '.[]' gcp_audit_1019.json > gcp_audit_1019.jsonl
Nützliche engere Filter:
# Nur Admin-Aktivität
logName="projects/my-project/logs/cloudaudit.googleapis.com/activity"
# neue Dienstkontoschlüssel
protoPayload.methodName="google.iam.admin.v1.CreateServiceAccountKey"
# alles, was eine Identität getan hat
protoPayload.authenticationInfo.principalEmail="suspicious-sa@my-project.iam.gserviceaccount.com"
Option 3: Massenhistorie von Sink
Wenn Ihre Organisation Audit-Protokolle über ein Sink zu Cloud Storage oder BigQuery leitet, könnte diese Kopie weiter zurückgehen als die oben genannten Buckets. Ziehen Sie die Dateien mit gcloud storage cp oder fragen Sie BigQuery ab und exportieren Sie das Ergebnis als JSON.
Was zu suchen ist
| Methode oder Feld | Warum es wichtig ist |
|---|---|
| CreateServiceAccountKey | Langfristige Anmeldedaten, die ein Angreifer mitnehmen kann |
| SetIamPolicy | Zuweisungen von Rollen; achten Sie auf roles/owner, roles/editor und allUsers |
| UpdateSink, DeleteSink, neue Ausschlüsse | Jemand leitet Protokolle um oder bringt sie zum Schweigen |
| v1.compute.instances.insert in ungewöhnlichen Regionen | Der klassische Cryptomining-Fußabdruck |
| Schübe mit status.code: 7 (PERMISSION_DENIED) | Gestohlene Anmeldedaten testen, was sie tun können |
Hochladen, bereinigen und in LogTotal überprüfen
- Hochladen. Öffnen Sie logtotal.com und fügen Sie die .jsonl-Datei ein.
- Bereinigen. [what gets masked: principal emails, project IDs, IPs, resource names]. Look it over before you continue.
- Überprüfen.
Wenn es schiefgeht
| Symptom | Wahrscheinliche Ursache | Fix |
|---|---|---|
| Nur die letzten 24 Stunden kommen zurück | Kein Zeitstempel im Filter, daher gilt –freshness=1d | Setzen Sie das Fenster in den Filter |
| Keine Einträge für den Datenzugriff | Datenzugriffsprotokolle wurden nie aktiviert | Erwartet; aktivieren Sie sie für die Zukunft |
| PERMISSION_DENIED beim Lesen von Protokollen | Fehlender Private Logs Viewer für den Datenzugriff | Fordern Sie roles/logging.privateLogViewer an |
| Ergebnisse hören frühzeitig auf | Standardmäßige oder explizite –limit erreicht | Erhöhen Sie –limit oder teilen Sie das Fenster auf |
| Organisationsbezogene Änderungen fehlen | Sie haben ein Projekt abgefragt | Verwenden Sie –organization |
FAQ
Sind Google Workspace-Protokolle hier enthalten?
Nur wenn Ihre Organisation Workspace-Daten mit Google Cloud teilt und dann auf Organisationsebene.
Was ist mit GKE?
GKE schreibt seine Kubernetes-Audit-Protokolle ebenfalls in Cloud-Audit-Logs