Firestore 审核日志记录信息

本文档介绍 Firestore 的审核日志记录。 其中说明了审核的方法以及每种方法生成的审核日志的详细信息。 其中会列出不会生成审核日志(如果有)的方法。Google Cloud 服务会写入审核日志,这些日志用于记录 Google Cloud 资源中的管理活动和访问情况。如需了解详情,请参阅 Cloud Audit Logs 概览

备注

如需查看处理 DATA_READDATA_WRITE 请求所用的时间,请参阅 AuditLogmetadata 对象中的 processing_duration 字段。 processing_duration 描述了数据库实际处理请求所花的时间。这比最终用户延迟时间短。具体来说,它不包括网络开销。

对于 Listen 请求,processing_duration 只会出现在返回的初始结果集的审核日志中。同一 Listen 目标的后续审核日志中不会包含该记录。

审核日志不会记录导入操作和 TTL 的每一次写入。

服务名称

Firestore 审核日志使用服务名称 firestore.googleapis.com

方法(按权限类型)

Firestore 还在 Key Visualizer 诊断工具中包含以下操作。这些日志是数据访问审核日志,服务名称为 firestorekeyvisualizer.googleapis.com。为 firestore.googleapis.com 服务启用 DATA_READ 即可启用这些功能。

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

检查 DATA_READDATA_WRITEADMIN_READ 的方法 权限类型会生成数据访问审核日志。 检查 ADMIN_WRITE 权限类型的方法会生成管理员活动审核日志。

权限类型 方法
ADMIN_READ google.cloud.cloud.location.location.location.Locations.Locations.GetLocation1


















ADMIN_WRITE google.firestore.firestore.firestore.main.firestore.admin.v1.FirestoreStore.admin.v1.FirestoreStore.admin.v1.Firestore 指






















DATA_READ google.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.Firestore.Firestore.Batch 指代。

















DATA_WRITE google.Firestore.firestore.v1.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.firestore.v1.Firestore.Firestore.Batch1.v1.Firestore.Firestore.Firestore.Batch1









每个 API 接口的审核日志

如需详细了解每种方法分别评估哪些权限,请参阅 Firestore 的 Identity and Access Management 文档。

google.cloud.location.Locations

以下部分详细介绍了与 google.cloud.location.Locations 中的方法相关联的审核日志。

google.cloud.location.Locations.GetLocation

  • 方法google.cloud.location.Locations.GetLocation
  • 审核日志类型数据访问
  • 权限
    • datastore.locations.get - ADMIN_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.cloud.location.Locations.GetLocation"

google.cloud.location.Locations.ListLocations

  • 方法google.cloud.location.Locations.ListLocations
  • 审核日志类型数据访问
  • 权限
    • datastore.locations.list - ADMIN_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.cloud.location.Locations.ListLocations"

google.firestore.admin.v1.FirestoreAdmin

以下部分详细介绍了与 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.GetDatabase
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.getMetadata - ADMIN_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetDatabase"

google.firestore.admin.v1.FirestoreAdmin.GetField

  • 方法google.firestore.admin.v1.FirestoreAdmin.GetField
  • 审核日志类型数据访问
  • 权限
    • datastore.indexes.get - ADMIN_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.admin.v1.FirestoreAdmin.GetField"

google.firestore.admin.v1.FirestoreAdmin.GetIndex

  • 方法google.firestore.admin.v1.FirestoreAdmin.GetIndex
  • 审核日志类型数据访问
  • 权限
    • datastore.indexes.get - ADMIN_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="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

以下部分详细介绍了与 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

以下部分详细介绍了与 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

以下部分详细介绍了与 google.firestore.v1.Firestore 中的方法相关联的审核日志。

google.firestore.v1.Firestore.BatchGetDocuments

google.firestore.v1.Firestore.BatchWrite

  • 方法google.firestore.v1.Firestore.BatchWrite
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.BatchWrite"

