敏感数据保护可以隐去图片中的敏感文本。敏感数据保护使用 infoType 检测器和 Cloud Vision 检查图片中的文本,检测文本中的敏感数据,然后返回图片,其中包含任何由不透明矩形遮挡的匹配敏感数据。
例如,请参考下面这两张“遮盖前”和“遮盖后”的图片。原始图片是通过扫描纸质文档生成的典型图片文件示例。在此示例中,敏感数据保护已配置为根据内容使用不同颜色的矩形遮盖美国社会保障号、电子邮件地址和电话号码。
- 图片遮盖前的扫描图片
- 图片遮盖后的扫描图片
限制和注意事项
在隐去图片中的内容时,请考虑以下几点。
支持的文件类型
敏感数据保护可以遮盖许多类型(包括 JPEG、BMP 和 PNG)中的敏感数据。如需了解详情,请参阅支持的文件类型。
SVG、PDF、XLSX、PPTX 或 DOCX 文件不支持内容隐去功能。
发现结果限制
隐去图片中的数据时,发现结果限制不适用。它们可能会导致意外或可能不一致的结果,其中只有部分数据会被遮盖。如果您在请求中包含 FindingLimits
,敏感数据保护会生成错误。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
启用 DLP API。
-
创建服务帐号:
-
在 Google Cloud 控制台中,转到创建服务帐号页面。
转到“创建服务帐号” - 选择您的项目。
-
在服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。
在服务帐号说明字段中,输入说明。例如,
Service account for quickstart
。 - 点击创建并继续。
-
将 Project > Owner 角色授予服务帐号。
如需授予该角色,请找到选择角色列表,然后选择 Project > Owner。
- 点击继续。
-
点击完成以完成服务帐号的创建过程。
不要关闭浏览器窗口。您将在下一步骤中用到它。
-
-
创建服务帐号密钥:
- 在 Google Cloud 控制台中,点击您创建的服务帐号的电子邮件地址。
- 点击密钥。
- 点击添加密钥,然后点击创建新密钥。
- 点击创建。JSON 密钥文件将下载到您的计算机上。
- 点击关闭。
-
将环境变量
GOOGLE_APPLICATION_CREDENTIALS
设置为包含凭据的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。 - 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目。
-
启用 DLP API。
-
创建服务帐号:
-
在 Google Cloud 控制台中,转到创建服务帐号页面。
转到“创建服务帐号” - 选择您的项目。
-
在服务帐号名称字段中,输入一个名称。Google Cloud 控制台会根据此名称填充服务帐号 ID 字段。
在服务帐号说明字段中,输入说明。例如,
Service account for quickstart
。 - 点击创建并继续。
-
将 Project > Owner 角色授予服务帐号。
如需授予该角色,请找到选择角色列表,然后选择 Project > Owner。
- 点击继续。
-
点击完成以完成服务帐号的创建过程。
不要关闭浏览器窗口。您将在下一步骤中用到它。
-
-
创建服务帐号密钥:
- 在 Google Cloud 控制台中,点击您创建的服务帐号的电子邮件地址。
- 点击密钥。
- 点击添加密钥,然后点击创建新密钥。
- 点击创建。JSON 密钥文件将下载到您的计算机上。
- 点击关闭。
-
将环境变量
GOOGLE_APPLICATION_CREDENTIALS
设置为包含凭据的 JSON 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。 - 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
遮盖图片中的所有默认 infoType
如需遮盖图片中的敏感数据,请向 DLP API 的 image.redact
方法提交图片。除非您指定要搜索的特定信息类型 (infoTypes),否则敏感数据保护会搜索最常见的 infoType。
如需隐去图片中的默认 infoType,请执行以下操作:
将图片编码为 base64 字符串。
如果您打算使用某个敏感数据保护客户端库来执行此任务,请跳过此步骤。
向
image.redact
方法提交请求。如果要隐去默认 infoType,请求只需要 base64 编码的图片。
例如,请参考下面的图片:这是通过扫描纸质文档生成的典型图片文件示例。
如需遮盖图片中的默认 infoType,请向 DLP API 的 image.redact
方法发送以下请求:
C#
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
{ "byteItem": { "data": "[BASE64-ENCODED-IMAGE]", "type": "IMAGE_JPEG" } }
敏感数据保护会返回以下内容:
{ "redactedImage": "[BASE64-ENCODED-IMAGE]" }
对 base64 编码的图片进行解码。
生成的图片如下所示:
请注意,除了遮盖手写的社会保障号、电子邮件地址和手机号码之外,敏感数据保护还遮盖了年份。下一部分演示了如何仅遮盖某些 infoType。
遮盖图片中的特定 infoType
如果您只需要遮盖图片中的某些敏感数据,请指定这些数据相应的内置 infoType。
如需隐去图片中的特定 infoType,请向 DLP API 的 image.redact
方法提交请求。请求必须包含以下内容:
- 图片。
- 一个或多个 infoType 检测器。
请参考上一部分中的原始图片。如要仅遮盖美国社会保障号、电子邮件地址和电话号码,请将以下 JSON 发送到 DLP API 的 image.redact
方法:
C#
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
{ "byteItem": { "data": "[BASE64-ENCODED-IMAGE]", "type": "IMAGE_JPEG" }, "imageRedactionConfigs": [ { "infoType": { "name": "US_SOCIAL_SECURITY_NUMBER" } }, { "infoType": { "name": "EMAIL_ADDRESS" } }, { "infoType": { "name": "PHONE_NUMBER" } } ] }
敏感数据保护会返回以下内容:
{ "redactedImage": "[BASE64-ENCODED-IMAGE]" }
对 base64 编码的图片进行解码。
生成的图片如下所示:
如果您想一目了然地查看被遮盖的内容,可以为遮盖的 infoType 信息添加颜色。请参阅以下部分了解详情。
为图片中遮盖的 infoType 添加颜色
要为遮盖的 infoType 信息添加颜色,请将 infoType 检测器与 RGB 颜色空间值配对。
如需为图片中隐去的 infoType 添加颜色,请向 DLP API 的 image.redact
方法提交请求。请求必须包含以下内容:
- 图片。
- 一个或多个 infoType 检测器,使用 RGB 颜色空间值为每个检测器分配一种颜色。
请参考第一部分中的原始图片。要使用紫色框遮盖美国社会保障号、使用绿色框遮盖电子邮件地址以及使用橙色框遮盖电话号码,请将以下 JSON 发送到 DLP API 的 image.redact
方法:
C#
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
{ "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 } } ] }
敏感数据保护会返回以下内容:
{ "redactedImage": "[BASE64-ENCODED-IMAGE]" }
对 base64 编码的图片进行解码。
生成的图片如下所示:
遮盖图片中的所有文本
敏感数据保护还包含一个选项,用于隐去图片中检测到的所有文本。
如需隐去图片中的所有文本,请向 DLP API 的 image.redact
方法提交请求。请求必须包含以下内容:
- 图片。
- 将
redactAllText
选项设置为true
。
请参考第一部分中的原始图片。要遮盖所有文本,请将以下 JSON 发送到 DLP API 的 image.redact
方法:
C#
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
{ "byteItem": { "data": "[BASE64-ENCODED-IMAGE]", "type": "IMAGE_JPEG" }, "imageRedactionConfigs": [ { "redactAllText": true } ] }
敏感数据保护会返回以下内容:
{ "redactedImage": "[BASE64-ENCODED-IMAGE]" }
对 base64 编码的图片进行解码。
此 API 会以相同格式返回您所提供的图片,但会遮盖根据您的标准识别为包含敏感信息的所有文本。
生成的图片如下所示:
包含可能性设置的代码示例
此示例与隐去图片中的特定 infoType 类似。此外,还演示了如何指定最小可能性。
C#
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用用于敏感数据保护的客户端库,请参阅敏感数据保护客户端库。
如需向敏感数据保护服务进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
试试看
您可以在 API Explorer 的 image.redact
参考页面上自行尝试本页中的每个示例,或使用您自己的图片尝试这些操作:
后续步骤
- 详细了解图片检查和遮盖。
- 完成使用敏感数据保护遮盖敏感数据 Codelab。
- 了解如何检查图片是否存在敏感数据。
- 详细了解如何在存储空间中创建去标识化的数据副本。