■Cloud Loggingで調べる
ログ エクスプローラを使用したサンプルクエリ | Cloud Logging | Google Cloud
Logging のクエリ言語 | Google Cloud
とりあえず何かを出して、クリックして不要な要素をHideしていくといい
/// 誰が権限を変更したか
/// BQの利用先
protoPayload.resourceName="projects/prjxxxxxxxx/datasets/dsxxxxxxxxx/tables/tblxxxxx
/// Scheduled queryの利用状況
resource.type="bigquery_dts_config"
ログ エクスプローラを使用したサンプルクエリ | Cloud Logging | Google Cloud
Logging のクエリ言語 | Google Cloud
とりあえず何かを出して、クリックして不要な要素をHideしていくといい
/// 誰が権限を変更したか
protoPayload.request.policy.bindings.role="organizations/123456/roles/unco"
protoPayload.methodName="SetlamPolicy"
--操作者
--protoPayload.authenticationInfo.principalEmail="kuso@dayo.com"
/// BQテーブル、ビュー作成
protoPayload.methodName="google.cloud.bigquery.v2.TableServiceInsertTable"
/// GCEのPyhon等のロギングを見る/// BQテーブル、ビュー作成
protoPayload.methodName="google.cloud.bigquery.v2.TableServiceInsertTable"
resource.labels.instance_id="12234567898"
severity=WARNING
/// IAPのアクセスログ
監査ログからidentity-で探しログを有効化する(似たような名前があるので注意)
下記でLog exploreで検索するが、大体のアクセス時刻からリソースを類推して右クリックで絞る
logName="project/prjxxxxxx/logs/cloudaudit.googleapis.com%2Fdata_access"
resource.type="gce_backend_service"
/// BQの利用先
protoPayload.resourceName="projects/prjxxxxxxxx/datasets/dsxxxxxxxxx/tables/tblxxxxx
/// Scheduled queryの利用状況
resource.type="bigquery_dts_config"
/// コネクティッドシートでBQアクセスするスプシを調べるLoggingのクエリ
connected_sheets
bigquery.Jobs.create
bigquery.googleapis.com
docId
--データセット名
dataset ni_access_sarerudayo
--除外するにはマイナスを頭に付ける
-protoPayload.authenticationInfo.principal Email="washi@jyaroga.com"
■組織のログを一つのプロジェクトにまとめておく
組織のLog routerで全Syncを設定しておく
■BQインフォメーションスキーマ information schemaで調べる
//// DOL:
SELECT * FROM prj.ds.INFORMATION SCHEMA.TABLES
/// 組織のジョブ:
SELECT DISTINCT
creation_time,
information_schema.project_id,
user_email,
job_id,
cache_hit,
FROM
`region-us`.INFORMATION SCHEMA.JOBS BY ORGANIZATION AS Information schema,
UNNEST (referenced_tables) AS referenced_table
WHERE
--データコネクタからジョブ実行だと sheets_dataconnector が Prefix
job_id like "%sheets_%"
--参照先+
AND referenced table.project_id = "pri_xxx"
AND referenced table.dataset_Id = "ds_xxx"
AND referenced table.table_id LIKE "tbl_xxx%"
AND DATE (creation_time) BETWEEN "2022-06-01" AND "2023-01-30"
AND error_result IS NULL
/// プロジェクトのジョブ:
SELECT * FROM `pri_xxx.region-us.INFORMATION SCHEMA.JOBS`
,UNNEST (referenced_tables) AS referenced table
WHERE creation_time BETWEEN TIMESTAMP_SUB (CURRENT_TIMESTAMP(). INTERVAL 1 DAY)
AND referenced_table.dataset_id = 'ds_xxx'
--データコネクタからジョブを実行している場合 prefixにsheets_dataconnector、他にはscheduled_query等
AND job_id like "%sheets_%"
/// ラベル:
SELECT * FROM pri xxx.region-us. INFORMATION SCHEMA.JOBS
,UNNEST (referenced_tables) AS referenced_table
,UNNEST (labels) AS label
WHERE creation_time BETWEEN TIMESTAMP_SUB (CURRENT_TIMESTAMP(), INTERVAL 1 DAY) AND CURRENT_TIMESTAMP()
AND referenced_table.dataset_id = 'ds xxx
--データコネクタからジョブを実行している場合 labels connected_sheetsが含まれる
AND label.value = 'connected_sheets'
/// ジョブBYユーザ
SELECT * FROM `pri_xxx-region-us.INFORMATION SCHEMA.JOBS_BY_USER`
,UNNEST (referenced_tables) AS referenced_table
,UNNEST (labels) AS label
WHERE creation_time BETWEEN TIMESTAMP_SUB (CURRENT_TIMESTAMP(). INTERVAL 1 DAY) AND CURRENT_TIMESTAMP()
AND referenced_table.dataset_id = 'ds_xxx'
AND label.value = 'connected_sheets'
■Asset inventoryでアセット情報を調べる
コンソールでもGUIでAsset inventoryが見れるがコマンドでも情報取得できる
gcloud asset | Google Cloud CLI Documentation
リソースの検索のサンプル | Cloud Asset Inventory のドキュメント | Google Cloud
サポートされているアセットタイプ | Cloud Asset Inventory のドキュメント | Google Cloud
例えばGKE使用しているアセット情報(GKE cluster)
gcloud asset search-all-resources \
--scope=organizations/組織の数字ID \
--asset-types=container.googleapis.com/Cluster