google.firestore.v1.Firestore.BeginTransaction

  • 方法google.firestore.v1.Firestore.BeginTransaction
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.BeginTransaction"

google.firestore.v1.Firestore.Commit

  • 方法google.firestore.v1.Firestore.Commit
  • 审核日志类型数据访问
  • 权限
    • 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
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.Commit"

google.firestore.v1.Firestore.CreateDocument

  • 方法google.firestore.v1.Firestore.CreateDocument
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.CreateDocument"

google.firestore.v1.Firestore.DeleteDocument

  • 方法google.firestore.v1.Firestore.DeleteDocument
  • 审核日志类型数据访问
  • 权限
    • datastore.entities.delete - DATA_WRITE
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.DeleteDocument"

google.firestore.v1.Firestore.GetDocument

  • 方法google.firestore.v1.Firestore.GetDocument
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.GetDocument"

google.firestore.v1.Firestore.ListCollectionIds

  • 方法google.firestore.v1.Firestore.ListCollectionIds
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.ListCollectionIds"

google.firestore.v1.Firestore.ListDocuments

  • 方法google.firestore.v1.Firestore.ListDocuments
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.ListDocuments"

google.firestore.v1.Firestore.Listen

  • 方法google.firestore.v1.Firestore.Listen
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • 方法是长时间运行的操作或流式操作流式 RPC
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.Listen"
  • 注意:

    Listen 是一个长期有效的 RPC,结合了多个流式传输目标。每个目标是一个查询或一组文档键。每个目标的流都包含一个初始结果集,以及对结果集的一系列更新、添加和移除操作。目标是相关审核单位。Firestore 会按如下方式审核每个目标:

    • 添加目标后,发出一个设置了目标查询或文档键的日志条目。在这些条目中,operation.first 为 true。当数据流是对较早的“收听”目标数据流的恢复时,系统会忽略此审核日志。
    • 发送定期更新,报告自上次此目标的审核日志以来的更新计数。
    • 从数据流中移除目标(无论是显式还是因 Listen RPC 终止)时,发出日志条目。此日志条目报告的是自上次为此目标创建审核日志以来的更新计数。在这些条目中,operation.last 为 true。
    • 发出的日志条目使用相同的 operation.id

google.firestore.v1.Firestore.PartitionQuery

  • 方法google.firestore.v1.Firestore.PartitionQuery
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.PartitionQuery"

google.firestore.v1.Firestore.Rollback

  • 方法google.firestore.v1.Firestore.Rollback
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.Rollback"

google.firestore.v1.Firestore.RunAggregationQuery

  • 方法google.firestore.v1.Firestore.RunAggregationQuery
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • 方法是长时间运行的操作或流式操作流式 RPC
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.RunAggregationQuery"

google.firestore.v1.Firestore.RunQuery

  • 方法google.firestore.v1.Firestore.RunQuery
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • 方法是长时间运行的操作或流式操作流式 RPC
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.RunQuery"
  • 注意 RunQuery 是短期有效的流式 RPC,会在发送最后一条消息(文档)时发出一个日志条目。

google.firestore.v1.Firestore.UpdateDocument

  • 方法google.firestore.v1.Firestore.UpdateDocument
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.UpdateDocument"

google.firestore.v1.Firestore.Write

  • 方法google.firestore.v1.Firestore.Write
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • 方法是长时间运行的操作或流式操作流式 RPC
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1.Firestore.Write"
  • 注意 Write 会针对收到的每条消息发出一个日志条目,因为每条消息对应一次对数据库的独立写入操作。发出的日志条目使用相同的 operation.id

google.firestore.v1beta1.Firestore

以下部分详细介绍了与 google.firestore.v1beta1.Firestore 中的方法相关联的审核日志。

google.firestore.v1beta1.Firestore.BatchGetDocuments

google.firestore.v1beta1.Firestore.BatchWrite

  • 方法google.firestore.v1beta1.Firestore.BatchWrite
  • 审核日志类型数据访问
  • 权限
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1beta1.Firestore.BatchWrite"

