Informações de registo de auditoria do Firestore

Este documento descreve o registo de auditoria do Firestore.Os serviços do Firestore Google Cloud geram registos de auditoria que registam as atividades administrativas e de acesso nos seus recursos Google Cloud . Para mais informações sobre os registos de auditoria do Cloud, consulte o seguinte:

Notas

Quando configurar o registo de auditoria, use o nome do serviço datastore.googleapis.com para configurar datastore.googleapis.com e firestore.googleapis.com.Depois de configurado, os registos da API Firestore incluem o nome do serviço firestore.googleapis.com.

Para ver o tempo necessário para processar um pedido DATA_READ ou DATA_WRITE, consulte o campo processing_duration no objeto metadata de um AuditLog. processing_duration descreve o tempo que a base de dados demorou a processar um pedido. Este valor é inferior à latência do utilizador final. Em particular, não inclui a sobrecarga da rede.

Para pedidos Listen, processing_duration só está presente no registo de auditoria para o conjunto de resultados inicial devolvido. Está ausente dos registos de auditoria subsequentes para esse mesmo Listendestino
.
As gravações individuais de importação, as operações de eliminação em massa e o TTL não são registadas em auditoria.

Nome do serviço

Os registos de auditoria do Firestore usam o nome do serviço firestore.googleapis.com. Filtrar por este serviço:

    protoPayload.serviceName="firestore.googleapis.com"
  

Métodos por tipo de autorização

Cada autorização de IAM tem uma propriedade type, cujo valor é uma enumeração que pode ter um de quatro valores: ADMIN_READ, ADMIN_WRITE, DATA_READ ou DATA_WRITE. Quando chama um método, o Firestore gera um registo de auditoria cuja categoria depende da propriedade type da autorização necessária para executar o método. Os métodos que requerem uma autorização da IAM com o valor da propriedade type de DATA_READ, DATA_WRITE ou ADMIN_READ geram registos de auditoria de acesso aos dados. Os métodos que requerem uma autorização do IAM com o valor da propriedade type de ADMIN_WRITE generate Admin Activity registam auditorias.

Tipo de autorização Métodos
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

Registos de auditoria da interface da API

Para obter informações sobre como e que autorizações são avaliadas para cada método, consulte a documentação de gestão de identidade e acesso do Firestore.

google.cloud.location.Locations

Os seguintes registos de auditoria estão associados a métodos pertencentes a google.cloud.location.Locations.

GetLocation

  • Método: google.cloud.location.Locations.GetLocation
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.locations.get - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.cloud.location.Locations.GetLocation"

ListLocations

  • Método: google.cloud.location.Locations.ListLocations
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.locations.list - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.cloud.location.Locations.ListLocations"

google.firestore.admin.v1.FirestoreAdmin

Os seguintes registos de auditoria estão associados a métodos pertencentes a google.firestore.admin.v1.FirestoreAdmin.

BulkDeleteDocuments

CreateBackupSchedule

CreateDatabase

CreateIndex

DeleteBackup

DeleteBackupSchedule

DeleteDatabase

DeleteIndex

ExportDocuments

GetBackup

  • Método: google.firestore.admin.v1.FirestoreAdmin.GetBackup
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.backups.get - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetBackup"

GetBackupSchedule

GetDatabase

  • Método: google.firestore.admin.v1.FirestoreAdmin.GetDatabase
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.databases.getMetadata - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetDatabase"

GetField

  • Método: google.firestore.admin.v1.FirestoreAdmin.GetField
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.indexes.get - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetField"

GetIndex

  • Método: google.firestore.admin.v1.FirestoreAdmin.GetIndex
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.indexes.get - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetIndex"

ImportDocuments

ListBackupSchedules

ListBackups

  • Método: google.firestore.admin.v1.FirestoreAdmin.ListBackups
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.backups.list - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.ListBackups"

ListDatabases

  • Método: google.firestore.admin.v1.FirestoreAdmin.ListDatabases
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.databases.list - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.ListDatabases"

ListFields

  • Método: google.firestore.admin.v1.FirestoreAdmin.ListFields
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.indexes.list - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.ListFields"

ListIndexes

  • Método: google.firestore.admin.v1.FirestoreAdmin.ListIndexes
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.indexes.list - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.ListIndexes"

RestoreDatabase

UpdateBackupSchedule

UpdateDatabase

UpdateField

google.firestore.admin.v1beta1.FirestoreAdmin

Os seguintes registos de auditoria estão associados a métodos pertencentes a google.firestore.admin.v1beta1.FirestoreAdmin.

CreateIndex

DeleteIndex

ExportDocuments

GetIndex

ImportDocuments

ListIndexes

google.firestore.admin.v1beta2.FirestoreAdmin

Os seguintes registos de auditoria estão associados a métodos pertencentes a google.firestore.admin.v1beta2.FirestoreAdmin.

CreateIndex

DeleteIndex

ExportDocuments

GetField

GetIndex

ImportDocuments

ListFields

ListIndexes

UpdateField

google.firestore.v1.Firestore

