Firestore 稽核記錄資訊

本文說明 Firestore 的稽核記錄。 Google Cloud 服務會產生稽核記錄,記錄 Google Cloud 資源中的管理和存取活動。如要進一步瞭解 Cloud 稽核記錄,請參閱下列文章:

附註

設定稽核記錄時,請使用服務名稱 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目標
的後續稽核記錄中,不會再出現這項資訊。

系統不會記錄匯入、大量刪除作業和存留時間的個別寫入作業。

服務名稱

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

GetField

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

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

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

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 物件中的下列欄位:

  • 來電者的身分會保存在 AuthenticationInfo 欄位中。這可能包括使用者的 principalEmail。這項資訊有時會經過編輯

    如果第三方驗證使用 JSON Web Token (JWT),thirdPartyPrincipal 欄位會包含權杖的標頭和酬載。舉例來說,使用 Firebase 驗證進行驗證的要求稽核記錄,會包含該要求的驗證權杖

  • AuditLog 項目 requestMetadata 物件中的 callerIp 欄位包含呼叫端的 IP 位址。