Informações sobre a geração de registros de auditoria do Firestore

Este documento descreve o registro de auditoria do Firestore. Os serviços do Google Cloud geram registros de auditoria que registram atividades administrativas e de acesso nos recursos do Google Cloud. Para mais informações sobre os Registros de auditoria do Cloud, consulte:

Observações

Ao configurar o registro de auditoria, use o nome de serviço datastore.googleapis.com para configurar datastore.googleapis.com e firestore.googleapis.com.Depois de configurado, os registros da API Firestore incluem o nome de serviço firestore.googleapis.com.

Para conferir o tempo que levou para processar uma solicitação DATA_READ ou DATA_WRITE, consulte o campo processing_duration no objeto metadata de um AuditLog. processing_duration descreve o tempo que o banco de dados levou para processar uma solicitação. Esse valor é menor que a latência do usuário final. Em particular, ela não inclui a sobrecarga de rede.

Para solicitações Listen, processing_duration está presente apenas no registro de auditoria do conjunto de resultados inicial retornado. Ele não está presente nos registros de auditoria subsequentes para o mesmo destino Listen.

As gravações individuais de importação, operações de exclusão em massa e TTL não são registradas em registros de auditoria.

Nome do serviço

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

    protoPayload.serviceName="firestore.googleapis.com"
  

Métodos por tipo de permissão

Cada permissão do IAM tem uma propriedade type, que tem o valor de um tipo enumerado que pode ser um dos quatro valores: ADMIN_READ, ADMIN_WRITE, DATA_READ ou DATA_WRITE. Quando você chama um método, o Firestore gera um registro de auditoria com categoria dependente da propriedade type da permissão necessária para executar o método. Métodos que exigem uma permissão do IAM com o valor da propriedade type de DATA_READ, DATA_WRITE ou ADMIN_READ geram registros de auditoria de acesso aos dados. Métodos que exigem uma permissão do IAM com o valor da propriedade type de ADMIN_WRITE geram registros de auditoria de Atividade do administrador.

Tipo de permissã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

Registros de auditoria da interface da API

Para informações sobre como e quais permissões são avaliadas para cada método, consulte a documentação do Identity and Access Management para o Firestore.

google.cloud.location.Locations

Os registros de auditoria a seguir estão associados a métodos que pertencem a google.cloud.location.Locations.

GetLocation

  • Método: google.cloud.location.Locations.GetLocation
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.locations.get - ADMIN_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.cloud.location.Locations.GetLocation"

ListLocations

  • Método: google.cloud.location.Locations.ListLocations
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.locations.list - ADMIN_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.cloud.location.Locations.ListLocations"

google.firestore.admin.v1.FirestoreAdmin

Os registros de auditoria a seguir estão associados a métodos que pertencem 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 registro de auditoria: acesso a dados
  • Permissões:
    • datastore.backups.get - ADMIN_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetBackup"

GetBackupSchedule

GetDatabase

  • Método: google.firestore.admin.v1.FirestoreAdmin.GetDatabase
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.databases.getMetadata - ADMIN_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetDatabase"

GetField

  • Método: google.firestore.admin.v1.FirestoreAdmin.GetField
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.indexes.get - ADMIN_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetField"

GetIndex

  • Método: google.firestore.admin.v1.FirestoreAdmin.GetIndex
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.indexes.get - ADMIN_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetIndex"

ImportDocuments

ListBackupSchedules

ListBackups

  • Método: google.firestore.admin.v1.FirestoreAdmin.ListBackups
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.backups.list - ADMIN_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.ListBackups"

ListDatabases

ListFields

  • Método: google.firestore.admin.v1.FirestoreAdmin.ListFields
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.indexes.list - ADMIN_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.ListFields"

ListIndexes

  • Método: google.firestore.admin.v1.FirestoreAdmin.ListIndexes
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.indexes.list - ADMIN_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.ListIndexes"

RestoreDatabase

UpdateBackupSchedule

UpdateDatabase

UpdateField

google.firestore.admin.v1beta1.FirestoreAdmin

Os registros de auditoria a seguir estão associados a métodos que pertencem a google.firestore.admin.v1beta1.FirestoreAdmin.

CreateIndex

DeleteIndex

ExportDocuments

GetIndex

ImportDocuments

ListIndexes

google.firestore.admin.v1beta2.FirestoreAdmin

Os registros de auditoria a seguir estão associados a métodos que pertencem a google.firestore.admin.v1beta2.FirestoreAdmin.

CreateIndex

DeleteIndex

ExportDocuments

GetField

GetIndex

ImportDocuments

ListFields

ListIndexes

UpdateField

google.firestore.v1.Firestore

