如需正确管理存储区中存储的敏感数据,首先需要进行存储分类:确定存储区中敏感数据的位置、敏感数据的类型以及敏感数据的使用方法。这些信息可以帮助您正确设置访问控制和共享权限,并且可以作为持续监控计划的一部分。
敏感数据保护可以检测存储在 Cloud Storage 位置、Datastore 类型或 BigQuery 表中的敏感数据并对其进行分类。扫描 Cloud Storage 位置中的文件时,敏感数据保护功能支持扫描二进制文件、文本、图片、Microsoft Word、Microsoft Excel、Microsoft PowerPoint、PDF 和 Apache Avro 文件。无法识别类型的文件将作为二进制文件进行扫描。如需详细了解支持的文件类型,请参阅支持的文件类型。
如需检查存储空间和数据库中是否存在敏感数据,请指定数据的位置以及 Sensitive Data Protection 应查找的敏感数据类型。敏感数据保护功能会启动一个作业,该作业会检查给定位置中的数据,然后提供内容中找到的 infoTypes 的详细信息、可能性值及其他信息。
您可以在 Google Cloud 控制台中使用 Sensitive Data Protection、通过 RESTful DLP API,或者采用多种语言之一以编程方式使用 Sensitive Data Protection 客户端库来设置存储空间和数据库检查。
本主题包含以下内容:
- 设置 Google Cloud 存储区和数据库扫描的最佳做法。
- 说明如何在 Google Cloud 控制台中使用 Sensitive Data Protection 设置检查扫描,以及(可选)安排定期重复进行检查扫描。
- 每种 Google Cloud 存储区类型(Cloud Storage、Datastore 模式的 Firestore [Datastore] 和 BigQuery)的 JSON 和代码示例。
- 扫描作业配置选项的详细概览。
- 有关如何对每个成功的请求生成的扫描结果进行检索以及创建的扫描作业进行管理的说明。
最佳做法
确定扫描范围和优先级
请务必先评估您的资源并指定哪些资源的扫描优先级最高。刚开始时,可能有大量积压的数据需要分类,而且无法立即扫描所有数据。首先选择潜在风险最高的数据,例如经常访问、广泛访问或未知的数据。
确保 Sensitive Data Protection 可以访问您的数据
敏感数据保护功能必须能够访问要扫描的数据。确保 Sensitive Data Protection 服务账号有权读取您的资源。
限制首次扫描的范围
为达到最佳效果,请限制前几项作业的范围,而不是扫描所有数据。从一个表、一个存储分区或几个文件开始,同时使用抽样。通过限制首次扫描的范围,您可以更好地确定要启用的检测器以及可能需要哪些排除规则来减少误报,让结果更有意义。如果您不需要所有 infoType,请避免启用所有 infoType,因为误报或无法使用的结果可能会让评估风险变得更加困难。虽然在某些情况下很有用,但像 DATE
、TIME
、DOMAIN_NAME
和 URL
这样的 infoType 会匹配广泛的结果,可能不适用于大型数据扫描。
对结构化文件(例如 CSV、TSV 或 Avro 文件)进行抽样时,请确保样本大小足够大,能够涵盖文件的完整标头和一行数据。如需了解详情,请参阅在结构化解析模式下扫描结构化文件。
安排扫描时间
使用敏感数据保护 作业触发器每天、每周或每季度自动运行扫描并生成结果。这些扫描还可以配置为仅检查自上次扫描以来发生更改的数据,从而节省时间并降低费用。定期运行扫描可帮助您识别扫描结果中的趋势或异常值。
作业延迟时间
我们不保证作业和作业触发器的服务等级目标 (SLO)。延迟时间受多种因素影响,包括要扫描的数据量、要扫描的存储区、要扫描的 infoType 的类型和数量、作业处理所在的区域以及该区域可用的计算资源。因此,无法预先确定检查作业的延迟时间。
如需帮助减少作业延迟时间,您可以尝试以下方法:
- 如果您的作业或作业触发器支持抽样,请启用该功能。
避免启用不需要的 infoType。虽然以下信息类型在某些情况下很有用,但与不包含这些信息类型的请求相比,包含这些信息类型的请求的运行速度可能会慢得多:
PERSON_NAME
FEMALE_NAME
MALE_NAME
FIRST_NAME
LAST_NAME
DATE_OF_BIRTH
LOCATION
STREET_ADDRESS
ORGANIZATION_NAME
始终明确指定 infoType。请勿使用空的 infoType 列表。
如果可能,请使用其他处理区域。
如果在尝试这些方法后作业仍存在延迟问题,请考虑使用 content.inspect
或 content.deidentify
请求,而不是作业。这些方法受服务等级协议的约束。如需了解详情,请参阅敏感数据保护服务等级协议。
准备工作
本主题提供的说明做了以下假设:
您已启用结算功能。
您已启用敏感数据保护。
存储分类需要以下 OAuth 范围:https://www.googleapis.com/auth/cloud-platform
。如需了解详情,请参阅对 DLP API 进行身份验证。
检查 Cloud Storage 位置
您可以使用 Google Cloud 控制台、通过 REST 或 RPC 请求调用 DLP API,或者采用多种语言以编程方式使用客户端库,对 Cloud Storage 位置设置敏感数据保护检查。如需了解以下 JSON 和代码示例中包含的参数,请参阅本主题后面的配置存储空间检查。
敏感数据保护功能依赖于文件扩展名和媒体 (MIME) 类型来识别要扫描的文件类型以及要应用的扫描模式。例如,敏感数据保护功能会在纯文本模式下扫描 .txt
文件,即使该文件的结构是 CSV 文件(通常在结构化解析模式下扫描)。
如需设置使用敏感数据保护功能的 Cloud Storage 存储桶扫描作业,请执行以下操作:
控制台
本部分介绍了如何检查 Cloud Storage 存储桶或文件夹。如果您还希望 Sensitive Data Protection 创建数据的去标识化副本,请参阅使用 Google Cloud 控制台对存储在 Cloud Storage 中的敏感数据进行去标识化处理。
在 Google Cloud 控制台的“敏感数据保护”部分中,前往创建作业或作业触发器页面。
输入敏感数据保护作业信息,然后点击继续以完成各个步骤:
对于第 1 步:选择输入数据,请在名称字段中输入值,为作业命名。在位置中,从存储类型菜单中选择 Cloud Storage,然后输入要扫描的数据的位置。系统已预先配置采样部分,以便针对您的数据运行示例扫描。如果您有大量数据,则可以调整存储分区内要扫描的对象百分比字段以节省资源。如需了解详情,请参阅选择输入数据。
(可选)对于第 2 步:配置检测,您可以配置要查找的数据类型,称为 infoType。您可以从预定义的 infoType 列表中进行选择,也可以选择已有的模板(如有)。如需了解详情,请参阅配置检测。
(可选)对于第 3 步:添加操作,确保通过电子邮件发送通知已启用。
启用保存到 BigQuery,以将敏感数据保护发现结果发布到 BigQuery 表。提供以下信息:
- 对于项目 ID,请输入用于存储结果的项目的 ID。
- 对于数据集 ID,请输入用于存储结果的数据集的名称。
- (可选)对于表格 ID,请输入用于存储结果的表格的名称。如果未指定表格 ID,系统会为新表格分配类似于
dlp_googleapis_[DATE]_1234567890
这样的默认名称,其中[DATE]
表示运行扫描的日期。如果您指定的是现有的表格,则系统会将发现结果附加到其中。 - (可选)启用添加引用可添加与 infoType 检测器匹配的字符串。引用可能比较敏感,因此默认情况下,敏感数据保护不会将引用包含在发现结果中。
将数据写入 BigQuery 表时,结算和配额用量将应用于包含目标表的项目。
如果您想创建去标识化的数据副本,请启用创建去标识化副本。如需了解详情,请参阅使用 Google Cloud 控制台对存储在 Cloud Storage 中的敏感数据进行去标识化处理。
您还可以将结果保存到 Pub/Sub、Security Command Center、Data Catalog 和 Cloud Monitoring。如需了解详情,请参阅添加操作。
(可选)对于第 4 步:时间安排,如需仅运行一次扫描,请将菜单设置为无。如需安排定期运行扫描,请点击创建一个触发器来定期运行作业。如需了解详情,请参阅时间安排。
点击创建。
敏感数据保护作业完成后,系统会将您重定向至作业详情页面,并向您发送一封通知电子邮件。您可以在作业详情页面上查看检查结果。
(可选)如果您选择将敏感数据保护发现结果发布到 BigQuery,请在作业详情页面上点击在 BigQuery 中查看发现结果,以便在 BigQuery 网页界面中打开相应表格。您可以随后对表格执行查询,并分析发现结果。如需详细了解如何在 BigQuery 中查询结果,请参阅在 BigQuery 中查询敏感数据保护发现结果。
协议
以下 JSON 示例可通过 POST 请求发送到指定的 Sensitive Data Protection REST 端点。此 JSON 示例演示了如何使用 DLP API 检查 Cloud Storage 存储分区。如需了解请求中包含的参数,请参阅本主题后面的配置存储空间检查。
您可以在 API Explorer 的 content.inspect
参考页面上快速尝试此操作:
请注意,如果请求成功(即使是在 APIs Explorer 中),就会创建一个新的扫描作业。如需了解如何控制扫描作业,请参阅本主题后面的检索检查结果。如需了解有关如何使用 JSON 将请求发送到 DLP API 的一般信息,请参阅 JSON 快速入门。
JSON 输入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET-NAME]/*"
},
"bytesLimitPerFile":"1073741824"
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z",
"endTime":"2018-01-05T04:45:04.240912125Z"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]"
}
}
}
}
]
}
}
JSON 输出:
{
"name":"projects/[PROJECT-ID]/dlpJobs/[JOB-ID]",
"type":"INSPECT_JOB",
"state":"PENDING",
"inspectDetails":{
"requestedOptions":{
"snapshotInspectTemplate":{
},
"jobConfig":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET-NAME]/*"
},
"bytesLimitPerFile":"1073741824"
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z",
"endTime":"2018-01-05T04:45:04.240912125Z"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"minLikelihood":"LIKELY",
"limits":{
},
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]",
"tableId":"[NEW-TABLE-ID]"
}
}
}
}
]
}
}
},
"createTime":"2018-11-07T18:01:14.225Z"
}
Java
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
检查 Datastore 种类
您可以使用 Google Cloud 控制台,通过 REST 或 RPC 请求调用 DLP API,或者采用多种语言以编程方式使用客户端库设置 Datastore 种类检查。
如需使用敏感数据保护设置 Datastore 种类的扫描作业,请执行以下操作:
控制台
如需使用敏感数据保护设置 Datastore 种类的扫描作业,请执行以下操作:
在 Google Cloud 控制台的“敏感数据保护”部分,前往创建作业或作业触发器页面。
输入敏感数据保护作业信息,然后点击继续以完成各个步骤:
对于第 1 步:选择输入数据,输入要扫描的项目、命名空间(可选)和种类的标识符。如需了解详情,请参阅选择输入数据。
(可选)对于第 2 步:配置检测,您可以配置要查找的数据类型,称为 infoType。您可以从预定义的 infoType 列表中进行选择,也可以选择已有的模板(如有)。如需了解详情,请参阅配置检测。
(可选)对于第 3 步:添加操作,确保通过电子邮件发送通知已启用。
启用保存到 BigQuery,以将敏感数据保护发现结果发布到 BigQuery 表。提供以下信息:
- 对于项目 ID,请输入用于存储结果的项目的 ID。
- 对于数据集 ID,请输入用于存储结果的数据集的名称。
- (可选)对于表格 ID,请输入用于存储结果的表格的名称。如果未指定表格 ID,系统会为新表格分配类似于
dlp_googleapis_[DATE]_1234567890
这样的默认名称。如果您指定的是现有的表格,则系统会将发现结果附加到其中。
将数据写入 BigQuery 表时,结算和配额用量将应用于包含目标表的项目。
如需详细了解列出的其他操作,请参阅添加操作。
(可选)对于第 4 步:时间安排,您可以选择指定时间范围或创建一个触发器来定期运行作业以配置时间范围或时间安排。如需了解详情,请参阅时间安排。
点击创建。
敏感数据保护作业完成后,系统会将您重定向至作业详情页面,并向您发送一封通知电子邮件。您可以在作业详情页面上查看检查结果。
(可选)如果您选择将敏感数据保护发现结果发布到 BigQuery,请在作业详情页面上点击在 BigQuery 中查看发现结果,以便在 BigQuery 网页界面中打开相应表格。您可以随后对表格执行查询,并分析发现结果。如需详细了解如何在 BigQuery 中查询结果,请参阅在 BigQuery 中查询敏感数据保护发现结果。
协议
以下 JSON 示例可通过 POST 请求发送到指定的 DLP API REST 端点。此 JSON 示例演示了如何使用 DLP API 检查 Datastore 种类。如需了解请求中包含的参数,请参阅本主题后面的配置存储空间检查。
您可以在 API Explorer 的 dlpJobs.create
参考页面上快速尝试此操作:
请注意,如果请求成功(即使是在 APIs Explorer 中),就会创建一个新的扫描作业。如需了解如何控制扫描作业,请参阅本主题后面的检索检查结果。如需了解有关如何使用 JSON 将请求发送到 DLP API 的一般信息,请参阅 JSON 快速入门。
JSON 输入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"datastoreOptions":{
"kind":{
"name":"Example-Kind"
},
"partitionId":{
"namespaceId":"[NAMESPACE-ID]",
"projectId":"[PROJECT-ID]"
}
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
}
}
}
}
]
}
}
Java
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
检查 BigQuery 表格
您可以通过 REST 请求使用敏感数据保护功能检查 BigQuery 表,也可以采用多种语言以编程方式使用客户端库检查。
如需使用敏感数据保护设置 BigQuery 表的扫描作业,请执行以下操作:
控制台
如需使用敏感数据保护设置 BigQuery 表的扫描作业,请执行以下操作:
在 Google Cloud 控制台的“敏感数据保护”部分,前往创建作业或作业触发器页面。
输入敏感数据保护作业信息,然后点击继续以完成各个步骤:
对于第 1 步:选择输入数据,请在名称字段中输入值,为作业命名。在位置中,从存储类型菜单中选择 BigQuery,然后输入要扫描的表格的信息。
系统已预先配置采样部分,以便针对您的数据运行示例扫描。如果您有大量数据,则可以调整限制行数的依据和最大行数字段以节省资源。如需了解详情,请参阅选择输入数据。
(可选)如果您希望能够将每个发现结果与包含它的行相关联,请设置标识字段。
输入用于唯一标识表格中每行的列的名称。必要时,可以使用点表示法指定嵌套字段。您可以根据需要添加任意数量的字段。
您还必须开启保存到 BigQuery 操作,才能将发现结果导出到 BigQuery。将发现结果导出到 BigQuery 时,每个发现结果都包含标识字段的相应值。如需了解详情,请参阅
identifyingFields
。(可选)对于第 2 步:配置检测,您可以配置要查找的数据类型,称为 infoType。您可以从预定义的 infoType 列表中进行选择,也可以选择已有的模板(如有)。如需了解详情,请参阅配置检测。
(可选)对于第 3 步:添加操作,确保通过电子邮件发送通知已启用。
启用保存到 BigQuery,以将敏感数据保护发现结果发布到 BigQuery 表。提供以下信息:
- 对于项目 ID,请输入用于存储结果的项目的 ID。
- 对于数据集 ID,请输入用于存储结果的数据集的名称。
- (可选)对于表格 ID,请输入用于存储结果的表格的名称。如果未指定表格 ID,系统会为新表格分配类似于
dlp_googleapis_[DATE]_1234567890
这样的默认名称。如果您指定的是现有的表格,则系统会将发现结果附加到其中。
将数据写入 BigQuery 表时,结算和配额用量将应用于包含目标表的项目。
您还可以将结果保存到 Pub/Sub、Security Command Center 和 Data Catalog。如需了解详情,请参阅添加操作。
(可选)对于第 4 步:时间安排,如需仅运行一次扫描,请将菜单设置为无。如需安排定期运行扫描,请点击创建一个触发器来定期运行作业。如需了解详情,请参阅时间安排。
点击创建。
敏感数据保护作业完成后,系统会将您重定向至作业详情页面,并向您发送一封通知电子邮件。您可以在作业详情页面上查看检查结果。
(可选)如果您选择将敏感数据保护发现结果发布到 BigQuery,请在作业详情页面上点击在 BigQuery 中查看发现结果,以便在 BigQuery 网页界面中打开相应表格。您可以随后对表格执行查询,并分析发现结果。如需详细了解如何在 BigQuery 中查询结果,请参阅在 BigQuery 中查询敏感数据保护发现结果。
协议
以下 JSON 示例可通过 POST 请求发送到指定的 DLP API REST 端点。此 JSON 示例演示了如何使用 DLP API 检查 BigQuery 表格。如需了解请求中包含的参数,请参阅本主题后面的配置存储空间检查。您可以在 API Explorer 的 dlpJobs.create
参考页面上快速尝试此操作:
请注意,如果请求成功(即使是在 APIs Explorer 中),就会创建一个新的扫描作业。如需了解如何控制扫描作业,请参阅本主题后面的检索检查结果。如需了解有关如何使用 JSON 将请求发送到 DLP API 的一般信息,请参阅 JSON 快速入门。
JSON 输入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"bigQueryOptions":{
"tableReference":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
},
"identifyingFields":[
{
"name":"id"
}
]
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z ",
"endTime":"2018-01-05T04:45:04.240912125Z "
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
},
"outputSchema": "BASIC_COLUMNS"
}
}
}
]
}
}
Java
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
配置存储空间检查
如需检查 Cloud Storage 位置、Datastore 种类或 BigQuery 表,请向 DLP API 的 projects.dlpJobs.create
方法发送请求,该请求至少包含要扫描的数据的位置和要扫描的内容。除了这些必需参数之外,您还可以指定扫描结果的写入位置、大小和可能性阈值等。请求成功时会创建 DlpJob
对象实例,检索检查结果中对此进行了讨论。
下面汇总了可用的配置选项:
InspectJobConfig
对象:包含检查作业的配置信息。请注意,InspectJobConfig
对象也被JobTriggers
对象用于安排DlpJob
的创建。该对象包含以下内容:StorageConfig
对象:必填。包含要扫描的存储区详情:StorageConfig
对象中必须包含以下任一对象,具体取决于要扫描的存储区的类型:CloudStorageOptions
对象:包含要扫描的 Cloud Storage 存储分区信息。DatastoreOptions
对象:包含要扫描的 Datastore 数据集信息。BigQueryOptions
对象:包含要扫描的 BigQuery 表格(以及标识字段,可选)信息。此对象还启用了结果采样。如需了解详情,请参阅下面的启用结果采样。TimespanConfig
对象:可选。指定要包含在扫描中的项目的时间范围。
InspectConfig
对象:必填。指定要扫描的内容,例如 infoType 和可能性值。InfoType
对象:必填。需要扫描的一个或多个 infoType 值。Likelihood
枚举:可选。设置后,敏感数据保护将只返回等于或大于此可能性阈值的结果。如果忽略此枚举,则默认值为POSSIBLE
。FindingLimits
对象:可选。设置后,您可以通过此对象指定返回的结果的数量限制。includeQuote
参数:可选。默认值为false
。如果设置为true
,每个结果都将包含来自触发该结果的数据的上下文引用。excludeInfoTypes
参数:可选。默认值为false
。如果设置为true
,扫描结果将排除结果的类型信息。CustomInfoType
对象:一个或多个用户创建的自定义 infoType。如需详细了解如何创建自定义 infoType,请参阅创建自定义 InfoType 检测器。
inspectTemplateName
字符串:可选。指定用于填充InspectConfig
对象中的默认值的模板。 如果您已指定InspectConfig
,则模板值会合并到其中。Action
对象:可选。完成作业时要执行的一个或多个操作。每个操作都按照各自的列出顺序执行。 您可以在此处指定写入结果的位置,还可以指定是否将通知发布到 Pub/Sub 主题。
jobId
:可选。Sensitive Data Protection 返回的作业的标识符。如果省略jobId
或它为空,则系统会为该作业创建 ID。如果指定,则会为作业分配此 ID 值。 作业 ID 必须是唯一的,可以包含大写和小写字母、数字和连字符;也就是说,它必须与正则表达式[a-zA-Z\\d-]+
匹配。
限制检查的内容量
如果您要扫描 BigQuery 表格或 Cloud Storage 存储分区,敏感数据保护提供了只扫描部分数据集的方法。此方法可以提供扫描结果的采样,而不会产生扫描整个数据集的潜在费用。
以下部分将介绍如何限制 Cloud Storage 扫描和 BigQuery 扫描的大小。
限制 Cloud Storage 扫描
您可以通过限制扫描的数据量来实现 Cloud Storage 中的采样。您可以指示 DLP API 仅扫描特定大小的文件、仅扫描特定文件类型、仅扫描输入文件集中占文件总数特定百分比的文件数量。为此,请在 CloudStorageOptions
中指定以下可选字段:
bytesLimitPerFile
:设置从文件中扫描的最大字节数。如果扫描的文件的大小大于此值,则忽略其余字节。设置此字段对某些文件类型没有影响。如需了解详情,请参阅对每个文件扫描的字节数的限制。fileTypes[]
:列出要包含在扫描中的FileTypes
。此字段可以设置为以下一种或多种枚举类型:filesLimitPercent
:将要扫描的文件数限制为占输入FileSet
的指定百分比。 在此字段中指定0
或100
表示没有限制。sampleMethod
:在不扫描所有字节的情况下,对字节进行采样的方法。仅当与bytesLimitPerFile
结合使用时,指定此值才有意义。如果未指定,则从顶部开始扫描。此字段可以设置为以下任一值:TOP
:从顶部开始扫描。RANDOM_START
:对于大于bytesLimitPerFile
中指定大小的每个文件,随机选择偏移以开始扫描。扫描的字节是连续的。
以下示例演示了如何使用 DLP API 扫描 Cloud Storage 存储桶中 90%的子集以查找人员姓名。从数据集中的随机位置开始扫描,并且仅包含 200 字节以下的文本文件。
C#
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
REST
JSON 输入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET-NAME]/*"
},
"bytesLimitPerFile":"200",
"fileTypes":[
"TEXT_FILE"
],
"filesLimitPercent":90,
"sampleMethod":"RANDOM_START"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"excludeInfoTypes":true,
"includeQuote":true,
"minLikelihood":"POSSIBLE"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"testingdlp"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
当 POST 请求的 JSON 输入发送到指定端点后,系统将创建一个敏感数据保护作业,API 会发送以下响应。
JSON 输出:
{
"name":"projects/[PROJECT-ID]/dlpJobs/[JOB-ID]",
"type":"INSPECT_JOB",
"state":"PENDING",
"inspectDetails":{
"requestedOptions":{
"snapshotInspectTemplate":{
},
"jobConfig":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET_NAME]/*"
},
"bytesLimitPerFile":"200",
"fileTypes":[
"TEXT_FILE"
],
"sampleMethod":"TOP",
"filesLimitPercent":90
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"minLikelihood":"POSSIBLE",
"limits":{
},
"includeQuote":true,
"excludeInfoTypes":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]",
"tableId":"[TABLE-ID]"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
},
"createTime":"2018-05-30T22:22:08.279Z"
}
限制 BigQuery 扫描
如需通过限制扫描的数据量来实现 BigQuery 中的采样,请在 BigQueryOptions
中指定以下可选字段:
rowsLimit
:计划扫描的最大行数。如果表的行数大于此值,则忽略其余行。如果未设置此字段,或者设置为 0,则扫描所有行。rowsLimitPercent
:计划扫描的行数所占的百分比上限(介于 0 到 100 之间)。系统会忽略其余行。将此值设置为 0 或 100 表示不设限。默认值为 0。只能指定rowsLimit
和rowsLimitPercent
中的一项。sampleMethod
:在不扫描所有行的情况下,对行进行采样的方法。如果未指定,则从顶部开始扫描。此字段可以设置为以下任一值:TOP
:从顶部开始扫描。RANDOM_START
:从随机选择的行开始扫描。
excludedFields
:用于唯一标识要排除的列的表字段。这有助于减少扫描的数据量并降低检查作业的总费用。includedFields
:用于唯一标识要扫描的表中的特定行的表字段。
另一个有助于限制扫描数据量(尤其是在扫描分区表时)的功能是 TimespanConfig
。
TimespanConfig
允许您通过提供开始时间和结束时间值来定义时间范围,以过滤掉 BigQuery 表格的一些行。然后,敏感数据保护功能将只扫描包含该时间范围内的时间戳的行。
以下示例演示了如何使用 DLP API 扫描 BigQuery 表中一个 1000 行的子集。从随机行开始扫描。
Go
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
REST
JSON 输入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"bigQueryOptions":{
"tableReference":{
"projectId":"bigquery-public-data",
"datasetId":"usa_names",
"tableId":"usa_1910_current"
},
"rowsLimit":"1000",
"sampleMethod":"RANDOM_START",
"includedFields":[
{
"name":"name"
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"FIRST_NAME"
}
],
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"testingdlp",
"tableId":"bqsample3"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
当 POST 请求的 JSON 输入发送到指定端点后,系统将创建一个敏感数据保护作业,API 会发送以下响应。
JSON 输出:
{
"name": "projects/[PROJECT-ID]/dlpJobs/[JOB-ID]",
"type": "INSPECT_JOB",
"state": "PENDING",
"inspectDetails": {
"requestedOptions": {
"snapshotInspectTemplate": {},
"jobConfig": {
"storageConfig": {
"bigQueryOptions": {
"tableReference": {
"projectId": "bigquery-public-data",
"datasetId": "usa_names",
"tableId": "usa_1910_current"
},
"rowsLimit": "1000",
"sampleMethod": "RANDOM_START",
"includedFields": [
{
"name": "name"
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "FIRST_NAME"
}
],
"limits": {},
"includeQuote": true
},
"actions": [
{
"saveFindings": {
"outputConfig": {
"table": {
"projectId": "[PROJECT-ID]",
"datasetId": "[DATASET-ID]",
"tableId": "bqsample"
},
"outputSchema": "BASIC_COLUMNS"
}
}
}
]
}
},
"result": {}
},
"createTime": "2022-11-04T18:53:48.350Z"
}
检查作业完成运行并且其结果已由 BigQuery 处理后,指定的 BigQuery 输出表格中会提供扫描结果。如需详细了解如何检索检查结果,请参阅下一部分。
检索检查结果
您可以使用 projects.dlpJobs.get
方法检索 DlpJob
的摘要。返回的 DlpJob
包含其 InspectDataSourceDetails
对象,该对象包含作业配置的摘要 (RequestedOptions
) 和作业结果的摘要 (Result
)。结果摘要包括以下项:
processedBytes
:已处理的总大小(以字节为单位)。totalEstimatedBytes
:估计要处理的剩余字节数。InfoTypeStatistics
对象:在检查作业期间找到的每个 infoType 的实例数的统计信息。
您可以通过多种方式获得完整的检查作业结果。根据您选择的 Action
,检查作业会:
- 保存到 BigQuery(
SaveFindings
对象)的指定表中。在查看或分析结果之前,首先使用projects.dlpJobs.get
方法(如下所述)确保作业已完成。请注意,您可以使用OutputSchema
对象指定用于存储结果的架构。 - 发布到 Pub/Sub 主题(
PublishToPubSub
对象)。该主题必须向运行DlpJob
的敏感数据保护服务账号授予发布权限以发送通知。 - 已发布到 Security Command Center。
- 已发布到 Data Catalog。
- 已发布到 Cloud Monitoring。
如需过滤敏感数据保护生成的大量数据,您可以使用内置的 BigQuery 工具运行丰富的 SQL 分析,也可以使用 Looker Studio 等工具生成报告。如需了解详情,请参阅分析和报告敏感数据保护发现。如需了解某些示例查询,请参阅在 BigQuery 中查询结果。
向 Sensitive Data Protection 发送存储区检查请求会创建并运行 DlpJob
对象实例作为响应。这些作业的运行可能需要几秒、几分钟或几小时,具体取决于您的数据大小和指定的配置。如果选择发布到 Pub/Sub 主题(通过在 Action
中指定 PublishToPubSub
),则会在作业状态更改时自动向具有指定名称的主题发送通知。Pub/Sub 主题的名称以 projects/[PROJECT-ID]/topics/[PUBSUB-TOPIC-NAME]
格式指定。
您可以使用以下管理方法完全控制自己创建的作业:
projects.dlpJobs.cancel
方法:停止当前正在进行的作业。服务器会尽可能取消作业,但不能保证一定成功。作业及其配置将保留,直到您将其删除。projects.dlpJobs.delete
方法:删除作业及其配置。projects.dlpJobs.get
方法:检索单个作业并返回其状态、配置和摘要结果(作业完成后)。projects.dlpJobs.list
方法:检索所有作业的列表。此方法还包含过滤结果的功能。
后续步骤
- 如需详细了解如何创建存储空间检查作业,请参阅创建和安排敏感数据保护检查作业。
- 详细了解如何创建存储中数据的去标识化副本。
- 如需详细了解在检查 Cloud Storage 存储分区时支持的文件类型,请参阅支持的文件类型。