Informationen zum Audit-Logging in Firestore

In diesem Dokument werden die Audit-Logs beschrieben, die von Firestore im Rahmen von Cloud-Audit-Logs erstellt werden.

Übersicht

Google Cloud-Dienste schreiben Audit-Logs, um Ihnen in Ihren Google Cloud-Ressourcen die Fragen zu beantworten, wer was, wo und wann getan hat.

Ihre Google Cloud-Projekte enthalten nur die Audit-Logs für Ressourcen, die sich direkt im Cloudprojekt befinden. Andere Google Cloud-Ressourcen wie Ordner, Organisationen und Rechnungskonten enthalten die Audit-Logs für die Entität selbst.

Eine allgemeine Übersicht über Cloud-Audit-Logs finden Sie unter Cloud-Audit-Logs. Detaillierte Informationen zum Format von Audit-Logs finden Sie unter Audit-Logs verstehen.

Verfügbare Audit-Logs

Für Firestore sind die folgenden Arten von Audit-Logs verfügbar:

  • Audit-Logs zu Administratoraktivitäten

    Umfasst auch Admin-Schreibvorgänge, mit denen Metadaten oder Konfigurationsinformationen geschrieben werden.

    Sie können Audit-Logs zu Administratoraktivitäten nicht deaktivieren.

  • Audit-Logs zum Datenzugriff

    Umfasst Verwaltungslesevorgänge, bei denen Metadaten oder Konfigurationsinformationen gelesen werden. Umfasst außerdem Datenlese- und -vorgänge, bei denen vom Nutzer bereitgestellte Daten gelesen oder geschrieben werden.

    Sie müssen Audit-Logs für den Datenzugriff ausdrücklich aktivieren.

Eine ausführlichere Beschreibung der Audit-Logtypen finden Sie unter Arten von Audit-Logs.

Geprüfte Vorgänge

Es folgt eine Zusammenfassung der API-Vorgänge, die dem jeweiligen Audit-Logtyp in Firestore entsprechen:

Audit-Log-Kategorie Firestore-Vorgänge
Administratoraktivitätslogs (ADMIN_WRITE)
Audit-Logs zum Datenzugriff (ADMIN_READ)
Audit-Logs zum Datenzugriff (DATA_READ)
  • GetDocument
  • ListDocuments
  • BatchGetDocuments
  • BeginTransaction
  • Commit ohne Schreibvorgänge
  • Rollback
  • RunQuery (Streaming)

    RunQuery ist ein kurzlebiger Streaming-RPC und gibt einen Log-Eintrag aus, wenn die letzte Nachricht (Dokument) gesendet wird.

  • PartitionQuery
  • ListCollectionIds
  • Listen (Streaming)

    Listen ist ein langlebiger RPC, der mehrere Streaming-Ziele kombiniert. Jedes Ziel ist eine Abfrage oder ein Satz von Dokumentschlüsseln. Der Stream für jedes Ziel umfasst eine erste Ergebnismenge und eine Reihe von Aktualisierungen, Hinzufügungen und Entfernungen zur Ergebnismenge. Die Ziele sind die relevante Audit-Einheit. Firestore prüft jedes Ziel folgendermaßen:

    • Wenn das Ziel hinzugefügt wurde, geben Sie einen Logeintrag mit der Abfrage oder dem Dokumentschlüsselsatz aus.
    • Geben Sie regelmäßige Aktualisierungen aus, die die Anzahl der Aktualisierungen seit dem letzten Audit-Log für dieses Ziel melden.
    • Gibt einen Logeintrag aus, wenn das Ziel entweder explizit oder aufgrund der Beendigung für den RPC Listen aus dem Stream entfernt wird. Dieser Logeintrag gibt die Anzahl der Aktualisierungen seit dem letzten Audit-Log für dieses Ziel an.
    • Die ausgegebenen Logeinträge verwenden dasselbe operation.id.
Audit-Logs zum Datenzugriff (DATA_WRITE)

Audit-Logformat

Audit-Logeinträge umfassen folgende Objekte:

  • Den Logeintrag selbst. Dabei handelt es sich um ein Objekt vom Typ LogEntry. Nützliche Felder sind unter anderem:

    • logName enthält die Ressourcen-ID und den Audit-Logtyp.
    • resource enthält das Ziel zum geprüften Vorgang
    • timeStamp enthält die Uhrzeit des geprüften Vorgangs
    • protoPayload enthält die geprüften Informationen
  • Die Audit-Logdaten, bei denen es sich um ein AuditLog-Objekt handelt, das sich im Feld protoPayload des Logeintrags befindet

  • Optionale dienstspezifische Auditinformationen. Das Objekt ist dienstspezifisch. Bei früheren Integrationen befindet sich dieses Objekt im Feld serviceData des AuditLog-Objekts. Spätere Integrationen verwenden das Feld metadata.

Informationen zu anderen Feldern in diesen Objekten sowie zu deren Interpretation finden Sie unter Audit-Logs verstehen.

Log name

Lognamen von Cloud-Audit-Logs enthalten Ressourcen-IDs, die auf das Cloud-Projekt oder eine andere Google Cloud-Entität verweisen, die Inhaber der Audit-Logs ist. Außerdem ist angegeben, ob das Log Audit-Logging-Daten zur Administratoraktivität, zum Datenzugriff, zu abgelehnten Richtlinien oder zu Systemereignissen enthält.

Im Folgenden finden Sie die Namen der Audit-Logs, einschließlich der Variablen für die Ressourcen-IDs:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

Dienstname

Firestore-Audit-Logs verwenden den Dienstnamen firestore.googleapis.com.

Eine Liste aller Namen der Cloud Logging API-Dienste und des entsprechenden überwachten Ressourcentyps finden Sie unter Dienste zu Ressourcen zuordnen.

Ressourcentypen

Firestore-Audit-Logs verwenden die Ressourcentypen datastore_database und datastore_index.

Eine Liste aller überwachten Ressourcentypen und beschreibenden Informationen in Cloud Logging finden Sie unter Überwachte Ressourcentypen.

Audit-Logging aktivieren

Audit-Logs zu Administratoraktivitäten sind immer aktiviert. Sie können sie nicht deaktivieren.

Audit-Logs zum Datenzugriff sind standardmäßig deaktiviert und werden nur geschrieben, wenn sie explizit aktiviert werden. Eine Ausnahme bilden die Audit-Logs zum Datenzugriff für BigQuery, die nicht deaktiviert werden können.

Informationen zum Aktivieren einiger oder aller Audit-Logs zum Datenzugriff finden Sie unter Audit-Logs zum Datenzugriff konfigurieren.

Berechtigungen und Rollen

Mit IAM-Berechtigungen und -Rollen können Sie auf Audit-Logdaten in Google Cloud-Ressourcen zugreifen.

Berücksichtigen Sie bei der Entscheidung, welche Logging-spezifischen Berechtigungen und Rollen für Ihren Anwendungsfall gelten, die folgenden Punkte:

  • Die Rolle"Loganzeige" (roles/logging.viewer) gewährt Lesezugriff auf Administratoraktivitäten, Audit-Logs zu Richtlinienverstößen und Systemereignis-Audit-Logs. Wenn Sie nur diese Rolle haben, können Sie keine Audit-Logs für den Datenzugriff anzeigen, die sich in den Buckets _Required und _Default befinden.

  • Die Rolle "Betrachter privater Logs"(roles/logging.privateLogViewer) umfasst die Berechtigungen von roles/logging.viewer sowie die Möglichkeit, Audit-Logs zum Datenzugriff in den Buckets _Required und _Default zu lesen.

    Wenn diese privaten Logs in benutzerdefinierten Buckets gespeichert sind, kann jeder Nutzer, der zum Lesen von Logs in diesen Buckets berechtigt ist, die privaten Logs lesen. Weitere Informationen zu Log-Buckets finden Sie unter Routing und Speicher.

Weitere Informationen zu den IAM-Berechtigungen und -Rollen, die für Audit-Logdaten gelten, finden Sie unter Zugriffssteuerung mit IAM.

Logs ansehen

Für die Abfrage von Audit-Logs benötigen Sie den Audit-Lognamen. Dieser enthält die Ressourcenkennung des Cloud-Projekts, des Ordners, des Cloud-Rechnungskontos oder der Organisation, für die Sie Audit-Logging-Informationen abrufen möchten. In der Abfrage können Sie weitere indexierte LogEntry-Felder angeben, z. B. resource.type. Weitere Informationen zu Abfragen finden Sie unter Abfragen im Log-Explorer erstellen.

Sie können Audit-Logs in Logging mit der Cloud Console, der Google Cloud-Befehlszeile oder der Logging API aufrufen:

Console

  1. Rufen Sie in der Cloud Console die Seite Logging > Logs-Explorer auf.

    Zum Log-Explorer

  2. Wählen Sie ein vorhandenes Cloud-Projekt, einen Ordner oder eine Organisation aus.

  3. Führen Sie im Bereich Query Builder folgende Schritte aus:

    • Wählen Sie unter Ressourcentyp die Google Cloud-Ressource aus, deren Audit-Logs angezeigt werden sollen.

    • Wählen Sie unter Logname den Audit-Logtyp aus, den Sie sehen möchten:

      • Wählen Sie für Audit-Logs zu Administratoraktivitäten die Option activity aus.
      • Wählen Sie für Audit-Logs zu Datenzugriffen die Option data_access aus.
      • Wählen Sie für Audit-Logs zu Systemereignissen die Option system_event aus.
      • Wählen Sie für Audit-Logs zu Richtlinienverstößen die Option policy aus.

    Wenn diese Optionen nicht angezeigt werden, sind im Cloud-Projekt, im Ordner oder in der Organisation Audit-Logs dieses Typs verfügbar.

    Wenn beim Aufrufen von Logs im Log-Explorer Probleme auftreten, finden Sie entsprechende Informationen unter Fehlerbehebung.

    Weitere Informationen zu Abfragen mit dem Log-Explorer finden Sie unter Abfragen im Log-Explorer erstellen.

gcloud

Die Google Cloud-Befehlszeile bietet eine Befehlszeile für die Logging API. Geben Sie in jedem Lognamen eine gültige Ressourcen-ID an. Wenn die Abfrage beispielsweise eine PROJECT_ID enthält, muss sich die von Ihnen angegebene Projekt-ID auf das aktuell ausgewählte Cloud-Projekt beziehen.

Führen Sie den folgenden Befehl aus, um Ihre Audit-Logeinträge auf Cloud-Projektebene zu lesen:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \
    --project=PROJECT_ID

Führen Sie den folgenden Befehl aus, um Ihre Audit-Logeinträge auf Ordnerebene zu lesen:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \
    --folder=FOLDER_ID

Führen Sie den folgenden Befehl aus, um Ihre Audit-Logeinträge auf Rechnungskontoebene zu lesen:

gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \
    --billing-account=BILLING_ACCOUNT_ID

Führen Sie den folgenden Befehl aus, um Ihre Audit-Logeinträge auf Organisationsebene zu lesen:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \
    --organization=ORGANIZATION_ID

Weitere Informationen zur Verwendung der gcloud-Befehlszeile finden Sie unter gcloud logging read.

API

Geben Sie beim Erstellen Ihrer Abfragen in jedem Lognamen eine gültige Ressourcenkennung an. Wenn die Abfrage beispielsweise eine PROJECT_ID enthält, muss sich die von Ihnen angegebene Projekt-ID auf das aktuell ausgewählte Cloud-Projekt beziehen.

So können Sie beispielsweise die Audit-Logeinträge auf Projektebene über die Logging API aufrufen:

  1. Rufen Sie in der Dokumentation zur Methode entries.list den Abschnitt API testen auf.

  2. Geben Sie im Teil Anfragetext des Formulars Diese API testen Folgendes ein. Wenn Sie auf dieses vorausgefüllte Formular klicken, wird der Anfragetext automatisch übernommen. Sie müssen jedoch in jedem der Lognamen eine gültige PROJECT_ID angeben.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. Klicken Sie auf Ausführen.

Audit-Logs weiterleiten

Sie können Audit-Logs genauso an unterstützte Ziele weiterleiten wie andere Arten von Logs. Hier einige Gründe, warum Sie Ihre Audit-Logs weiterleiten sollten:

  • Sie können Kopien von Audit-Logs an Cloud Storage, BigQuery oder Pub/Sub weiterleiten, um Audit-Logs über einen längeren Zeitraum hinweg zu behalten oder leistungsfähigere Suchfunktionen zu verwenden. Mit Pub/Sub können Sie an andere Anwendungen, andere Repositories und an Drittanbieter weiterleiten.

  • Zum organisationsübergreifenden Verwalten Ihrer Audit-Logs erstellen Sie zusammengefasste Senken, mit denen sich Logs aus beliebigen oder allen Cloud-Projekten in der Organisation weiterleiten lassen.

  • Wenn die aktivierten Audit-Logs zu Datenzugriffen dazu führen, dass Ihre Cloud-Projekte Ihr Logkontingent überschreiten, können Sie Senken erstellen, in denen Audit-Logs zum Datenzugriff von Logging ausgeschlossen werden.

Eine Anleitung zum Routing von Logs finden Sie unter Senken konfigurieren und verwalten.

Preise

Informationen zu den Preisen für Cloud Logging finden Sie unter Preise für die Operations-Suite von Google Cloud: Cloud Logging.