Informations sur les journaux d'audit de Firestore

Ce document décrit les journaux d'audit pour Firestore. Il décrit les méthodes auditées et fournit des informations sur le journal d'audit généré par chacune d'elles. Il répertorie les méthodes qui ne génèrent pas de journaux d'audit, le cas échéant. Les services Google Cloud écrivent des journaux d'audit qui enregistrent les activités d'administration et les accès aux ressources Google Cloud. Pour en savoir plus, consultez la page Présentation des journaux d'audit Cloud.

Remarques

Pour afficher le temps nécessaire au traitement d'une requête DATA_READ ou DATA_WRITE, consultez le champ processing_duration dans l'objet metadata d'une AuditLog. processing_duration décrit le temps nécessaire à la base de données pour traiter une requête. ce qui est inférieur à la latence de l'utilisateur final. En particulier, il n'inclut pas la surcharge réseau.

Pour les requêtes Listen, processing_duration n'apparaît dans le journal d'audit que pour l'ensemble de résultats initial renvoyé. Il n'est pas inclus dans les journaux d'audit suivants pour cette même cible Listen.

Les écritures individuelles issues des opérations d'importation et de la valeur TTL ne sont pas consignées dans les journaux d'audit.

Nom du service

Les journaux d'audit Firestore utilisent le nom de service firestore.googleapis.com.

Méthodes par type d'autorisation

Firestore inclut également les opérations suivantes dans l'outil de diagnostic de Key Visualizer. Il s'agit des journaux d'audit pour l'accès aux données, dont le nom est firestorekeyvisualizer.googleapis.com. Pour ce faire, activez DATA_READ pour le service firestore.googleapis.com.

  • google.cloud.keyvisualizer.KeyVisualizer.GetScan
  • google.cloud.keyvisualizer.KeyVisualizer.ListScans

Les méthodes qui vérifient les types d'autorisation DATA_READ, DATA_WRITE et ADMIN_READ génèrent des journaux d'audit pour l'accès aux données. Les méthodes qui vérifient les types d'autorisation ADMIN_WRITE génèrent des journaux d'audit pour les activités d'administration.

Type d'autorisation Méthodes
ADMIN_READ google.cloud.location.Locations.GetLocation.Firestore


















ADMIN_WRITE






















DATA_READ

















DATA_WRITE google.firestore.v1.Firestore.BatchWrite
google.firestore.v1.Firestore.Commit
google.firestore.v1.Firestore.CreateDocument
google.firestore.v1.Firestore.DeleteDocument
google.firestore.v1.Firestore.UpdateDocument
google.firestore.v1.Firestore.betaWrite1
google.firestore.



Journaux d'audit pour chaque interface API

Pour en savoir plus sur les autorisations évaluées pour chaque méthode, consultez la documentation Identity and Access Management pour Firestore.

google.cloud.location.Locations

La section suivante contient des informations sur les journaux d'audit associés aux méthodes appartenant à google.cloud.location.Locations.

google.cloud.location.Locations.GetLocation

  • Méthode: google.cloud.location.Locations.GetLocation
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.locations.get - ADMIN_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.cloud.location.Locations.GetLocation"

google.cloud.location.Locations.ListLocations

  • Méthode: google.cloud.location.Locations.ListLocations
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.locations.list - ADMIN_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.cloud.location.Locations.ListLocations"

google.firestore.admin.v1.FirestoreAdmin

La section suivante contient des informations sur les journaux d'audit associés aux méthodes appartenant à google.firestore.admin.v1.FirestoreAdmin.

google.firestore.admin.v1.FirestoreAdmin.CreateBackupSchedule

google.firestore.admin.v1.FirestoreAdmin.CreateDatabase

google.firestore.admin.v1.FirestoreAdmin.CreateIndex

google.firestore.admin.v1.FirestoreAdmin.DeleteBackup

google.firestore.admin.v1.FirestoreAdmin.DeleteBackupSchedule

google.firestore.admin.v1.FirestoreAdmin.DeleteDatabase

google.firestore.admin.v1.FirestoreAdmin.DeleteIndex

google.firestore.admin.v1.FirestoreAdmin.ExportDocuments

google.firestore.admin.v1.FirestoreAdmin.GetBackup

google.firestore.admin.v1.FirestoreAdmin.GetBackupSchedule

google.firestore.admin.v1.FirestoreAdmin.GetDatabase

google.firestore.admin.v1.FirestoreAdmin.GetField

google.firestore.admin.v1.FirestoreAdmin.GetIndex

google.firestore.admin.v1.FirestoreAdmin.ImportDocuments

google.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules

google.firestore.admin.v1.FirestoreAdmin.ListBackups

google.firestore.admin.v1.FirestoreAdmin.ListDatabases

google.firestore.admin.v1.FirestoreAdmin.ListFields

google.firestore.admin.v1.FirestoreAdmin.ListIndexes

google.firestore.admin.v1.FirestoreAdmin.RestoreDatabase

google.firestore.admin.v1.FirestoreAdmin.UpdateBackupSchedule

