データアクセスを監視する

大企業の分析基盤では、データアクセスを監視したいという要望があります。

というわけで、アラートを通知する為に、プロジェクトに属するデータリソースのデータアクセスのログを抽出するクエリを紹介します。

Cloud Loggingのクエリで抽出する

データリソース: BigQuery、GCS、Cloud Spanner、Cloud SQL
Googleアカウント: ユーザー

logName = "projects/{project_id}/logs/cloudaudit.googleapis.com%data_access"
resource.type = ("bigquery_resource" OR "gcs_bucket" OR "spanner_instance" OR "cloudsql_database")
protoPayload.authenticationInfo.principalEmail !~ ("gserviceaccount.com")

ユーザーという判定はサービスアカウント以外というフィルタで表現しています。

指定の時間帯(営業時間外など)だけログを抽出したい。もしくはアラートを発生させたいという要望はあるかと思いますが、ブラウザ(Google Cloud Console)のCloud Loggingのフィルタで現在時刻が取得できないことや、Cloud Monitoringで指標に対する時間のフィルタリングができないので、ブラウザからは実現できません。

ただし、gcloudコマンドやCloud LoggingのClient Libraryを使い、プログラムで現在時刻を取得してコマンドやメソッドに渡すことをすれば、実現できると思います。

コメント

このブログの人気の投稿

BigQuery テーブルの有効期限を設定する

Cloud Schedulerは必ず実行されるわけではない

ChromebookでAndroidアプリをインストールする方法