本文档介绍了如何检查 BigQuery 表中是否存在敏感数据,并将检查结果发送到 Dataplex Universal Catalog。此操作会自动向与您的 BigQuery 表关联的 Dataplex Universal Catalog 条目添加一个方面。
本文档还提供了一些示例查询,您可以使用这些查询在组织和项目中查找具有特定方面值的数据。
如果您想通过 Sensitive Data Protection 检查作业中的敏感数据分类来丰富 Dataplex Universal Catalog 中的元数据,此功能会非常有用。
生成的方面包括以下详细信息:
- 检查作业的名称
- 在表格中检测到的信息类型 (infoTypes)
Dataplex Universal Catalog 简介
Dataplex Universal Catalog 提供 Google Cloud 资源的统一清单。
借助 Dataplex Universal Catalog,您可以使用切面向数据添加业务和技术元数据,以捕获有关资源的上下文和知识。然后,您可以在组织内搜索和发现数据,并对数据资产启用数据治理。如需了解详情,请参阅切面。
工作原理
如需根据检查作业结果自动创建 Dataplex Universal Catalog 方面,请按照以下高级别工作流程操作:
创建或修改用于检查 BigQuery 表的检查作业。 如需查看相关说明,请参阅检查 BigQuery 表。
在添加操作步骤中,启用发布到 Dataplex Universal Catalog。
Sensitive Data Protection 会添加或更新与 BigQuery 表关联的 Dataplex Universal Catalog 条目的 Sensitive Data Protection job result
方面。然后,您可以在 Dataplex Universal Catalog 中搜索组织或项目内具有特定切面值的所有数据。如需查看示例查询,请参阅本文档中的示例搜索查询。
生成的 Dataplex Universal Catalog 方面存储在与 BigQuery 表相同的项目和区域中。
方面字段
Sensitive Data Protection job result
方面具有以下字段:
- 作业名称
- 检查作业的完整资源名称,例如
projects/example-project/locations/us/dlpJobs/i-8992079400000000000
。 - InfoType 数量
- 检查作业搜索的 infoType 名称(如检查配置中所指定)以及每个 infoType 的发现结果数量。
如果某个 infoType 没有发现结果,则其数量为
0
。 - 结束时间
- 检查作业结束的日期和时间。
- 是否为全面扫描
- 检查作业是否扫描了表中的所有行。如果检查作业中启用了抽样,则此字段的值为
False
。 - 有发现结果
- 检查作业是否检测到其扫描的任何 infoType。
启用 Dataplex API
您必须在包含要添加方面的数据的每个项目中启用 Dataplex API。本部分介绍了如何在单个项目中或在组织或文件夹中的所有项目中启用 Dataplex API。
在单个项目中启用 Dataplex API
选择要在其中启用 Dataplex API 的项目。
-
Enable the Dataplex API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
在组织或文件夹中的所有项目中启用 Dataplex API
此部分提供了一个脚本,用于搜索组织或文件夹中的所有项目,并在每个项目中启用 Dataplex API。
如需获得在组织或文件夹中的所有项目中启用 Dataplex API 所需的权限,请让管理员向您授予以下 IAM 角色:
-
组织或文件夹的 Cloud Asset Viewer (
roles/cloudasset.viewer
) -
针对您要在其中启用 Dataplex API 的每个项目的 DLP User (
roles/dlp.user
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含在组织或文件夹中的所有项目中启用 Dataplex API 所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需在组织或文件夹中的所有项目中启用 Dataplex API,您必须拥有以下权限:
-
如需搜索组织或文件夹中的所有项目,请执行以下操作:
点击组织或文件夹中的
cloudasset.assets.searchAllResources
-
如需启用 Dataplex API,请在您要启用 Dataplex API 的每个项目中执行以下操作:
serviceusage.services.use
如需在组织或文件夹中的所有项目中启用 Dataplex API,请按以下步骤操作:
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
运行以下脚本:
#!/bin/bash RESOURCE_ID="RESOURCE_ID" gcloud asset search-all-resources \ --scope="RESOURCE_TYPE/$RESOURCE_ID" \ --asset-types="cloudresourcemanager.googleapis.com/Project" \ --format="value(name)" | while read project_name; do project_id=$(echo "$project_name" | sed 's|.*/||') gcloud services enable "dataplex.googleapis.com" --project="$project_id" done
替换以下内容:
RESOURCE_ID
:包含项目的资源的组织编号或文件夹编号RESOURCE_TYPE
:包含项目的资源类型 -organizations
或folders
-
Dataplex Catalog Viewer (
roles/dataplex.catalogViewer
) -
BigQuery Data Viewer (
roles/bigquery.dataViewer
) -
查看 Dataplex Universal Catalog 条目:
-
dataplex.entries.list
-
dataplex.entries.get
-
-
查看 BigQuery 数据集和表:
-
bigquery.datasets.get
-
bigquery.tables.get
-
-
在 Google Cloud 控制台中,前往创建作业或作业触发器页面。
- 选择您的项目。
- 输入所需的检查作业详细信息以及要检查的 BigQuery 表的详细信息。如需查看相关说明,请参阅检查 BigQuery 表。如需查看 Sensitive Data Protection 可以检查的信息类型的完整列表,请参阅 InfoType 检测器参考文档。
- 对于添加操作,请启用发布到 Dataplex Universal Catalog。
- 点击创建。作业会立即运行。
-
PROJECT_ID
:您的 Google Cloud 项目 ID。 项目 ID 是字母数字字符串 -
LOCATION
:您要处理请求的单区域或多区域,例如europe-west1
或us
。如需查看可用位置,请参阅 Sensitive Data Protection 位置。 -
BIGQUERY_DATASET_NAME
:包含要检查的表的 BigQuery 数据集的名称 -
BIGQUERY_TABLE_NAME
:要检查的 BigQuery 表的名称
查看方面所需的角色和权限
如需获得搜索与 BigQuery 表相关联的方面所需的权限,请让管理员为您授予该表的以下 IAM 角色:
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含搜索与 BigQuery 表相关联的方面所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需搜索与 BigQuery 表相关联的方面,您需要具备以下权限:
如需详细了解使用 Dataplex Universal Catalog 所需的权限,请参阅 Dataplex Universal Catalog IAM 权限。
配置并运行 Sensitive Data Protection 检查作业
您可以使用 Google Cloud 控制台或 DLP API 配置并运行 Sensitive Data Protection 检查作业。
控制台
REST
以下示例发送 projects.locations.dlpJobs.create
请求,以检查 BigQuery 表并将结果发送到 Dataplex Universal Catalog。
在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dlpJobs
请求 JSON 正文:
{ "inspectJob": { "storageConfig": { "bigQueryOptions": { "tableReference": { "projectId": "PROJECT_ID", "datasetId": "BIGQUERY_DATASET_NAME", "tableId": "BIGQUERY_TABLE_NAME" } } }, "inspectConfig": { "infoTypes": [ { "name": "EMAIL_ADDRESS" }, { "name": "PERSON_NAME" }, { "name": "US_SOCIAL_SECURITY_NUMBER" }, { "name": "PHONE_NUMBER" } ], "includeQuote": true, "minLikelihood": "UNLIKELY", "limits": { "maxFindingsPerRequest": 100 } }, "actions": [ { "publishFindingsToDataplexCatalog": {} } ] } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_ID/locations/LOCATION/dlpJobs/JOB_ID", "type": "INSPECT_JOB", "state": "PENDING", "inspectDetails": { "requestedOptions": { "snapshotInspectTemplate": {}, "jobConfig": { "storageConfig": { "bigQueryOptions": { "tableReference": { "projectId": "PROJECT_ID", "datasetId": "BIGQUERY_DATASET_NAME", "tableId": "BIGQUERY_TABLE_NAME" } } }, "inspectConfig": { "infoTypes": [ { "name": "EMAIL_ADDRESS" }, { "name": "PERSON_NAME" }, { "name": "US_SOCIAL_SECURITY_NUMBER" }, { "name": "PHONE_NUMBER" } ], "minLikelihood": "UNLIKELY", "limits": { "maxFindingsPerRequest": 100 }, "includeQuote": true }, "actions": [ { "publishFindingsToDataplexCatalog": {} } ] } }, "result": {} }, "createTime": "2025-09-09T00:29:55.951374Z", "lastModified": "2025-09-09T00:29:58.022967Z" }
如需了解如何使用 DLP API 获取检查作业结果,请参阅获取作业。
搜索查询示例
本部分提供了一些示例搜索查询,您可以在 Dataplex Universal Catalog 中使用这些查询来查找组织或项目中具有特定切面值的数据。
您只能找到自己有权访问的数据。数据访问权限通过 IAM 权限进行控制。如需了解详情,请参阅本文档中的查看切面的角色和权限。
您可以在 Dataplex Universal Catalog 搜索页面上的搜索字段中输入这些示例查询。
如需了解如何构建查询,请参阅 Dataplex Universal Catalog 的搜索语法。
查找具有敏感数据保护作业结果方面特征的所有表的条目
aspect:sensitive-data-protection-job-result
查找检查过的表中存在发现结果的条目
aspect:sensitive-data-protection-job-result.hasFindings=True
查找检查过的表中没有发现结果的条目
aspect:sensitive-data-protection-job-result.hasFindings=False
查找已完全检查的表的条目
以下查询返回了敏感数据保护逐行检查的表的条目。
aspect:sensitive-data-protection-job-result.isFullScan=True
查找未完全检查的表的条目
以下查询会返回 Sensitive Data Protection 通过抽样检查的表的条目。
aspect:sensitive-data-protection-job-result.isFullScan=False