google.firestore.admin.v1.FirestoreAdmin.UpdateDatabase

google.firestore.admin.v1.FirestoreAdmin.UpdateField

google.firestore.admin.v1beta1.FirestoreAdmin

La section suivante contient des informations sur les journaux d'audit associés aux méthodes appartenant à google.firestore.admin.v1beta1.FirestoreAdmin.

google.firestore.admin.v1beta1.FirestoreAdmin.CreateIndex

google.firestore.admin.v1beta1.FirestoreAdmin.DeleteIndex

google.firestore.admin.v1beta1.FirestoreAdmin.ExportDocuments

google.firestore.admin.v1beta1.FirestoreAdmin.GetIndex

google.firestore.admin.v1beta1.FirestoreAdmin.ImportDocuments

google.firestore.admin.v1beta1.FirestoreAdmin.ListIndexes

google.firestore.admin.v1beta2.FirestoreAdmin

La section suivante contient des informations sur les journaux d'audit associés aux méthodes appartenant à google.firestore.admin.v1beta2.FirestoreAdmin.

google.firestore.admin.v1beta2.FirestoreAdmin.CreateIndex

google.firestore.admin.v1beta2.FirestoreAdmin.DeleteIndex

google.firestore.admin.v1beta2.FirestoreAdmin.ExportDocuments

google.firestore.admin.v1beta2.FirestoreAdmin.GetField

google.firestore.admin.v1beta2.FirestoreAdmin.GetIndex

google.firestore.admin.v1beta2.FirestoreAdmin.ImportDocuments

google.firestore.admin.v1beta2.FirestoreAdmin.ListFields

google.firestore.admin.v1beta2.FirestoreAdmin.ListIndexes

google.firestore.admin.v1beta2.FirestoreAdmin.UpdateField

google.firestore.v1.Firestore

La section suivante contient des informations sur les journaux d'audit associés aux méthodes appartenant à google.firestore.v1.Firestore.

google.firestore.v1.Firestore.BatchGetDocuments

google.firestore.v1.Firestore.BatchWrite

  • Méthode: google.firestore.v1.Firestore.BatchWrite
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.BatchWrite"

google.firestore.v1.Firestore.BeginTransaction

  • Méthode: google.firestore.v1.Firestore.BeginTransaction
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.BeginTransaction"

google.firestore.v1.Firestore.Commit

  • Méthode: google.firestore.v1.Firestore.Commit
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.get - DATA_READ
    • datastore.entities.update - DATA_WRITE
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.Commit"

google.firestore.v1.Firestore.CreateDocument

  • Méthode: google.firestore.v1.Firestore.CreateDocument
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.CreateDocument"

google.firestore.v1.Firestore.DeleteDocument

  • Méthode: google.firestore.v1.Firestore.DeleteDocument
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.entities.delete - DATA_WRITE
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.DeleteDocument"

google.firestore.v1.Firestore.GetDocument

  • Méthode: google.firestore.v1.Firestore.GetDocument
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.GetDocument"

google.firestore.v1.Firestore.ListCollectionIds

  • Méthode: google.firestore.v1.Firestore.ListCollectionIds
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.ListCollectionIds"

google.firestore.v1.Firestore.ListDocuments

  • Méthode: google.firestore.v1.Firestore.ListDocuments
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.ListDocuments"

google.firestore.v1.Firestore.Listen

  • Méthode: google.firestore.v1.Firestore.Listen
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • La méthode est une opération de longue durée ou en streaming : RPC en flux continu
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.Listen"
  • Remarques :

    Listen est un RPC de longue durée qui combine plusieurs cibles de streaming. Chaque cible est une requête ou un ensemble de clés de document. Le flux de chaque cible comprend un ensemble de résultats initial et une séquence de mises à jour, d'ajouts et de suppressions de l'ensemble. Les cibles constituent l'unité d'audit appropriée. Firestore audite chaque cible comme suit:

    • Lorsque la cible est ajoutée, émettez une entrée de journal avec la requête cible ou la clé de document définie. Dans ces entrées, operation.first est vrai. Ce journal d'audit est omis lorsque le flux est une reprise d'un flux cible "Écouter" précédent.
    • Émettez des mises à jour périodiques indiquant le nombre de mises à jour depuis le dernier journal d'audit pour cette cible.
    • Émettez une entrée de journal lorsque la cible est supprimée du flux, de manière explicite ou en raison de l'arrêt du RPC Listen. Cette entrée de journal indique le nombre de mises à jour depuis le dernier journal d'audit pour cette cible. Dans ces entrées, operation.last est vrai.
    • Les entrées de journal émises utilisent le même operation.id.

google.firestore.v1.Firestore.PartitionQuery

  • Méthode: google.firestore.v1.Firestore.PartitionQuery
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.PartitionQuery"

google.firestore.v1.Firestore.Rollback

  • Méthode: google.firestore.v1.Firestore.Rollback
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.Rollback"

google.firestore.v1.Firestore.RunAggregationQuery

