实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

使用 Sensitive Data Protection 隐去关键数据

实验 10 分钟 universal_currency_alt 1 个点数 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GSP864

Google Cloud 自学实验的徽标

概览

Cloud Data Loss Prevention (DLP) API 是 Sensitive Data Protection 的一部分。Sensitive Data Protection 是一项全托管式服务,旨在帮助发现、分类和保护敏感信息。

您可以使用 DLP API 以多种方式对数据进行分类,包括数据类型、敏感度级别和类别。

DLP API 可通过多种方式保护敏感数据,包括:

  • 隐去:从文档或文件中隐去敏感数据。
  • 遮盖:使用占位符(例如 *)遮盖敏感数据。
  • 标记化:用唯一标识符替换敏感数据。
  • 加密:加密敏感数据。

在本实验中,您将了解 DLP API 的基本功能,并尝试使用多种方法通过该 API 来保护数据。

学习内容

在本实验中,您将使用 DLP API 完成以下任务:

  • 检查字符串和文件,找出匹配的信息类型
  • 了解去标识化方法,并对数据进行去标识化处理
  • 隐去字符串和图片中的信息类型

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 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 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

设置区域

为项目设置区域:

gcloud config set compute/region {{{project_0.default_region | Region}}}

任务 1. 克隆代码库并启用 API

  1. 在 Cloud Shell 中,运行以下命令来下载 Cloud Data Loss Prevention Node.js 客户端代码库:
git clone https://github.com/googleapis/synthtool
  1. 下载项目代码后,切换到 samples 目录并安装所需的 Node.js 软件包:
cd synthtool/tests/fixtures/nodejs-dlp/samples/ && npm install 注意:忽略任何警告消息。
  1. 使用以下 gcloud 命令设置项目,确保您使用的是正确的项目:
export PROJECT_ID={{{project_0.project_id | "filled in at lab start"}}} gcloud config set project $PROJECT_ID

启用 API

以下是启用项目所需的 API:

  • DLP API — 提供用于检测、风险分析和去标识化文本、图像及 Google Cloud 存储库中对隐私信息敏感片段的方法。
  • Cloud Key Management Service (KMS) API — Google Cloud KMS 允许管理加密密钥并使用这些密钥执行加密操作。
  1. 使用以下 gcloud 命令启用所需的 API:
gcloud services enable dlp.googleapis.com cloudkms.googleapis.com \ --project $PROJECT_ID

点击检查我的进度以验证是否完成了以下目标: 启用 API

任务 2. 检查字符串和文件

在上一步下载的项目中,目录“samples”包含多个 JavaScript 文件,这些文件使用了 DLP API 的不同功能。文件 inspectString.js 用于检查提供的字符串中是否存在敏感信息类型。

  1. 提供字符串选项以及一个包含潜在敏感信息的示例字符串:
node inspectString.js $PROJECT_ID "My email address is jenny@somedomain.com and you can call me at 555-867-5309" > inspected-string.txt

输出会显示每个匹配的信息类型的发现结果,包括:

  • InfoType:为该字符串片段检测到的信息类型。查看完整的信息类型列表。默认情况下,inspectString.js 仅检查以下信息类型:CREDIT_CARD_NUMBERPHONE_NUMBERPERSON_NAMEEMAIL_ADDRESS

  • Likelihood:根据匹配项的可能性进行分类。Likelihood 取值范围为 VERY_UNLIKELYVERY_LIKELY

使用以下命令检查输出:

cat inspected-string.txt

上述请求的发现结果如下:

Findings: Info type: PERSON_NAME Likelihood: POSSIBLE Info type: EMAIL_ADDRESS Likelihood: LIKELY Info type: PHONE_NUMBER Likelihood: VERY_LIKELY
  1. 同样,您也可以检查文件中的信息类型。运行以下命令,查看示例文件 accounts.txt
cat resources/accounts.txt

该文件包含以下文本:

My credit card number is 1234 5678 9012 3456, and my CVV is 789.
  1. 使用 inspectFile.js 文件检查提供的文件中是否存在敏感信息类型:
node inspectFile.js $PROJECT_ID resources/accounts.txt > inspected-file.txt

使用以下命令检查输出:

cat inspected-file.txt

结果:

Findings: Info type: CREDIT_CARD_NUMBER Likelihood: VERY_LIKELY

下面是使用 API 检查字符串输入的异步函数:

async function inspectString( ProjectId, string, minLikelihood, maxFindings, infoTypes, customInfoTypes, includeQuote ) { ... }

为上述参数提供的参数值用于构建请求对象。然后,该请求被传递给 inspectContent 函数,以获取生成输出的响应:

// Construct item to inspect const item = {value: string}; // Construct request const request = { parent: `projects/${projectId}/locations/global`, inspectConfig: { infoTypes: infoTypes, customInfoTypes: customInfoTypes, minLikelihood: minLikelihood, includeQuote: includeQuote, limits: { maxFindingsPerRequest: maxFindings, }, }, item: item, }; // Run request const [response] = await dlp.inspectContent(request);

将输出上传到 Cloud Storage

运行以下命令,将响应上传到 Cloud Storage 进行活动跟踪验证:

gsutil cp inspected-string.txt gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}} gsutil cp inspected-file.txt gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}}

点击检查我的进度以验证是否完成了以下目标: 检查字符串和文件

任务 3. 去标识化

除了检查和检测敏感数据之外,您还可以使用 Sensitive Data Protection 通过 DLP API 执行去标识化操作。去标识化是从数据中移除标识信息的过程。该 API 会按信息类型检测敏感数据,然后使用去标识化转换对数据进行遮盖、删除或以其他方式隐匿。

  1. 运行以下命令,使用 deidentifyWithMask.js 以遮盖方式进行去标识化:
node deidentifyWithMask.js $PROJECT_ID "My order number is F12312399. Email me at anthony@somedomain.com" > de-identify-output.txt

使用以下命令检查输出:

cat de-identify-output.txt

遮盖时,API 会将匹配的信息类型字符替换为其他字符,默认为“*”。输出示例:

My order number is F12312399. Email me at *****************************

请注意,字符串中的邮箱被混淆了,而随机订单号依然保持完整。(自定义信息类型可用,但不在本实验范围内)。

查看使用 DLP API 以遮盖方式去标识化的函数。同样,这些参数用于构建请求对象。这次请求被传递给 deidentifyContent 函数:

async function deidentifyWithMask() { const request = { parent: `projects/${projectId}/locations/global`, deidentifyConfig: { infoTypeTransformations: { transformations: [ { primitiveTransformation: { characterMaskConfig: { maskingCharacter: maskingCharacter, numberToMask: numberToMask, }, }, }, ], }, }, item: item, }; // Run deidentification request const [response] = await dlp.deidentifyContent(request);

将输出上传到 Cloud Storage

运行以下命令,将响应上传到 Cloud Storage 进行活动跟踪验证:

gsutil cp de-identify-output.txt gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}}

点击检查我的进度以验证是否完成了以下目标: 去标识化

任务 4. 隐去字符串和图片中的敏感信息

混淆敏感信息的另一种方法是隐去。隐去会将匹配项替换为与之匹配的 infoType。

  1. 使用 redactText.js 从示例输入中隐去文本:
node redactText.js $PROJECT_ID "Please refund the purchase to my credit card 4012888888881881" CREDIT_CARD_NUMBER > redacted-string.txt

使用以下命令检查输出:

cat redacted-string.txt

输出将示例信用卡号替换为信息类型 CREDIT_CARD_NUMBER

Please refund the purchase on my credit card [CREDIT_CARD_NUMBER]

如果您想隐藏敏感信息,但同时仍能识别被移除的信息类型,那么该方法会很有用。DLP API 同样可以隐去包含文本的图片中的信息。查看示例图片(位于 samples/resources 目录):

包含敏感信息的图片

  1. 如需从上面的图片中隐去电话号码,请运行以下命令:
node redactImage.js $PROJECT_ID resources/test.png "" PHONE_NUMBER ./redacted-phone.png

基于命令,系统会生成一张名为 redacted-phone.png 的新图片,其中请求隐去的信息已被涂黑。如需验证,请使用 Cloud Shell 代码编辑器打开 samples/redacted-phone.png 文件:

注意:在 Cloud Shell 代码编辑器中,使用左侧的“资源管理器”窗格,前往 synthtool > tests > fixtures > nodejs-dlp > samples > redacted-phone.png

信息已隐去的图片

  1. 再次尝试从图片中隐去邮箱:
node redactImage.js $PROJECT_ID resources/test.png "" EMAIL_ADDRESS ./redacted-email.png

基于命令,系统会生成一张名为 redacted-email.png 的新图片,其中请求隐去的信息已被涂黑。如需验证,请在 Cloud Shell 代码编辑器中打开 samples/redacted-email.png 文件:

信息已隐去的图片

以下函数用于隐去字符串中的敏感信息:

async function redactText( callingProjectId, string, minLikelihood, infoTypes ) { ...}

以下请求被传递给 deidentifyContent 函数:

const request = { parent: `projects/${projectId}/locations/global`, item: { value: string, }, deidentifyConfig: { infoTypeTransformations: { transformations: [replaceWithInfoTypeTransformation], }, }, inspectConfig: { minLikelihood: minLikelihood, infoTypes: infoTypes, }, }; const [response] = await dlp.deidentifyContent(request);

同样,以下函数用于隐去图片中的敏感信息:

async function redactImage( callingProjectId, filepath, minLikelihood, infoTypes, outputPath ) { ...}

以下请求被传递给 redactImage 函数:

// Construct image redaction request const request = { parent: `projects/${projectId}/locations/global`, byteItem: { type: fileTypeConstant, data: fileBytes, }, inspectConfig: { minLikelihood: minLikelihood, infoTypes: infoTypes, }, imageRedactionConfigs: imageRedactionConfigs, };

将输出上传到 Cloud Storage

运行以下命令,将响应上传到 Cloud Storage 进行活动跟踪验证:

gsutil cp redacted-string.txt gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}} gsutil cp redacted-phone.png gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}} gsutil cp redacted-email.png gs://{{{project_0.startup_script.gcs_bucket_name|bucket_name_filled_after_lab_start}}}

点击检查我的进度以验证是否完成了以下目标: 隐去字符串和图片中的敏感信息

恭喜!

Cloud Data Loss Prevention(DLP)API 是一款功能强大的工具,提供了一个用于敏感数据检查、分类和去标识化的强大平台。您使用 DLP API 检查了字符串和文件中的多种信息类型,并从字符串和图片中隐去了敏感数据。

后续步骤/了解详情

请务必参阅以下文档,进一步练习使用 DLP API:

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2025 年 4 月 22 日

上次测试实验的时间:2025 年 4 月 22 日

版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。