Cloud Data Loss Prevention 可以隐去图片中的敏感文本。借助 infoType 检测器和 Cloud Vision,Cloud DLP 可检查图片中的文本并检测文本中的敏感数据,然后返回已将任何匹配的敏感数据用不透明矩形遮盖的图片。
例如,请参考下面这两张“遮盖前”和“遮盖后”的图片。原始图片是通过扫描纸质文档生成的典型图片文件示例。在此示例中,Cloud DLP 已配置为根据不同的内容,使用不同颜色的矩形遮盖美国社会保障号、电子邮件地址和电话号码。

- 图片遮盖前的扫描图片
- 图片遮盖后的扫描图片
限制和注意事项
隐去图片中的内容时,请考虑以下几点。
支持的文件类型
Cloud DLP 可以隐去许多图片类型(包括 JPEG、BMP 和 PNG)中的敏感数据。如需了解详情,请参阅支持的文件类型。
SVG、PDF、XLSX、PPTX 或 DOCX 文件不支持内容隐去。
发现结果限制
遮盖图片中的数据时,发现结果限制不适用。它们可能会导致意外或可能不一致的结果,其中只有一些数据会被隐去。如果您在请求中包含 FindingLimits
,Cloud DLP 会生成错误。
准备工作
- 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 DLP API。
-
创建服务帐号:
-
在 Google Cloud 控制台中,转到创建服务帐号页面。
转到“创建服务帐号” - 选择您的项目。
-
在服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。
在服务帐号说明字段中,输入说明。例如,
Service account for quickstart
。 - 点击创建并继续。
-
如需提供对项目的访问权限,请向服务帐号授予以下角色:Project > Owner。
在选择角色列表中,选择一个角色。
如需添加其他角色,请点击
添加其他角色,然后添加其他各个角色。 - 点击继续。
-
点击完成以完成服务帐号的创建过程。
不要关闭浏览器窗口。您将在下一步骤中用到它。
-
-
创建服务帐号密钥:
- 在 Google Cloud 控制台中,点击您创建的服务帐号的电子邮件地址。
- 点击密钥。
- 点击添加密钥,然后点击创建新密钥。
- 点击创建。JSON 密钥文件将下载到您的计算机上。
- 点击关闭。
-
将环境变量
GOOGLE_APPLICATION_CREDENTIALS
设置为包含您的服务帐号密钥的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。 - 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
-
启用 DLP API。
-
创建服务帐号:
-
在 Google Cloud 控制台中,转到创建服务帐号页面。
转到“创建服务帐号” - 选择您的项目。
-
在服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。
在服务帐号说明字段中,输入说明。例如,
Service account for quickstart
。 - 点击创建并继续。
-
如需提供对项目的访问权限,请向服务帐号授予以下角色:Project > Owner。
在选择角色列表中,选择一个角色。
如需添加其他角色,请点击
添加其他角色,然后添加其他各个角色。 - 点击继续。
-
点击完成以完成服务帐号的创建过程。
不要关闭浏览器窗口。您将在下一步骤中用到它。
-
-
创建服务帐号密钥:
- 在 Google Cloud 控制台中,点击您创建的服务帐号的电子邮件地址。
- 点击密钥。
- 点击添加密钥,然后点击创建新密钥。
- 点击创建。JSON 密钥文件将下载到您的计算机上。
- 点击关闭。
-
将环境变量
GOOGLE_APPLICATION_CREDENTIALS
设置为包含您的服务帐号密钥的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。 - 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
遮盖图片中的所有默认 infoType
如需遮盖图片中的敏感数据,请向 DLP API 的 image.redact
方法提交图片。除非您指定要搜索的特定信息类型 (infoType),否则 Cloud DLP 会搜索最常见的 infoType。
如需遮盖图片中的默认 infoType,请执行以下操作:
将图片编码为 base64 字符串。
如果您计划使用某个 Cloud DLP 客户端库执行此任务,请跳过此步骤。
向
image.redact
方法提交请求。如果要隐去默认 infoType,则请求只需要使用 base64 编码的图片。
例如,请参考下面的图片:这是一个通过扫描纸质文档生成的典型图片文件示例。

如需遮盖图片中的默认 infoType,请向 DLP API 的 image.redact
方法发送以下请求:
协议
{ "byteItem": { "data": "[BASE64-ENCODED-IMAGE]", "type": "IMAGE_JPEG" } }
Cloud DLP 返回以下内容:
{ "redactedImage": "[BASE64-ENCODED-IMAGE]" }
对 base64 编码的图片进行解码。
Java
如需了解如何安装和使用 Cloud DLP 客户端库,请参阅 Cloud DLP 客户端库。
生成的图片如下所示:

请注意,除了遮盖手写的社会保障号、电子邮件地址和电话号码之外,Cloud DLP 还隐去了年份。下一部分演示了如何仅遮盖某些 infoType。
遮盖图片中的特定 infoType
如果您只需要遮盖图片中的某些敏感数据,请指定这些数据相应的内置 infoType。
如需遮盖图片中的特定 infoType,请向 DLP API 的 image.redact
方法提交请求。该请求必须包含以下内容:* 图片。* 一个或多个 infoType 检测器。
请参考上一部分中的原始图片。如要仅遮盖美国社会保障号、电子邮件地址和电话号码,请将以下 JSON 发送到 DLP API 的 image.redact
方法:
协议
{ "byteItem": { "data": "[BASE64-ENCODED-IMAGE]", "type": "IMAGE_JPEG" }, "imageRedactionConfigs": [ { "infoType": { "name": "US_SOCIAL_SECURITY_NUMBER" } }, { "infoType": { "name": "EMAIL_ADDRESS" } }, { "infoType": { "name": "PHONE_NUMBER" } } ] }
Cloud DLP 返回以下内容:
{ "redactedImage": "[BASE64-ENCODED-IMAGE]" }
对 base64 编码的图片进行解码。
Java
如需了解如何安装和使用 Cloud DLP 客户端库,请参阅 Cloud DLP 客户端库。
C#
如需了解如何安装和使用 Cloud DLP 客户端库,请参阅 Cloud DLP 客户端库。
生成的图片如下所示:

如果您想一目了然地查看被遮盖的内容,可以为遮盖的 infoType 信息添加颜色。请参阅以下部分了解详情。
为图片中遮盖的 infoType 添加颜色
要为遮盖的 infoType 信息添加颜色,请将 infoType 检测器与 RGB 颜色空间值配对。
如需为图片中遮盖的 infoType 添加颜色,请向 DLP API 的 image.redact
方法提交请求。该请求必须包含以下内容:* 图片。* 一个或多个 infoType 检测器,使用 RGB 颜色空间值为每个检测器分配一种颜色。
请参考第一部分中的原始图片。要使用紫色框遮盖美国社会保障号、使用绿色框遮盖电子邮件地址以及使用橙色框遮盖电话号码,请将以下 JSON 发送到 DLP API 的 image.redact
方法:
协议
{ "byteItem": { "data": "[BASE64-ENCODED-IMAGE]", "type": "IMAGE_JPEG" }, "imageRedactionConfigs": [ { "infoType": { "name": "US_SOCIAL_SECURITY_NUMBER" }, "redactionColor": { "red": 0.3, "green": 0.1, "blue": 0.6 } }, { "infoType": { "name": "EMAIL_ADDRESS" }, "redactionColor": { "red": 0.5, "blue": 0.5, "green": 1 } }, { "infoType": { "name": "PHONE_NUMBER" }, "redactionColor": { "red": 1, "blue": 0, "green": 0.6 } } ] }
Cloud DLP 返回以下内容:
{ "redactedImage": "[BASE64-ENCODED-IMAGE]" }
对 base64 编码的图片进行解码。
Java
如需了解如何安装和使用 Cloud DLP 客户端库,请参阅 Cloud DLP 客户端库。
生成的图片如下所示:

遮盖图片中的所有文本
Cloud DLP 还包含一个选项,可以遮盖图片中检测到的所有文本。
如需遮盖图片中的所有文本,请向 DLP API 的 image.redact
方法提交请求。该请求必须包含以下内容:* 图片。* 将 redactAllText
选项设置为 true
。
请参考第一部分中的原始图片。要遮盖所有文本,请将以下 JSON 发送到 DLP API 的 image.redact
方法:
协议
{ "byteItem": { "data": "[BASE64-ENCODED-IMAGE]", "type": "IMAGE_JPEG" }, "imageRedactionConfigs": [ { "redactAllText": true } ] }
Cloud DLP 返回以下内容:
{ "redactedImage": "[BASE64-ENCODED-IMAGE]" }
对 base64 编码的图片进行解码。
Python
如需了解如何安装和使用 Cloud DLP 客户端库,请参阅 Cloud DLP 客户端库。
Java
如需了解如何安装和使用 Cloud DLP 客户端库,请参阅 Cloud DLP 客户端库。
此 API 会以相同格式返回您所提供的图片,但会遮盖根据您的标准识别为包含敏感信息的所有文本。
生成的图片如下所示:

代码示例
以下是多种语言的示例代码,演示了如何使用 Cloud DLP 遮盖图片中的敏感文本。
Node.js
如需了解如何安装和使用 Cloud DLP 客户端库,请参阅 Cloud DLP 客户端库。
Python
如需了解如何安装和使用 Cloud DLP 客户端库,请参阅 Cloud DLP 客户端库。
Go
如需了解如何安装和使用 Cloud DLP 客户端库,请参阅 Cloud DLP 客户端库。
PHP
如需了解如何安装和使用 Cloud DLP 客户端库,请参阅 Cloud DLP 客户端库。
C#
如需了解如何安装和使用 Cloud DLP 客户端库,请参阅 Cloud DLP 客户端库。
试试看
您可以在 API Explorer 的 image.redact
参考页面上自行尝试本页中的每个示例,或使用您自己的图片尝试这些操作:
后续步骤
- 详细了解图片检查和遮盖。
- 完成使用 Cloud Data Loss Prevention 隐去敏感数据 Codelab。
- 了解如何检查图片是否存在敏感数据。
- 详细了解如何创建存储空间中去标识化的数据的副本。