Audit-Logging für Firebase App Check

Auf dieser Seite werden die Audit-Logs beschrieben, die von Firebase im Rahmen des Cloud-Audit-Logs.

Übersicht

Firebase-Dienste schreiben Audit-Logs, die Ihnen helfen, die Frage "Wer hat was, wo und wann?“. Das sind Cloud-Audit-Logs, die im Rahmen des Google Cloud-Projekts bereitgestellt werden, das mit Ihrem Firebase-Projekt verknüpft ist.

Ihre Firebase-Projekte enthalten jeweils nur die Audit-Logs für Ressourcen, die direkt im Projekt sind.

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

Verfügbare Audit-Logs

Die folgenden Arten von Audit-Logs stehen für Firebase App Check zur Verfügung:

  • Audit-Logs zur Administratoraktivität

    Umfasst „Admin Write“-Vorgänge, die Metadaten oder Konfigurationsinformationen schreiben.

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

  • Audit-Logs zum Datenzugriff

    Umfasst „Admin Read“-Vorgänge, die Metadaten oder Konfigurationsinformationen lesen. Umfasst auch „Data Read“- und „Data Write“-Vorgänge, die von Nutzern bereitgestellte Daten lesen oder schreiben.

    Um Audit-Logs zum Datenzugriff zu erhalten, müssen Sie diese explizit aktivieren.

Ausführlichere Beschreibungen der Audit-Logtypen finden Sie unter Arten von Audit-Logs.

Geprüfte Vorgänge

Im Folgenden wird zusammengefasst, welche API-Vorgänge den einzelnen Audit-Logs entsprechen in Firebase App Check ein:

Berechtigungstyp Methoden
ADMIN_READ google.firebase.appcheck.v1.ConfigService.BatchGetAppAttestConfigs
google.firebase.appcheck.v1.ConfigService.BatchGetDeviceCheckConfigs
google.firebase.appcheck.v1.ConfigService.BatchGetPlayIntegrityConfigs
google.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaEnterpriseConfigs
google.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaV3Configs
google.firebase.appcheck.v1.ConfigService.BatchGetSafetyNetConfigs
google.firebase.appcheck.v1.ConfigService.GetAppAttestConfig
google.firebase.appcheck.v1.ConfigService.GetDebugToken
google.firebase.appcheck.v1.ConfigService.GetDeviceCheckConfig
google.firebase.appcheck.v1.ConfigService.GetPlayIntegrityConfig
google.firebase.appcheck.v1.ConfigService.GetRecaptchaEnterpriseConfig
google.firebase.appcheck.v1.ConfigService.GetRecaptchaV3Config
google.firebase.appcheck.v1.ConfigService.GetSafetyNetConfig
google.firebase.appcheck.v1.ConfigService.GetService
google.firebase.appcheck.v1.ConfigService.ListDebugTokens
google.firebase.appcheck.v1.ConfigService.ListServices
google.firebase.appcheck.v1beta.ConfigService.BatchGetAppAttestConfigs
google.firebase.appcheck.v1beta.ConfigService.BatchGetDeviceCheckConfigs
google.firebase.appcheck.v1beta.ConfigService.BatchGetPlayIntegrityConfigs
google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaConfigs
google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaEnterpriseConfigs
google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaV3Configs
google.firebase.appcheck.v1beta.ConfigService.BatchGetSafetyNetConfigs
google.firebase.appcheck.v1beta.ConfigService.GetAppAttestConfig
google.firebase.appcheck.v1beta.ConfigService.GetDebugToken
google.firebase.appcheck.v1beta.ConfigService.GetDeviceCheckConfig
google.firebase.appcheck.v1beta.ConfigService.GetPlayIntegrityConfig
google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaConfig
google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaEnterpriseConfig
google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaV3Config
google.firebase.appcheck.v1beta.ConfigService.GetResourcePolicy
google.firebase.appcheck.v1beta.ConfigService.GetSafetyNetConfig
google.firebase.appcheck.v1beta.ConfigService.GetService
google.firebase.appcheck.v1beta.ConfigService.ListDebugTokens
google.firebase.appcheck.v1beta.ConfigService.ListResourcePolicies
google.firebase.appcheck.v1beta.ConfigService.ListServices
ADMIN_WRITE google.firebase.appcheck.v1.ConfigService.BatchUpdateServices
google.firebase.appcheck.v1.ConfigService.CreateDebugToken
google.firebase.appcheck.v1.ConfigService.DeleteDebugToken
google.firebase.appcheck.v1.ConfigService.UpdateAppAttestConfig
google.firebase.appcheck.v1.ConfigService.UpdateDebugToken
google.firebase.appcheck.v1.ConfigService.UpdateDeviceCheckConfig
google.firebase.appcheck.v1.ConfigService.UpdatePlayIntegrityConfig
google.firebase.appcheck.v1.ConfigService.UpdateRecaptchaEnterpriseConfig
google.firebase.appcheck.v1.ConfigService.UpdateRecaptchaV3Config
google.firebase.appcheck.v1.ConfigService.UpdateSafetyNetConfig
google.firebase.appcheck.v1.ConfigService.UpdateService
google.firebase.appcheck.v1beta.ConfigService.BatchUpdateResourcePolicies
google.firebase.appcheck.v1beta.ConfigService.BatchUpdateServices
google.firebase.appcheck.v1beta.ConfigService.CreateDebugToken
google.firebase.appcheck.v1beta.ConfigService.CreateResourcePolicy
google.firebase.appcheck.v1beta.ConfigService.DeleteDebugToken
google.firebase.appcheck.v1beta.ConfigService.DeleteResourcePolicy
google.firebase.appcheck.v1beta.ConfigService.UpdateAppAttestConfig
google.firebase.appcheck.v1beta.ConfigService.UpdateDebugToken
google.firebase.appcheck.v1beta.ConfigService.UpdateDeviceCheckConfig
google.firebase.appcheck.v1beta.ConfigService.UpdatePlayIntegrityConfig
google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaConfig
google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaEnterpriseConfig
google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaV3Config
google.firebase.appcheck.v1beta.ConfigService.UpdateResourcePolicy
google.firebase.appcheck.v1beta.ConfigService.UpdateSafetyNetConfig
google.firebase.appcheck.v1beta.ConfigService.UpdateService
google.firebase.appcheck.v1beta.TokenVerificationService.VerifyAppCheckToken

Audit-Logformat

Audit-Logeinträge umfassen folgende Komponenten:

  • Den Logeintrag selbst. Dabei handelt es sich um ein Objekt vom Typ LogEntry. Interessante 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 älteren Integrationen befindet sich dieses Objekt im Feld serviceData des AuditLog-Objekts. Neuere Integrationen verwenden das Feld metadata.

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

Logname

Ressourcennamen von Cloud-Audit-Logs geben das Firebase-Projekt oder andere Google Cloud-Entität, der die Audit-Logs gehören, und ob das Log die folgenden Informationen enthält: Audit-Logging-Daten zu Administratoraktivitäten, Datenzugriff, Richtlinien abgelehnt oder Systemereignissen. Im folgenden Beispiel sind Lognamen für Audit-Logs zur Administratoraktivität auf Projektebene und für die Audit-Logs einer Organisation zum Datenzugriff enthalten. Die Variablen kennzeichnen Firebase-Projekt- und Organisations-IDs

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

Dienstname

Firebase App Check-Audit-Logs verwenden den Dienstnamen firebaseappcheck.googleapis.com

Eine vollständige Liste aller Cloud Logging API-Dienstnamen und des jeweiligen überwachten Ressourcentyps finden Sie unter Dienste Ressourcen zuordnen.

Ressourcentypen

Firebase App Check-Audit-Logs verwenden Den Ressourcentyp audited_resource für alle Audit-Logs.

Eine Liste aller überwachten Cloud Logging-Ressourcentypen und beschreibende Informationen 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 geschrieben werden, sofern diese nicht explizit aktiviert sind (Ausnahme: Audit-Logs zum Datenzugriff für BigQuery, das nicht deaktiviert werden kann).

Eine Anleitung zum Aktivieren einiger oder aller Audit-Logs zu Datenzugriffen finden Sie unter Datenzugriffslogs konfigurieren.

Berechtigungen und Rollen

