Informations sur les journaux d'audit de Firestore

Ce document décrit la journalisation d'audit pour Firestore. Les services Google Cloud génèrent des journaux d'audit qui enregistrent les activités d'administration et d'accès dans vos ressources Google Cloud. Pour en savoir plus sur Cloud Audit Logs, consultez les ressources suivantes :

Remarques

Lorsque vous configurez la journalisation d'audit, utilisez le nom de service datastore.googleapis.com pour configurer à la fois datastore.googleapis.com et firestore.googleapis.com.Une fois configurés, les journaux de l'API Firestore incluent le nom de service firestore.googleapis.com.

Pour afficher le temps nécessaire pour traiter une requête DATA_READ ou DATA_WRITE, consultez le champ processing_duration dans l'objet metadata d'un AuditLog. processing_duration décrit le temps que la base de données a mis à traiter une requête. Cette valeur est inférieure à la latence de l'utilisateur final. En particulier, il n'inclut pas les frais généraux réseau.

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

Les écritures individuelles à partir d'importations, d'opérations de suppression groupée et de 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. Filtrez les résultats pour ce service :

    protoPayload.serviceName="firestore.googleapis.com"
  

Méthodes par type d'autorisation

Chaque autorisation IAM possède une propriété type, dont la valeur est une énumération pouvant être l'une des quatre valeurs suivantes: ADMIN_READ, ADMIN_WRITE, DATA_READ ou DATA_WRITE. Lorsque vous appelez une méthode, Firestore génère un journal d'audit dont la catégorie dépend de la propriété type de l'autorisation requise pour exécuter la méthode. Les méthodes nécessitant une autorisation IAM avec la valeur de la propriété type de DATA_READ, DATA_WRITE ou ADMIN_READ génèrent des journaux d'audit pour l'accès aux données. Les méthodes nécessitant une autorisation IAM avec la valeur de propriété type de 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
google.cloud.location.Locations.ListLocations
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.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.v1beta1.FirestoreAdmin.GetIndex
google.firestore.admin.v1beta1.FirestoreAdmin.ListIndexes
google.firestore.admin.v1beta2.FirestoreAdmin.GetField
google.firestore.admin.v1beta2.FirestoreAdmin.GetIndex
google.firestore.admin.v1beta2.FirestoreAdmin.ListFields
google.firestore.admin.v1beta2.FirestoreAdmin.ListIndexes
google.longrunning.Operations.GetOperation
google.longrunning.Operations.ListOperations
ADMIN_WRITE google.firestore.admin.v1.FirestoreAdmin.BulkDeleteDocuments
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.ImportDocuments
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.CreateIndex
google.firestore.admin.v1beta1.FirestoreAdmin.DeleteIndex
google.firestore.admin.v1beta1.FirestoreAdmin.ExportDocuments
google.firestore.admin.v1beta1.FirestoreAdmin.ImportDocuments
google.firestore.admin.v1beta2.FirestoreAdmin.CreateIndex
google.firestore.admin.v1beta2.FirestoreAdmin.DeleteIndex
google.firestore.admin.v1beta2.FirestoreAdmin.ExportDocuments
google.firestore.admin.v1beta2.FirestoreAdmin.ImportDocuments
google.firestore.admin.v1beta2.FirestoreAdmin.UpdateField
google.longrunning.Operations.CancelOperation
google.longrunning.Operations.DeleteOperation
DATA_READ google.firestore.v1.Firestore.BatchGetDocuments
google.firestore.v1.Firestore.BeginTransaction
google.firestore.v1.Firestore.GetDocument
google.firestore.v1.Firestore.ListCollectionIds
google.firestore.v1.Firestore.ListDocuments
google.firestore.v1.Firestore.Listen
google.firestore.v1.Firestore.PartitionQuery
google.firestore.v1.Firestore.Rollback
google.firestore.v1.Firestore.RunAggregationQuery
google.firestore.v1.Firestore.RunQuery
google.firestore.v1beta1.Firestore.BatchGetDocuments
google.firestore.v1beta1.Firestore.BeginTransaction
google.firestore.v1beta1.Firestore.GetDocument
google.firestore.v1beta1.Firestore.ListCollectionIds
google.firestore.v1beta1.Firestore.ListDocuments
google.firestore.v1beta1.Firestore.PartitionQuery
google.firestore.v1beta1.Firestore.Rollback
google.firestore.v1beta1.Firestore.RunAggregationQuery
google.firestore.v1beta1.Firestore.RunQuery
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.Write
google.firestore.v1beta1.Firestore.BatchWrite
google.firestore.v1beta1.Firestore.Commit
google.firestore.v1beta1.Firestore.CreateDocument
google.firestore.v1beta1.Firestore.DeleteDocument
google.firestore.v1beta1.Firestore.UpdateDocument

Journaux d'audit d'interface API

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

google.cloud.location.Locations

Les journaux d'audit suivants sont associés aux méthodes appartenant à 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"

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

Les journaux d'audit suivants sont associés aux méthodes appartenant à google.firestore.admin.v1.FirestoreAdmin.

BulkDeleteDocuments

CreateBackupSchedule

CreateDatabase

CreateIndex

DeleteBackup

DeleteBackupSchedule

DeleteDatabase

DeleteIndex

ExportDocuments

GetBackup

GetBackupSchedule

GetDatabase

  • Méthode : google.firestore.admin.v1.FirestoreAdmin.GetDatabase
  • Type de journal d'audit : Accès aux données
  • Autorisations :
    • datastore.databases.getMetadata - 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.firestore.admin.v1.FirestoreAdmin.GetDatabase"

GetField

  • Méthode : google.firestore.admin.v1.FirestoreAdmin.GetField
  • Type de journal d'audit : Accès aux données
  • Autorisations :
    • datastore.indexes.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.firestore.admin.v1.FirestoreAdmin.GetField"

GetIndex

  • Méthode : google.firestore.admin.v1.FirestoreAdmin.GetIndex
  • Type de journal d'audit : Accès aux données
  • Autorisations :
    • datastore.indexes.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.firestore.admin.v1.FirestoreAdmin.GetIndex"

ImportDocuments

ListBackupSchedules

ListBackups

ListDatabases

ListFields

ListIndexes

RestoreDatabase

UpdateBackupSchedule

UpdateDatabase

UpdateField

google.firestore.admin.v1beta1.FirestoreAdmin

Les journaux d'audit suivants sont associés aux méthodes appartenant à google.firestore.admin.v1beta1.FirestoreAdmin.

CreateIndex

DeleteIndex

ExportDocuments

GetIndex

ImportDocuments

ListIndexes

google.firestore.admin.v1beta2.FirestoreAdmin

Les journaux d'audit suivants sont associés aux méthodes appartenant à google.firestore.admin.v1beta2.FirestoreAdmin.

CreateIndex

DeleteIndex

ExportDocuments

GetField

GetIndex

ImportDocuments

ListFields

ListIndexes

UpdateField

google.firestore.v1.Firestore

Les journaux d'audit suivants sont associés aux méthodes appartenant à google.firestore.v1.Firestore.

BatchGetDocuments

BatchWrite

  • Méthode : google.firestore.v1.Firestore.BatchWrite
  • Type de journal d'audit : Accès aux données
  • Autorisations :
    • 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"

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"

Commit

  • Méthode : google.firestore.v1.Firestore.Commit
  • Type de journal d'audit : Accès aux données
  • Autorisations :
    • 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.Commit"

CreateDocument

  • Méthode : google.firestore.v1.Firestore.CreateDocument
  • Type de journal d'audit : Accès aux données
  • Autorisations :
    • 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"

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"

GetDocument

  • Méthode : google.firestore.v1.Firestore.GetDocument
  • Type de journal d'audit : Accès aux données
  • Autorisations :
    • 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"

ListCollectionIds

  • Méthode : google.firestore.v1.Firestore.ListCollectionIds
  • Type de journal d'audit : Accès aux données
  • Autorisations :
    • 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"

ListDocuments

  • Méthode : google.firestore.v1.Firestore.ListDocuments
  • 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.v1.Firestore.ListDocuments"

Listen

  • Méthode : google.firestore.v1.Firestore.Listen
  • 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 de streaming : RPC en streaming
  • Filtre pour cette méthode : protoPayload.methodName="google.firestore.v1.Firestore.Listen"

PartitionQuery

  • Méthode : google.firestore.v1.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.v1.Firestore.PartitionQuery"

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"

RunAggregationQuery

RunQuery

UpdateDocument

  • Méthode : google.firestore.v1.Firestore.UpdateDocument
  • 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.v1.Firestore.UpdateDocument"

Write

  • Méthode : google.firestore.v1.Firestore.Write
  • 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 de streaming : RPC en streaming
  • Filtre pour cette méthode : protoPayload.methodName="google.firestore.v1.Firestore.Write"

google.firestore.v1beta1.Firestore

Les journaux d'audit suivants sont associés aux méthodes appartenant à google.firestore.v1beta1.Firestore.

BatchGetDocuments

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"

BeginTransaction

Commit

  • Méthode : google.firestore.v1beta1.Firestore.Commit
  • 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.Commit"

CreateDocument

  • Méthode : google.firestore.v1beta1.Firestore.CreateDocument
  • Type de journal d'audit : Accès aux données
  • Autorisations :
    • 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"

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"

GetDocument

  • Méthode : google.firestore.v1beta1.Firestore.GetDocument
  • Type de journal d'audit : Accès aux données
  • Autorisations :
    • 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"

ListCollectionIds

ListDocuments

  • Méthode : google.firestore.v1beta1.Firestore.ListDocuments
  • 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.ListDocuments"

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"

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"

RunAggregationQuery

RunQuery

UpdateDocument

  • Méthode : google.firestore.v1beta1.Firestore.UpdateDocument
  • 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.UpdateDocument"

google.longrunning.Operations

Les journaux d'audit suivants sont associés aux méthodes appartenant à google.longrunning.Operations.

CancelOperation

DeleteOperation

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"

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 requête

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

  • L'identité de l'appelant est conservée dans le champ AuthenticationInfo. Cela peut inclure l'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 cette requête.

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