google.firestore.v1.Firestore.RunQuery

  • Méthode: google.firestore.v1.Firestore.RunQuery
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • La méthode est une opération de longue durée ou en streaming : RPC en flux continu
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.RunQuery"
  • Remarque : RunQuery est un RPC en streaming de courte durée et émet une entrée de journal lors de l'envoi du dernier message (document).

google.firestore.v1.Firestore.UpdateDocument

  • Méthode: google.firestore.v1.Firestore.UpdateDocument
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.UpdateDocument"

google.firestore.v1.Firestore.Write

  • Méthode: google.firestore.v1.Firestore.Write
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • La méthode est une opération de longue durée ou en streaming : RPC en flux continu
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1.Firestore.Write"
  • Remarque : Write émet une entrée de journal pour chaque message reçu, car chaque message correspond à une écriture indépendante dans la base de données. Les entrées de journal émises utilisent le même operation.id.

google.firestore.v1beta1.Firestore

La section suivante contient des informations sur les journaux d'audit associés aux méthodes appartenant à google.firestore.v1beta1.Firestore.

google.firestore.v1beta1.Firestore.BatchGetDocuments

google.firestore.v1beta1.Firestore.BatchWrite

  • Méthode: google.firestore.v1beta1.Firestore.BatchWrite
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1beta1.Firestore.BatchWrite"

google.firestore.v1beta1.Firestore.BeginTransaction

google.firestore.v1beta1.Firestore.Commit

  • Méthode: google.firestore.v1beta1.Firestore.Commit
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1beta1.Firestore.Commit"

google.firestore.v1beta1.Firestore.CreateDocument

  • Méthode: google.firestore.v1beta1.Firestore.CreateDocument
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1beta1.Firestore.CreateDocument"

google.firestore.v1beta1.Firestore.DeleteDocument

  • Méthode: google.firestore.v1beta1.Firestore.DeleteDocument
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.entities.delete - DATA_WRITE
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1beta1.Firestore.DeleteDocument"

google.firestore.v1beta1.Firestore.GetDocument

  • Méthode: google.firestore.v1beta1.Firestore.GetDocument
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1beta1.Firestore.GetDocument"

google.firestore.v1beta1.Firestore.ListCollectionIds

google.firestore.v1beta1.Firestore.ListDocuments

  • Méthode: google.firestore.v1beta1.Firestore.ListDocuments
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1beta1.Firestore.ListDocuments"

google.firestore.v1beta1.Firestore.PartitionQuery

  • Méthode: google.firestore.v1beta1.Firestore.PartitionQuery
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1beta1.Firestore.PartitionQuery"

google.firestore.v1beta1.Firestore.Rollback

  • Méthode: google.firestore.v1beta1.Firestore.Rollback
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1beta1.Firestore.Rollback"

google.firestore.v1beta1.Firestore.RunAggregationQuery

google.firestore.v1beta1.Firestore.RunQuery

  • Méthode: google.firestore.v1beta1.Firestore.RunQuery
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • La méthode est une opération de longue durée ou en streaming : RPC en flux continu
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1beta1.Firestore.RunQuery"
  • Remarque : RunQuery est un RPC en streaming de courte durée et émet une entrée de journal lors de l'envoi du dernier message (document).

google.firestore.v1beta1.Firestore.UpdateDocument

  • Méthode: google.firestore.v1beta1.Firestore.UpdateDocument
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.firestore.v1beta1.Firestore.UpdateDocument"

google.longrunning.Operations

La section suivante contient des informations sur les journaux d'audit associés aux méthodes appartenant à google.longrunning.Operations.

google.longrunning.Operations.CancelOperation

google.longrunning.Operations.DeleteOperation

google.longrunning.Operations.GetOperation

  • Méthode: google.longrunning.Operations.GetOperation
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.operations.get - ADMIN_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.longrunning.Operations.GetOperation"

google.longrunning.Operations.ListOperations

  • Méthode: google.longrunning.Operations.ListOperations
  • Type de journal d'audit: Accès aux données
  • Autorisations:
    • datastore.operations.list - ADMIN_READ
  • La méthode est une opération de longue durée ou en flux continu: Non.
  • Filtre pour cette méthode: protoPayload.methodName="google.longrunning.Operations.ListOperations"

Identifier les appelants de la requête

Les entrées des journaux d'audit incluent des informations sur l'identité qui a effectué l'opération consignée. Pour identifier un appelant de requête, consultez les champs suivants dans un objet AuditLog:

  • L'identité de l'appelant est enregistrée dans le champ AuthenticationInfo. Cela peut inclure le principalEmail de l'utilisateur. Ces informations sont parfois masquées.

    Si un jeton Web JSON (JWT) a été utilisé pour l'authentification tierce, le champ thirdPartyPrincipal inclut l'en-tête et la charge utile du jeton. Par exemple, les journaux d'audit des requêtes authentifiées avec Firebase Authentication incluent le jeton d'authentification de ces requêtes.

  • Le champ callerIp de l'objet requestMetadata d'une entrée AuditLog inclut l'adresse IP de l'appelant.