Sensitive Data Protection 可帮助您查找、了解和管理基础架构中存在的敏感数据。使用敏感数据保护功能扫描内容中的敏感数据后,您可以通过多种方式处理该数据智能。本主题介绍如何利用其他 Google Cloud 功能(如 BigQuery、Cloud SQL 和 Looker Studio)执行以下操作:
- 直接在 BigQuery 中存储敏感数据保护扫描结果。
- 生成有关基础架构中敏感数据所在位置的报告。
- 运行丰富的 SQL 分析,以了解敏感数据的存储位置和类型。
- 根据一组结果或结果组合自动触发提醒或操作。
本主题还包含一个完整示例,介绍如何结合使用敏感数据保护和其他 Google Cloud 功能来完成上述所有操作。
扫描存储分区
首先,对数据进行扫描。下面是关于如何使用敏感数据保护功能扫描存储代码库的基本信息。如需有关如何扫描存储区的完整说明(包括客户端库的使用),请参阅检查存储空间和数据库中是否存在敏感数据。
要在 Google Cloud 存储区上运行扫描操作,请创建一个包含以下配置对象的 JSON 对象:
InspectJobConfig
:配置敏感数据保护扫描作业,其中包含:StorageConfig
:要扫描的存储区。InspectConfig
:扫描的方式和内容。您还可以使用检查模板来定义检查配置。Action
:在作业完成时执行的任务,包括将结果保存到 BigQuery 表或向 Pub/Sub 发布通知。
在此示例中,您要扫描 Cloud Storage 存储分区中的人名、电话号码、美国社会保障号和电子邮件地址。然后,您要将结果发送到专用于存储敏感数据保护输出的 BigQuery 表中。下面的 JSON 可以保存到文件中,也可以直接发送到敏感数据保护资源 DlpJob
的 create
方法。
JSON 输入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs
{
"inspectJob":{
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
},
{
"name":"PHONE_NUMBER"
},
{
"name":"US_SOCIAL_SECURITY_NUMBER"
},
{
"name":"EMAIL_ADDRESS"
}
],
"includeQuote":true
},
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET_NAME]/**"
}
}
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT_ID]",
"datasetId":"[DATASET_ID]",
"tableId":"[TABLE_ID]"
}
}
}
}
]
}
}
通过在 Cloud Storage 存储桶地址 (gs://[BUCKET_NAME]/**
) 后面指定两个星号 (**
),您可以指示扫描作业以递归方式进行扫描。放置一个星号 (*
*) 将指示作业仅扫描指定的目录层级(不扫描更深入的层级)。
输出将保存到给定数据集和项目内的指定表中。指定了给定表 ID 的后续作业会将结果附加到同一表中。如果要指示敏感数据保护在每次运行扫描时都创建一个新表,您也可以省略 "tableId"
键。
通过指定的网址在请求中将此 JSON 发送到 projects.dlpJobs.create
方法后,您会收到以下响应:
JSON 输出:
{
"name":"projects/[PROJECT_ID]/dlpJobs/[JOB_ID]",
"type":"INSPECT_JOB",
"state":"PENDING",
"inspectDetails":{
"requestedOptions":{
"snapshotInspectTemplate":{
},
"jobConfig":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET_NAME]/**"
}
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
},
{
"name":"PHONE_NUMBER"
},
{
"name":"US_SOCIAL_SECURITY_NUMBER"
},
{
"name":"EMAIL_ADDRESS"
}
],
"minLikelihood":"POSSIBLE",
"limits":{
},
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT_ID]",
"datasetId":"[DATASET_ID]",
"tableId":"[TABLE_ID]"
}
}
}
}
]
}
}
},
"createTime":"2018-11-19T21:09:07.926Z"
}
作业完成后会将结果保存到给定的 BigQuery 表中。
要获取作业的状态,请调用 projects.dlpJobs.get
方法,或者发送 GET 请求到以下网址,注意要将 [PROJECT_ID]
替换为项目 ID,将 [JOB_ID]
替换为 Cloud Data Loss Prevention API 针对作业创建请求发送的响应中提供的作业标识符(作业标识符将以“i-”开头):
GET https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs/[JOB_ID]
针对您刚刚创建的作业,此请求会返回以下 JSON。请注意,系统会在检查详细信息的后面返回扫描结果摘要。如果扫描尚未完成,其 "state"
键将指定 "RUNNING"
。
JSON 输出:
{
"name":"projects/[PROJECT_ID]/dlpJobs/[JOB_ID]",
"type":"INSPECT_JOB",
"state":"DONE",
"inspectDetails":{
"requestedOptions":{
"snapshotInspectTemplate":{
},
"jobConfig":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET_NAME]/**"
}
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
},
{
"name":"PHONE_NUMBER"
},
{
"name":"US_SOCIAL_SECURITY_NUMBER"
},
{
"name":"EMAIL_ADDRESS"
}
],
"minLikelihood":"POSSIBLE",
"limits":{
},
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT_ID]",
"datasetId":"[DATASET_ID]",
"tableId":"[TABLE_ID]"
}
}
}
}
]
}
},
"result":{
"processedBytes":"536734051",
"totalEstimatedBytes":"536734051",
"infoTypeStats":[
{
"infoType":{
"name":"PERSON_NAME"
},
"count":"269679"
},
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"count":"256"
},
{
"infoType":{
"name":"PHONE_NUMBER"
},
"count":"7"
}
]
}
},
"createTime":"2018-11-19T21:09:07.926Z",
"startTime":"2018-11-19T21:10:20.660Z",
"endTime":"2018-11-19T22:07:39.725Z"
}
在 BigQuery 中运行分析
现在您新建了一个包含敏感数据保护扫描结果的 BigQuery 表,接下来该对此表运行分析了。
在 Google Cloud 控制台中,点击左侧“大数据”下的 BigQuery。 打开项目和数据集,然后找到创建的新表。
您可以在此表上运行 SQL 查询,以详细了解 Sensitive Data Protection 在您的数据存储桶中找到的内容。例如,运行以下命令,按 infoType 对所有扫描结果计数,将占位符替换为相应的实际值:
SELECT
info_type.name,
COUNT(*) AS iCount
FROM
`[PROJECT_ID].[DATASET_ID].[TABLE_ID]`
GROUP BY
info_type.name
此查询会生成该存储分区的结果摘要,如下所示:
在 Looker Studio 中创建报告
借助 Looker Studio,您可以创建能基于 BigQuery 表的自定义报告。在本部分中,您将在 Looker Studio 中创建一个基于存储在 BigQuery 中的敏感数据保护结果的简单表格报告。
- 打开 Looker 数据洞察并启动新的报告。
- 点击创建新数据源。
- 从“连接器”列表中,点击 BigQuery。如有必要,通过点击授权来授权 Looker Studio 连接到 BigQuery 项目。
- 现在,选择要搜索的表格,然后点击我的项目或共享的项目,具体取决于项目所在位置。在页面上的列表中查找项目、数据集和表。
- 点击连接以运行报告。
- 点击添加到报告 (Add to report)。
现在,您将创建一个表,它会显示每个 infoType 的频率。选择字段 info_type.name
作为维度。生成的表如下所示:
后续步骤
这只是使用 Looker Studio 和 Sensitive Data Protection 中的输出来直观呈现内容的开始。您可以添加其他图表元素和细目过滤器来创建信息中心和报告。如需详细了解 Looker 数据洞察提供的功能,请参阅 Looker 数据洞察产品概览。