google.firestore.v1beta1.Firestore.BeginTransaction

google.firestore.v1beta1.Firestore.Commit

  • 方法google.firestore.v1beta1.Firestore.Commit
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1beta1.Firestore.Commit"

google.firestore.v1beta1.Firestore.CreateDocument

  • 方法google.firestore.v1beta1.Firestore.CreateDocument
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.allocateIds - DATA_WRITE
    • datastore.entities.create - DATA_WRITE
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1beta1.Firestore.CreateDocument"

google.firestore.v1beta1.Firestore.DeleteDocument

  • 方法google.firestore.v1beta1.Firestore.DeleteDocument
  • 审核日志类型数据访问
  • 权限
    • datastore.entities.delete - DATA_WRITE
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1beta1.Firestore.DeleteDocument"

google.firestore.v1beta1.Firestore.GetDocument

  • 方法google.firestore.v1beta1.Firestore.GetDocument
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1beta1.Firestore.GetDocument"

google.firestore.v1beta1.Firestore.ListCollectionIds

google.firestore.v1beta1.Firestore.ListDocuments

  • 方法google.firestore.v1beta1.Firestore.ListDocuments
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1beta1.Firestore.ListDocuments"

google.firestore.v1beta1.Firestore.PartitionQuery

  • 方法google.firestore.v1beta1.Firestore.PartitionQuery
  • 审核日志类型数据访问
  • 权限
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1beta1.Firestore.PartitionQuery"

google.firestore.v1beta1.Firestore.Rollback

  • 方法google.firestore.v1beta1.Firestore.Rollback
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1beta1.Firestore.Rollback"

google.firestore.v1beta1.Firestore.RunAggregationQuery

google.firestore.v1beta1.Firestore.RunQuery

  • 方法google.firestore.v1beta1.Firestore.RunQuery
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.get - DATA_READ
    • datastore.entities.list - DATA_READ
  • 方法是长时间运行的操作或流式操作流式 RPC
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1beta1.Firestore.RunQuery"
  • 注意 RunQuery 是短期有效的流式 RPC,会在发送最后一条消息(文档)时发出一个日志条目。

google.firestore.v1beta1.Firestore.UpdateDocument

  • 方法google.firestore.v1beta1.Firestore.UpdateDocument
  • 审核日志类型数据访问
  • 权限
    • datastore.databases.get - DATA_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.update - DATA_WRITE
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.firestore.v1beta1.Firestore.UpdateDocument"

google.longrunning.Operations

以下部分详细介绍了与 google.longrunning.Operations 中的方法相关联的审核日志。

google.longrunning.Operations.CancelOperation

  • 方法google.longrunning.Operations.CancelOperation
  • 审核日志类型管理员活动
  • 权限
    • datastore.operations.cancel - ADMIN_WRITE
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.longrunning.Operations.CancelOperation"

google.longrunning.Operations.DeleteOperation

  • 方法google.longrunning.Operations.DeleteOperation
  • 审核日志类型管理员活动
  • 权限
    • datastore.operations.delete - ADMIN_WRITE
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.longrunning.Operations.DeleteOperation"

google.longrunning.Operations.GetOperation

  • 方法google.longrunning.Operations.GetOperation
  • 审核日志类型数据访问
  • 权限
    • datastore.operations.get - ADMIN_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.longrunning.Operations.GetOperation"

google.longrunning.Operations.ListOperations

  • 方法google.longrunning.Operations.ListOperations
  • 审核日志类型数据访问
  • 权限
    • datastore.operations.list - ADMIN_READ
  • Method 是长时间运行的操作或流式传输操作:否。
  • 此方法的过滤条件 protoPayload.methodName="google.longrunning.Operations.ListOperations"

识别请求调用方

审核日志条目包含执行 记录的操作。要识别请求调用方,请参阅 一个 AuditLog 对象: