データストアの監査ロギング

このドキュメントでは、Datastore の監査ロギングについて説明します。Google Cloud サービスは、Google Cloud リソース内の管理アクティビティとアクセス アクティビティを記録する監査ログを生成します。 Cloud Audit Logs の詳細については、以下をご覧ください。

メモ

監査ロギングを構成する場合、サービス名 datastore.googleapis.comdatastore.googleapis.com API 呼び出しと firestore.googleapis.com API 呼び出しの両方のログを構成します。

DATA_READ リクエストまたは DATA_WRITE リクエストの処理に要した時間を表示するには、AuditLogmetadata オブジェクト内の processing_duration フィールドをご覧ください。processing_duration は、データベースがリクエストを実際に処理するのにかかった時間を表します。これはエンドユーザーのレイテンシよりも小さくなります。特に、ネットワーク オーバーヘッドは含まれません。

サービス名

データストアの監査ログでは、サービス名 datastore.googleapis.com が使用されます。このサービスでフィルタ:

    protoPayload.serviceName="datastore.googleapis.com"
  

メソッド(権限タイプ別)

各 IAM 権限には type プロパティがあります。このプロパティの値は列挙型で、ADMIN_READADMIN_WRITEDATA_READDATA_WRITE のいずれかになります。メソッドを呼び出すと、Datastore はそのメソッドの実行に必要な権限の type プロパティによって変わるカテゴリの監査ログを生成します。type プロパティ値が DATA_READDATA_WRITE、または ADMIN_READ の IAM 権限を必要とするメソッドは、データアクセス監査ログを生成します。type プロパティ値が ADMIN_WRITE の IAM 権限を必要とするメソッドは、管理アクティビティ監査ログを生成します。

権限タイプ メソッド
ADMIN_READ google.datastore.admin.v1.DatastoreAdmin.GetIndex
google.datastore.admin.v1.DatastoreAdmin.ListIndexes
google.longrunning.Operations.GetOperation
google.longrunning.Operations.ListOperations
ADMIN_WRITE google.datastore.admin.v1.DatastoreAdmin.CreateIndex
google.datastore.admin.v1.DatastoreAdmin.DeleteIndex
google.datastore.admin.v1.DatastoreAdmin.ExportEntities
google.datastore.admin.v1.DatastoreAdmin.ImportEntities
google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities
google.datastore.admin.v1beta1.DatastoreAdmin.ImportEntities
google.longrunning.Operations.CancelOperation
google.longrunning.Operations.DeleteOperation
DATA_READ google.datastore.v1.Datastore.BeginTransaction
google.datastore.v1.Datastore.Lookup
google.datastore.v1.Datastore.Rollback
google.datastore.v1.Datastore.RunAggregationQuery
google.datastore.v1.Datastore.RunQuery
google.datastore.v1beta3.Datastore.BeginTransaction
google.datastore.v1beta3.Datastore.Lookup
google.datastore.v1beta3.Datastore.Rollback
google.datastore.v1beta3.Datastore.RunAggregationQuery
google.datastore.v1beta3.Datastore.RunQuery
DATA_WRITE google.datastore.v1.Datastore.AllocateIds
google.datastore.v1.Datastore.Commit
google.datastore.v1.Datastore.ReserveIds
google.datastore.v1beta3.Datastore.AllocateIds
google.datastore.v1beta3.Datastore.Commit
google.datastore.v1beta3.Datastore.ReserveIds

API インターフェースの監査ログ

各メソッドで評価される権限と評価方法については、Datastore の Identity and Access Management のドキュメントをご覧ください。

google.datastore.admin.v1.DatastoreAdmin

次の監査ログは、google.datastore.admin.v1.DatastoreAdmin に属するメソッドに関連付けられています。

CreateIndex

DeleteIndex

ExportEntities

GetIndex

  • メソッド: google.datastore.admin.v1.DatastoreAdmin.GetIndex
  • 監査ログのタイプ: データアクセス
  • 権限:
    • datastore.indexes.get - ADMIN_READ
  • メソッドが長時間実行またはストリーミング オペレーションである: いいえ。
  • このメソッドのフィルタ: protoPayload.methodName="google.datastore.admin.v1.DatastoreAdmin.GetIndex"

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

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_READ
    • datastore.entities.create - DATA_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.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_READ
    • datastore.entities.list - DATA_READ
  • メソッドが長時間実行またはストリーミング オペレーションである: いいえ。
  • このメソッドのフィルタ: protoPayload.methodName="google.datastore.v1.Datastore.RunAggregationQuery"

RunQuery

  • メソッド: google.datastore.v1.Datastore.RunQuery
  • 監査ログのタイプ: データアクセス
  • 権限:
    • datastore.entities.get - DATA_READ
    • datastore.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.databases.get - DATA_READ
    • 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_WRITE
    • datastore.entities.delete - DATA_WRITE
    • datastore.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.databases.get - DATA_READ
    • 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_READ
    • datastore.entities.list - DATA_READ
  • メソッドが長時間実行またはストリーミング オペレーションである: いいえ。
  • このメソッドのフィルタ: protoPayload.methodName="google.datastore.v1beta3.Datastore.RunAggregationQuery"

RunQuery

  • メソッド: google.datastore.v1beta3.Datastore.RunQuery
  • 監査ログのタイプ: データアクセス
  • 権限:
    • datastore.entities.get - DATA_READ
    • datastore.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