Cloud IAM-Berechtigungen und -Rollen bestimmen, ob Sie auf Audit-Logs zugreifen können Daten in Google Cloud Ressourcen.

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

  • Die Rolle „Log-Betrachter“ (roles/logging.viewer) bietet Ihnen Lesezugriff auf die Audit-Logs zu Administratoraktivitäten, abgelehnten Richtlinien und Systemereignissen. Wenn Sie gerade Mit dieser Rolle können Sie keine Audit-Logs zum Datenzugriff ansehen, die sich in der _Default befinden Bucket.

  • Die Rolle „Betrachter privater Logs“ ((roles/logging.privateLogViewer) enthält die Berechtigungen, die in roles/logging.viewer enthalten sind, sowie die Möglichkeit, Audit-Logs zum Datenzugriff im Bucket _Default zu lesen.

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

Weitere Informationen zu den geltenden Cloud IAM-Berechtigungen und -Rollen Informationen zu Audit-Logdaten finden Sie unter Zugriffssteuerung.

Logs ansehen

Um Audit-Logs zu finden und anzusehen, müssen Sie die ID des Firebase-Projekt, -Ordner oder -Organisation, dessen bzw. die Sie aufrufen möchten Informationen zum Audit-Logging. Sie können weitere indexierte LogEntry-Felder angeben, z. B. resource.type. Weitere Informationen erhalten Sie unter Logeinträge schnell finden.

Im Folgenden finden Sie die Namen der Audit-Logs: enthalten Variablen für die IDs des Firebase-Projekts, des Ordners oder der Organisation:

   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

   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

Sie können Audit-Logs in Cloud Logging mit der Google Cloud Console, dem gcloud-Befehlszeilentool oder der Logging API

Sie können den Log-Explorer in der Google Cloud Console verwenden um die Audit-Logeinträge für Ihr Firebase-Projekt abzurufen, oder Organisation:

  1. Wechseln Sie in der Google Cloud Console zur Protokollierung > Log-Explorer.

    Zur Seite „Log-Explorer“

  2. Wählen Sie auf der Seite Log-Explorer einen vorhandenen Log-Explorer aus. Firebase-Projekt, -Ordner oder -Organisation.

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

    • Wählen Sie unter Ressourcentyp die Ressource Google Cloud aus, deren und Audit-Logs, die Sie sich ansehen möchten.

    • 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 zum Datenzugriff 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 Firebase-Projekt, im Ordner oder in der Organisation keine Audit-Logs dieses Typs verfügbar.

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

Das gcloud-Befehlszeilentool bietet eine Befehlszeile für die Cloud Logging API. Geben Sie dabei in jedem Lognamen eine gültige PROJECT_ID, FOLDER_ID oder ORGANIZATION_ID an.

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

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 Organisationsebene zu lesen:

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

Weitere Informationen zur Verwendung des gcloud-Tools finden Sie unter Logeinträge lesen.

Ersetzen Sie beim Erstellen Ihrer Abfragen die Variablen durch gültige Werte, ersetzen Sie den entsprechenden Audit-Lognamen oder die entsprechenden Kennungen auf Projektebene, Ordnerebene oder Organisationsebene, wie in den Audit-Lognamen aufgeführt. Wenn Ihre Abfrage beispielsweise PROJECT_ID enthält, dann Die von Ihnen angegebene Projekt-ID muss sich auf die aktuell ausgewählte Firebase-Projekt

So rufen Sie Ihre Audit-Logeinträge mit der Logging API auf:

  1. Rufen Sie den Abschnitt Diese API testen in der Dokumentation für die Methode entries.list 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.

Weitere Informationen zu Abfragen finden Sie unter Logging-Abfragesprache.

Ein Beispiel für einen Audit-Logeintrag und wie Sie die wichtigsten Informationen darin finden, sehen Sie unter Beispiel für einen Audit-Logeintrag.

Audit-Logs weiterleiten

Sie können Audit-Logs auf dieselbe Weise wie andere Arten von Logs an unterstützte Ziele weiterleiten. Im Folgenden erfahren Sie, warum es sinnvoll sein kann, Ihre Audit-Logs weiterzuleiten:

  • Sie können Kopien Ihrer Audit-Logs an Google Cloud Storage, BigQuery oder Google Cloud Pub/Sub weiterleiten, um Audit-Logs für einen längeren Zeitraum aufzubewahren oder leistungsfähigere Suchfunktionen zu nutzen. Mit Cloud Pub/Sub können Sie Daten an andere Anwendungen weiterleiten, und an Dritte weiterzugeben.

  • Um Ihre Audit-Logs organisationsweit zu verwalten, können Sie aggregierten Senken, mit denen Logs aus beliebigen oder allen Firebase-Projekten in der Organisation weiterleiten.

  • Wenn die aktivierten Audit-Logs zum Datenzugriff dazu führen, dass Ihre Firebase-Projekte Ihr Logkontingent überschreiten, können Sie Senken erstellen, die die Audit-Logs zum Datenzugriff aus Logging ausschließen.

Eine Anleitung zum Weiterleiten von Logs finden Sie unter Senken konfigurieren.

Preise

Audit-Logs zur Administratoraktivität und Audit-Logs zu Systemereignissen sind kostenlos.

Audit-Logs zum Datenzugriff und die Audit-Logs zu Richtlinienverstößen sind kostenpflichtig.

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