Firestore 审核日志记录信息

本文档介绍 Firestore 的审核日志记录。Google Cloud 服务会生成审核日志,以记录 Google Cloud 资源中的管理和访问活动。 如需详细了解 Cloud Audit Logs,请参阅以下文档页面:

备注

配置审核日志记录时,请使用服务名称 datastore.googleapis.com 同时配置 datastore.googleapis.comfirestore.googleapis.com。配置完成后,Firestore API 的日志将包含服务名称 firestore.googleapis.com

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

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

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

服务名称

Firestore 审核日志使用服务名称 firestore.googleapis.com。 针对此服务的过滤条件:

    protoPayload.serviceName="firestore.googleapis.com"
  

方法(按权限类型)

每个 IAM 权限都有一个 type 属性,该属性的值是一个枚举,可以是以下四个值之一:ADMIN_READADMIN_WRITEDATA_READDATA_WRITE。在您调用某个方法时,则 Firestore 会生成一个审核日志,其类别取决于执行该方法所需权限的 type 属性。需要 IAM 权限且 type 属性值为 DATA_READDATA_WRITEADMIN_READ 的方法会生成数据访问审核日志。需要 IAM 权限且 type 属性值为 ADMIN_WRITE 的方法会生成管理员活动审核日志。

权限类型 方法
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

API 接口审核日志

如需了解如何为每种方法评估哪些权限以及评估哪些权限, 请参阅 Firestore 的 Identity and Access Management 文档。

google.cloud.location.Locations

以下部分包含与属于 google.cloud.location.Locations 的方法关联的审核日志的详细信息。

GetLocation

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

ListLocations

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

google.firestore.admin.v1.FirestoreAdmin

以下部分包含与属于 google.firestore.admin.v1.FirestoreAdmin 的方法关联的审核日志的详细信息。

BulkDeleteDocuments

CreateBackupSchedule

CreateDatabase

CreateIndex

DeleteBackup

DeleteBackupSchedule

DeleteDatabase

DeleteIndex

ExportDocuments

GetBackup

GetBackupSchedule

GetDatabase

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

GetField

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

GetIndex

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

ImportDocuments

ListBackupSchedules

ListBackups

ListDatabases

ListFields

ListIndexes

RestoreDatabase

UpdateBackupSchedule

UpdateDatabase

UpdateField

google.firestore.admin.v1beta1.FirestoreAdmin

以下部分包含与属于 google.firestore.admin.v1beta1.FirestoreAdmin 的方法关联的审核日志的详细信息。

CreateIndex

DeleteIndex

ExportDocuments

GetIndex

ImportDocuments

ListIndexes

google.firestore.admin.v1beta2.FirestoreAdmin

以下部分包含与属于 google.firestore.admin.v1beta2.FirestoreAdmin 的方法关联的审核日志的详细信息。

CreateIndex

DeleteIndex

ExportDocuments

GetField

GetIndex

ImportDocuments

ListFields

ListIndexes

UpdateField

google.firestore.v1.Firestore

以下部分包含与属于 google.firestore.v1.Firestore 的方法关联的审核日志的详细信息。

BatchGetDocuments

BatchWrite

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

BeginTransaction

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

Commit

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

CreateDocument

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

DeleteDocument

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

GetDocument

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

ListCollectionIds

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

ListDocuments

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

Listen

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

PartitionQuery

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

Rollback

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

RunAggregationQuery

RunQuery

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

UpdateDocument

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

Write

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

google.firestore.v1beta1.Firestore

以下部分包含与属于 google.firestore.v1beta1.Firestore 的方法关联的审核日志的详细信息。

BatchGetDocuments

BatchWrite

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

BeginTransaction

Commit

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

CreateDocument

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

DeleteDocument

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

GetDocument

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

ListCollectionIds

ListDocuments

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

PartitionQuery

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

Rollback

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

RunAggregationQuery

RunQuery

UpdateDocument

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

google.longrunning.Operations

以下部分包含与属于 google.longrunning.Operations 的方法关联的审核日志的详细信息。

CancelOperation

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

DeleteOperation

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

GetOperation

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

ListOperations

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

识别请求调用方

审核日志条目包含执行 记录的操作。如需识别请求调用方,请查看 AuditLog 对象中的以下字段: