如何通过GCP审计日志追踪Google Data Studio访问者凭据及访问的表/数据集
GCP审计日志追踪Looker Studio(原Data Studio)访问关联BigQuery资源的实现方案
你当前使用的BI Engine审计日志仅支持获取访问者身份等基础信息,要获取对应的BigQuery表、数据集访问信息,需要结合BigQuery核心审计日志联动查询,具体操作如下:
1. 前置配置检查
确认GCP项目已开启BigQuery数据访问审计日志:
- 进入GCP控制台IAM的「审计日志」配置页
- 找到BigQuery服务,勾选
DATA_READ类型的日志记录权限,确保所有查询请求会被审计日志捕获
2. 两类日志的关联逻辑
Data Studio发起的查询请求会同时在BI Engine审计日志、BigQuery审计日志中留下记录,可通过以下特征过滤并关联两类日志:
- Data Studio发起的请求,在BigQuery审计日志的
protoPayload.requestMetadata.callerSuppliedUserAgent字段会固定携带Google-Data-Studio标识 - 两类日志的
protoPayload.requestMetadata.requestId字段值完全一致,可以作为关联的唯一键
3. 提取BigQuery资源信息
在匹配到的BigQuery审计日志(资源类型bigquery_project,方法名jobservice.jobcompleted)中,可直接读取所需的资源字段:
- 访问的数据集信息:
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.query.datasetId - 访问的全量表信息:
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.query.tableReferences,会返回本次查询涉及的所有表的「项目ID+数据集ID+表名」完整路径
4. 日志查询示例(GCP日志 Explorer中使用)
resource.type="bigquery_project" protoPayload.methodName="jobservice.jobcompleted" protoPayload.requestMetadata.callerSuppliedUserAgent:"Google-Data-Studio" protoPayload.authenticationInfo.principalEmail="目标用户邮箱" timestamp >= "2024-01-01T00:00:00Z"
如果已经将审计日志全量导出到BigQuery存储,可以直接通过requestId字段关联BI Engine审计日志表和BigQuery审计日志表,批量拉取所有访问记录对应的用户身份、访问资源信息。
内容的提问来源于stack exchange,提问作者Rootie
相关产品推荐
相关产品推荐