Os registros de auditoria a seguir estão associados a métodos que pertencem a google.firestore.v1.Firestore.

BatchGetDocuments

BatchWrite

  • Método: google.firestore.v1.Firestore.BatchWrite
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1.Firestore.BatchWrite"

BeginTransaction

  • Método: google.firestore.v1.Firestore.BeginTransaction
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.databases.get - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1.Firestore.BeginTransaction"

Commit

  • Método: google.firestore.v1.Firestore.Commit
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1.Firestore.Commit"

CreateDocument

  • Método: google.firestore.v1.Firestore.CreateDocument
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1.Firestore.CreateDocument"

DeleteDocument

  • Método: google.firestore.v1.Firestore.DeleteDocument
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.delete - DATA_WRITE
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1.Firestore.DeleteDocument"

GetDocument

  • Método: google.firestore.v1.Firestore.GetDocument
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.get - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1.Firestore.GetDocument"

ListCollectionIds

  • Método: google.firestore.v1.Firestore.ListCollectionIds
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.list - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1.Firestore.ListCollectionIds"

ListDocuments

  • Método: google.firestore.v1.Firestore.ListDocuments
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1.Firestore.ListDocuments"

Listen

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

PartitionQuery

  • Método: google.firestore.v1.Firestore.PartitionQuery
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1.Firestore.PartitionQuery"

Rollback

  • Método: google.firestore.v1.Firestore.Rollback
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.databases.get - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1.Firestore.Rollback"

RunAggregationQuery

RunQuery

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

UpdateDocument

  • Método: google.firestore.v1.Firestore.UpdateDocument
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1.Firestore.UpdateDocument"

Write

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

google.firestore.v1beta1.Firestore

Os registros de auditoria a seguir estão associados a métodos que pertencem a google.firestore.v1beta1.Firestore.

BatchGetDocuments

BatchWrite

  • Método: google.firestore.v1beta1.Firestore.BatchWrite
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.BatchWrite"

BeginTransaction

  • Método: google.firestore.v1beta1.Firestore.BeginTransaction
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.databases.get - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.BeginTransaction"

Commit

  • Método: google.firestore.v1beta1.Firestore.Commit
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.Commit"

CreateDocument

  • Método: google.firestore.v1beta1.Firestore.CreateDocument
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.CreateDocument"

DeleteDocument

  • Método: google.firestore.v1beta1.Firestore.DeleteDocument
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.delete - DATA_WRITE
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.DeleteDocument"

GetDocument

  • Método: google.firestore.v1beta1.Firestore.GetDocument
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.get - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.GetDocument"

ListCollectionIds

  • Método: google.firestore.v1beta1.Firestore.ListCollectionIds
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.list - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.ListCollectionIds"

ListDocuments

  • Método: google.firestore.v1beta1.Firestore.ListDocuments
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.ListDocuments"

PartitionQuery

  • Método: google.firestore.v1beta1.Firestore.PartitionQuery
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.PartitionQuery"

Rollback

  • Método: google.firestore.v1beta1.Firestore.Rollback
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.databases.get - DATA_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.Rollback"

RunAggregationQuery

RunQuery

UpdateDocument

  • Método: google.firestore.v1beta1.Firestore.UpdateDocument
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.firestore.v1beta1.Firestore.UpdateDocument"

google.longrunning.Operations

Os registros de auditoria a seguir estão associados a métodos que pertencem a google.longrunning.Operations.

CancelOperation

DeleteOperation

GetOperation

  • Método: google.longrunning.Operations.GetOperation
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.operations.get - ADMIN_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.longrunning.Operations.GetOperation"

ListOperations

  • Método: google.longrunning.Operations.ListOperations
  • Tipo de registro de auditoria: acesso a dados
  • Permissões:
    • datastore.operations.list - ADMIN_READ
  • O método é uma operação de streaming ou de longa duração: No
  • Filtrar para este método: protoPayload.methodName="google.longrunning.Operations.ListOperations"

Identificar os autores de solicitações

As entradas do registro de auditoria incluem informações sobre a identidade que executou a operação registrada. Para identificar um autor da chamada de solicitação, consulte os seguintes campos em um objeto AuditLog:

  • A identidade do autor da chamada é mantida no campo AuthenticationInfo. Isso pode incluir o principalEmail do usuário. Essas informações são às vezes divulgadas.

    Se um JSON Web Token (JWT, na sigla em inglês) for usado para a autenticação de terceiros, o campo thirdPartyPrincipal vai conter o cabeçalho e o payload do token. Por exemplo, os registros de auditoria de solicitações autenticadas com o Firebase Authentication incluem o token de autenticação dessa solicitação.

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