本文列出 Datastore 的稽核方法。 Google Cloud 服務會產生稽核記錄,用以記錄 Google Cloud 資源中的管理和存取活動。如要進一步瞭解 Cloud 稽核記錄,請參閱以下內容:
附註
設定稽核記錄時,服務名稱 datastore.googleapis.com 會設定 datastore.googleapis.com 和 firestore.googleapis.com API 呼叫的記錄。
如要查看處理 DATA_READ 或 DATA_WRITE 要求所花費的時間,請參閱 AuditLog 的 metadata 物件中的 processing_duration 欄位。processing_duration 是指資料庫實際處理要求所花費的時間。這比使用者延遲時間還短。特別是不含網路額外負荷。
服務名稱
如要查看 Datastore 稽核記錄,請按照下列步驟操作:
前往 Google Cloud 控制台的「Logs Explorer」頁面:
複製下列查詢並貼到「Logs Explorer」的「查詢」欄位,然後點選「執行查詢」。
protoPayload.serviceName="datastore.googleapis.com"
依權限類型區分的方法
每個 IAM 權限都具有 type 屬性,其值為以下四個列舉值之一:ADMIN_READ、ADMIN_WRITE、DATA_READ 或 DATA_WRITE。呼叫方法時,Datastore 會產生一筆稽核記錄,記錄類別依執行該方法所需權限的 type 屬性而定。若方法需要的 IAM 權限,type 屬性值為 DATA_READ、DATA_WRITE 或 ADMIN_READ,就會產生資料存取稽核記錄;若所需 IAM 權限的 type 屬性值為 ADMIN_WRITE,則會產生管理員活動稽核記錄。
| 權限類型 | 方法 |
|---|---|
ADMIN_READ |
google.datastore.admin.v1.DatastoreAdmin.GetIndexgoogle.datastore.admin.v1.DatastoreAdmin.ListIndexesgoogle.longrunning.Operations.GetOperationgoogle.longrunning.Operations.ListOperations |
ADMIN_WRITE |
google.datastore.admin.v1.DatastoreAdmin.CreateIndex (LRO)google.datastore.admin.v1.DatastoreAdmin.DeleteIndexgoogle.datastore.admin.v1.DatastoreAdmin.ExportEntities (LRO)google.datastore.admin.v1.DatastoreAdmin.ImportEntities (LRO)google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities (LRO)google.datastore.admin.v1beta1.DatastoreAdmin.ImportEntities (LRO)google.longrunning.Operations.CancelOperationgoogle.longrunning.Operations.DeleteOperation |
DATA_READ |
google.datastore.v1.Datastore.BeginTransactiongoogle.datastore.v1.Datastore.Lookupgoogle.datastore.v1.Datastore.Rollbackgoogle.datastore.v1.Datastore.RunAggregationQuerygoogle.datastore.v1.Datastore.RunQuerygoogle.datastore.v1beta3.Datastore.BeginTransactiongoogle.datastore.v1beta3.Datastore.Lookupgoogle.datastore.v1beta3.Datastore.Rollbackgoogle.datastore.v1beta3.Datastore.RunAggregationQuerygoogle.datastore.v1beta3.Datastore.RunQuery |
DATA_WRITE |
google.datastore.v1.Datastore.AllocateIdsgoogle.datastore.v1.Datastore.Commitgoogle.datastore.v1.Datastore.ReserveIdsgoogle.datastore.v1beta3.Datastore.AllocateIdsgoogle.datastore.v1beta3.Datastore.Commitgoogle.datastore.v1beta3.Datastore.ReserveIds |
API 介面稽核記錄
如要瞭解各方法所需的權限及評估方式,請參閱 Datastore 的 Identity and Access Management 說明文件。
google.datastore.admin.v1.DatastoreAdmin
屬於 google.datastore.admin.v1.DatastoreAdmin 的方法會產生以下稽核記錄。
CreateIndex
- 方法:
google.datastore.admin.v1.DatastoreAdmin.CreateIndex - 稽核記錄類型:管理員活動
- 權限:
datastore.indexes.create - ADMIN_WRITE
- 方法的作業種類:
長時間執行的作業
- 篩選條件:
protoPayload.methodName="google.datastore.admin.v1.DatastoreAdmin.CreateIndex"
DeleteIndex
- 方法:
google.datastore.admin.v1.DatastoreAdmin.DeleteIndex - 稽核記錄類型:管理員活動
- 權限:
datastore.indexes.delete - ADMIN_WRITE
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.admin.v1.DatastoreAdmin.DeleteIndex"
ExportEntities
- 方法:
google.datastore.admin.v1.DatastoreAdmin.ExportEntities - 稽核記錄類型:管理員活動
- 權限:
datastore.databases.export - ADMIN_WRITE
- 方法的作業種類:
長時間執行的作業
- 篩選條件:
protoPayload.methodName="google.datastore.admin.v1.DatastoreAdmin.ExportEntities"
GetIndex
- 方法:
google.datastore.admin.v1.DatastoreAdmin.GetIndex - 稽核記錄類型:資料存取
- 權限:
datastore.indexes.get - ADMIN_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.admin.v1.DatastoreAdmin.GetIndex"
ImportEntities
- 方法:
google.datastore.admin.v1.DatastoreAdmin.ImportEntities - 稽核記錄類型:管理員活動
- 權限:
datastore.databases.import - ADMIN_WRITE
- 方法的作業種類:
長時間執行的作業
- 篩選條件:
protoPayload.methodName="google.datastore.admin.v1.DatastoreAdmin.ImportEntities"
ListIndexes
- 方法:
google.datastore.admin.v1.DatastoreAdmin.ListIndexes - 稽核記錄類型:資料存取
- 權限:
datastore.indexes.list - ADMIN_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.admin.v1.DatastoreAdmin.ListIndexes"
google.datastore.admin.v1beta1.DatastoreAdmin
屬於 google.datastore.admin.v1beta1.DatastoreAdmin 的方法會產生以下稽核記錄。
ExportEntities
- 方法:
google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities - 稽核記錄類型:管理員活動
- 權限:
datastore.databases.export - ADMIN_WRITE
- 方法的作業種類:
長時間執行的作業
- 篩選條件:
protoPayload.methodName="google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities"
ImportEntities
- 方法:
google.datastore.admin.v1beta1.DatastoreAdmin.ImportEntities - 稽核記錄類型:管理員活動
- 權限:
datastore.databases.import - ADMIN_WRITE
- 方法的作業種類:
長時間執行的作業
- 篩選條件:
protoPayload.methodName="google.datastore.admin.v1beta1.DatastoreAdmin.ImportEntities"
google.datastore.v1.Datastore
屬於 google.datastore.v1.Datastore 的方法會產生以下稽核記錄。
AllocateIds
- 方法:
google.datastore.v1.Datastore.AllocateIds - 稽核記錄類型:資料存取
- 權限:
datastore.entities.allocateIds - DATA_WRITE
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1.Datastore.AllocateIds"
BeginTransaction
- 方法:
google.datastore.v1.Datastore.BeginTransaction - 稽核記錄類型:資料存取
- 權限:
datastore.databases.get - DATA_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1.Datastore.BeginTransaction"
Commit
- 方法:
google.datastore.v1.Datastore.Commit - 稽核記錄類型:資料存取
- 權限:
datastore.databases.get - DATA_READdatastore.entities.create - DATA_WRITEdatastore.entities.delete - DATA_WRITEdatastore.entities.update - DATA_WRITE
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1.Datastore.Commit"
Lookup
- 方法:
google.datastore.v1.Datastore.Lookup - 稽核記錄類型:資料存取
- 權限:
datastore.entities.get - DATA_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1.Datastore.Lookup"
ReserveIds
- 方法:
google.datastore.v1.Datastore.ReserveIds - 稽核記錄類型:資料存取
- 權限:
datastore.entities.allocateIds - DATA_WRITE
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1.Datastore.ReserveIds"
Rollback
- 方法:
google.datastore.v1.Datastore.Rollback - 稽核記錄類型:資料存取
- 權限:
datastore.databases.get - DATA_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1.Datastore.Rollback"
RunAggregationQuery
- 方法:
google.datastore.v1.Datastore.RunAggregationQuery - 稽核記錄類型:資料存取
- 權限:
datastore.entities.get - DATA_READdatastore.entities.list - DATA_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1.Datastore.RunAggregationQuery"
RunQuery
- 方法:
google.datastore.v1.Datastore.RunQuery - 稽核記錄類型:資料存取
- 權限:
datastore.entities.get - DATA_READdatastore.entities.list - DATA_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1.Datastore.RunQuery"
google.datastore.v1beta3.Datastore
屬於 google.datastore.v1beta3.Datastore 的方法會產生以下稽核記錄。
AllocateIds
- 方法:
google.datastore.v1beta3.Datastore.AllocateIds - 稽核記錄類型:資料存取
- 權限:
datastore.entities.allocateIds - DATA_WRITE
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1beta3.Datastore.AllocateIds"
BeginTransaction
- 方法:
google.datastore.v1beta3.Datastore.BeginTransaction - 稽核記錄類型:資料存取
- 權限:
datastore.databases.get - DATA_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1beta3.Datastore.BeginTransaction"
Commit
- 方法:
google.datastore.v1beta3.Datastore.Commit - 稽核記錄類型:資料存取
- 權限:
datastore.entities.create - DATA_WRITEdatastore.entities.update - DATA_WRITE
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1beta3.Datastore.Commit"
Lookup
- 方法:
google.datastore.v1beta3.Datastore.Lookup - 稽核記錄類型:資料存取
- 權限:
datastore.entities.get - DATA_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1beta3.Datastore.Lookup"
ReserveIds
- 方法:
google.datastore.v1beta3.Datastore.ReserveIds - 稽核記錄類型:資料存取
- 權限:
datastore.entities.allocateIds - DATA_WRITE
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1beta3.Datastore.ReserveIds"
Rollback
- 方法:
google.datastore.v1beta3.Datastore.Rollback - 稽核記錄類型:資料存取
- 權限:
datastore.databases.get - DATA_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1beta3.Datastore.Rollback"
RunAggregationQuery
- 方法:
google.datastore.v1beta3.Datastore.RunAggregationQuery - 稽核記錄類型:資料存取
- 權限:
datastore.entities.get - DATA_READdatastore.entities.list - DATA_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1beta3.Datastore.RunAggregationQuery"
RunQuery
- 方法:
google.datastore.v1beta3.Datastore.RunQuery - 稽核記錄類型:資料存取
- 權限:
datastore.entities.get - DATA_READdatastore.entities.list - DATA_READ
- 方法的作業種類:
非長時間執行或串流作業。
- 篩選條件:
protoPayload.methodName="google.datastore.v1beta3.Datastore.RunQuery"
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"
不會產生稽核記錄的方法
某些方法可能不會產生稽核記錄,原因包括以下一或多項:
- 該方法的流量使用量高,若產生稽核記錄,會導致記錄與儲存成本過高。
- 稽核價值低。
- 其他稽核記錄或平台記錄已涵蓋該方法的活動。
下列方法不會產生稽核記錄:
google.longrunning.Operations.WaitOperation