Os seguintes registos de auditoria estão associados a métodos pertencentes a google.firestore.v1.Firestore.

BatchGetDocuments

BatchWrite

  • Método: google.firestore.v1.Firestore.BatchWrite
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.BatchWrite"

BeginTransaction

  • Método: google.firestore.v1.Firestore.BeginTransaction
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.databases.get - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.BeginTransaction"

Commit

  • Método: google.firestore.v1.Firestore.Commit
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.Commit"

CreateDocument

  • Método: google.firestore.v1.Firestore.CreateDocument
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.CreateDocument"

DeleteDocument

  • Método: google.firestore.v1.Firestore.DeleteDocument
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.delete - DATA_WRITE
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.DeleteDocument"

GetDocument

  • Método: google.firestore.v1.Firestore.GetDocument
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.get - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.GetDocument"

ListCollectionIds

  • Método: google.firestore.v1.Firestore.ListCollectionIds
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.list - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.ListCollectionIds"

ListDocuments

  • Método: google.firestore.v1.Firestore.ListDocuments
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.ListDocuments"

Listen

  • Método: google.firestore.v1.Firestore.Listen
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • O método é uma operação de longa duração ou de streaming: RPC de streaming
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.Listen"

PartitionQuery

  • Método: google.firestore.v1.Firestore.PartitionQuery
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.PartitionQuery"

Rollback

  • Método: google.firestore.v1.Firestore.Rollback
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.databases.get - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.Rollback"

RunAggregationQuery

RunQuery

  • Método: google.firestore.v1.Firestore.RunQuery
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • O método é uma operação de longa duração ou de streaming: RPC de streaming
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.RunQuery"

UpdateDocument

  • Método: google.firestore.v1.Firestore.UpdateDocument
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.UpdateDocument"

Write

  • Método: google.firestore.v1.Firestore.Write
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de longa duração ou de streaming: RPC de streaming
  • Filtre por este método: protoPayload.methodName="google.firestore.v1.Firestore.Write"

google.firestore.v1beta1.Firestore

Os seguintes registos de auditoria estão associados a métodos pertencentes a google.firestore.v1beta1.Firestore.

BatchGetDocuments

BatchWrite

  • Método: google.firestore.v1beta1.Firestore.BatchWrite
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.BatchWrite"

BeginTransaction

  • Método: google.firestore.v1beta1.Firestore.BeginTransaction
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.databases.get - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.BeginTransaction"

Commit

  • Método: google.firestore.v1beta1.Firestore.Commit
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.Commit"

CreateDocument

  • Método: google.firestore.v1beta1.Firestore.CreateDocument
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.CreateDocument"

DeleteDocument

  • Método: google.firestore.v1beta1.Firestore.DeleteDocument
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.delete - DATA_WRITE
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.DeleteDocument"

GetDocument

  • Método: google.firestore.v1beta1.Firestore.GetDocument
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.get - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.GetDocument"

ListCollectionIds

  • Método: google.firestore.v1beta1.Firestore.ListCollectionIds
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.list - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.ListCollectionIds"

ListDocuments

  • Método: google.firestore.v1beta1.Firestore.ListDocuments
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.ListDocuments"

PartitionQuery

  • Método: google.firestore.v1beta1.Firestore.PartitionQuery
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.PartitionQuery"

Rollback

  • Método: google.firestore.v1beta1.Firestore.Rollback
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.databases.get - DATA_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.Rollback"

RunAggregationQuery

RunQuery

UpdateDocument

  • Método: google.firestore.v1beta1.Firestore.UpdateDocument
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.UpdateDocument"

google.longrunning.Operations

Os seguintes registos de auditoria estão associados a métodos pertencentes a google.longrunning.Operations.

CancelOperation

DeleteOperation

GetOperation

  • Método: google.longrunning.Operations.GetOperation
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.operations.get - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.longrunning.Operations.GetOperation"

ListOperations

  • Método: google.longrunning.Operations.ListOperations
  • Tipo de registo de auditoria: Acesso a dados
  • Autorizações:
    • datastore.operations.list - ADMIN_READ
  • O método é uma operação de longa duração ou de streaming: Não.
  • Filtre por este método: protoPayload.methodName="google.longrunning.Operations.ListOperations"

Identifique os autores das solicitações

As entradas do registo de auditoria incluem informações sobre a identidade que realizou a operação registada. Para identificar um autor da chamada de pedido, consulte os seguintes campos num objeto AuditLog:

  • A identidade do autor da chamada é mantida no campo AuthenticationInfo. Isto pode incluir o principalEmail do utilizador. Estas informações são por vezes ocultadas.

    Se foi usado um símbolo da Web JSON (JWT) para a autenticação de terceiros, o campo thirdPartyPrincipal inclui o cabeçalho e o payload do símbolo. Por exemplo, os registos de auditoria para pedidos autenticados com o Firebase Authentication incluem o token de autenticação desse pedido.

  • O campo callerIp no objeto requestMetadata de uma entrada AuditLog inclui o endereço IP do autor da chamada.