GSP107

Cloud Data Loss Prevention (DLP) API 目前已纳入 Sensitive Data Protection 体系,它能让您以程序化方式访问强大的检测引擎,检测非结构化数据流中的个人身份信息 (PII) 和其他隐私敏感数据。
DLP API 支持对信用卡号、姓名、社会保障号、护照号码和电话号码等敏感数据元素进行快速分类并可实现扩容,同时支持可选脱敏处理。该 API 支持文本和图片,只需将数据发送至 API,或指定存储在 Cloud Storage、BigQuery 和 Cloud Datastore 实例中的数据即可。
在本实验中,您需创建一个待分析的 JSON 文件,将其发送至 DLP API,检查数据字符串中是否包含敏感信息,然后隐去所发现的所有敏感信息。
学习内容
在本实验中,您将使用 DLP API 执行以下操作:
- 检查字符串中是否包含敏感信息
- 隐去文本内容中的敏感数据
设置和要求
点击“开始实验”按钮前的注意事项
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
- 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。
如何开始实验并登录 Google Cloud 控制台
-
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
- “打开 Google Cloud 控制台”按钮
- 剩余时间
- 进行该实验时必须使用的临时凭据
- 帮助您逐步完成本实验所需的其他信息(如果需要)
-
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
注意:如果您看见选择账号对话框,请点击使用其他账号。
-
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
{{{user_0.username | "<用户名>"}}}
您也可以在“实验详细信息”窗格中找到“用户名”。
-
点击下一步。
-
复制下面的密码,然后将其粘贴到欢迎对话框中。
{{{user_0.password | "<密码>"}}}
您也可以在“实验详细信息”窗格中找到“密码”。
-
点击下一步。
重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。
注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
-
继续在后续页面中点击以完成相应操作:
- 接受条款及条件。
- 由于这是临时账号,请勿添加账号恢复选项或双重验证。
- 请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。
激活 Cloud Shell
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
-
点击 Google Cloud 控制台顶部的激活 Cloud Shell
。
-
在弹出的窗口中执行以下操作:
- 继续完成 Cloud Shell 信息窗口中的设置。
- 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。
如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。
- (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
- 点击授权。
输出:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (可选)您可以通过此命令列出项目 ID:
gcloud config list project
输出:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南。
为项目 ID 设置环境变量
- 在 Cloud Shell 中运行以下命令,为项目 ID 设置环境变量:
export PROJECT_ID=$DEVSHELL_PROJECT_ID
任务 1. 检查字符串中是否包含敏感信息
本节介绍了如何通过 projects.content.inspect REST 方法,调用该服务对示例文本进行扫描。您创建的 JSON 文件包含一个 InspectConfig 对象和一个 ContentItem 对象。
- 您可使用常用编辑器(如
nano、vim 等)或 Cloud Shell,创建一个包含以下文本的 JSON 请求文件,并将其保存为 inspect-request.json:
{
"item":{
"value":"My phone number is (206) 555-0123."
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
},
{
"name":"US_TOLLFREE_PHONE_NUMBER"
}
],
"minLikelihood":"POSSIBLE",
"limits":{
"maxFindingsPerItem":0
},
"includeQuote":true
}
}
- 通过您的账号获取授权令牌:
gcloud auth print-access-token
系统会返回一段超长字符串。下一步操作需要用到该令牌。
如果您收到错误提示,指出未使用服务账号,请等待几分钟后重新运行该命令。
- 使用
curl 发送 content:inspect 请求,并将 ACCESS_TOKEN 替换为上一步中返回的字符串:
curl -s \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
https://dlp.googleapis.com/v2/projects/$PROJECT_ID/content:inspect \
-d @inspect-request.json -o inspect-output.txt
注意:以下为相关情况说明
如需向 curl 传递文件名,您可以使用 -d 选项(表示“数据”)并在文件名前面加上 @ 符号。此文件应位于您执行 curl 命令的目录下。
该操作会将 curl 响应结果保存在 inspect-output.txt 文件中。使用以下命令查看输出结果:
cat inspect-output.txt
您会看到类似如下的响应结果:
{
"result": {
"findings": [
{
"quote": "(206) 555-0123",
"infoType": {
"name": "PHONE_NUMBER"
},
"likelihood": "LIKELY",
"location": {
"byteRange": {
"start": "19",
"end": "33"
},
"codepointRange": {
"start": "19",
"end": "33"
}
},
"createTime": "2018-07-03T02:20:26.043Z"
}
]
}
}
将输出结果上传到 Cloud Storage
运行以下命令,将 curl 响应结果上传到 Cloud Storage,以进行活动跟踪验证:
gsutil cp inspect-output.txt gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}}
检查字符串是否包含敏感信息
任务 2. 隐去文本内容中的敏感数据
DLP API 可自动隐去文本文件中的敏感数据,而非返回发现结果列表。
尝试发送包含 deidentifyConfig 对象的 API JSON 文件,可以隐去输出结果中的敏感信息。
- 创建一个包含以下内容的新 JSON 文件 (
new-inspect-file.json):
{
"item": {
"value":"My email is test@gmail.com",
},
"deidentifyConfig": {
"infoTypeTransformations":{
"transformations": [
{
"primitiveTransformation": {
"replaceWithInfoTypeConfig": {}
}
}
]
}
},
"inspectConfig": {
"infoTypes": {
"name": "EMAIL_ADDRESS"
}
}
}
- 使用
curl 发送 content:deidentify 请求(ACCESS_TOKEN 已替换为用于输出访问令牌的命令):
curl -s \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://dlp.googleapis.com/v2/projects/$PROJECT_ID/content:deidentify \
-d @new-inspect-file.json -o redact-output.txt
该操作会将 curl 响应结果保存在 redact-output.txt 文件中。使用以下命令查看输出结果:
cat redact-output.txt
您会看到类似如下的响应结果:
{
"item": {
"value": "My email is [EMAIL_ADDRESS]"
},
"overview": {
"transformedBytes": "14",
"transformationSummaries": [
{
"infoType": {
"name": "EMAIL_ADDRESS"
},
"transformation": {
"replaceWithInfoTypeConfig": {}
},
"results": [
{
"count": "1",
"code": "SUCCESS"
}
],
"transformedBytes": "14"
}
]
}
}
您已向 DLP API 发送了第一个请求,并隐去了输出结果中的敏感信息!
将输出结果上传到 Cloud Storage
运行以下命令,将 curl 响应结果上传到 Cloud Storage,以进行活动跟踪验证:
gsutil cp redact-output.txt gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}}
隐去文本内容中的敏感数据
恭喜!
您已使用 Cloud Data Loss Prevention (DLP) API 来检查文本内容中的敏感数据,然后隐去了这些敏感数据。
后续步骤/了解详情
本实验是 Qwik Starts 系列实验的其中一项。通过这些实验,您可以一窥 Google Cloud 的诸多功能。请查看实验目录中的“Qwik Starts”列表,找到您要参与的下一项实验!
Google Cloud 培训和认证
…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。
本手册的最后更新日期:2024 年 11 月 22 日
本实验的最后测试日期:2024 年 11 月 22 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。