您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
版本:2.0.2
使用此扩展程序可模糊处理内容和图片中的敏感数据。例如,您可能会遮盖信用卡号、姓名和社会保障号。
前提条件
此内容提供了有关配置和使用此扩展程序的参考信息。在通过 ExtensionCallout 政策从 API 代理中使用扩展程序之前,您必须执行以下操作:
为您的项目启用 Google Cloud DLP API。
为扩展程序所需的访问权限级别授予权限。
Cloud Data Loss Prevention (DLP) 简介
Cloud Data Loss Prevention (DLP) 是一种 API,用于检查文本、图片和其他数据,以识别和管理敏感数据。
如需了解详情,请参阅 DLP 概览。如需参考此扩展程序公开的 API,请参阅 Cloud Data Loss Prevention (DLP) API。
示例
以下示例展示了如何使用 ExtensionCallout 政策配置对 Cloud DLP 扩展操作的支持。
为了方便您试用此示例代码,这些示例使用 AssignMessage 政策来设置流变量值,并检索扩展程序响应值以在 Trace 工具中显示。
使用星号遮盖
此示例使用 deidentifyWithMask 操作来使用政策中指定的字符(此处为 * 字符)遮盖指定类型的文本。
以下 AssignMessage 政策设置了 request.content 变量,以用于说明。通常,您会从客户端的请求中检索请求内容。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Set-Variable">
<DisplayName>Set Variable</DisplayName>
<AssignTo type="response" createNew="false"/>
<AssignVariable>
<Name>request.content</Name>
<Value>Visit my site at https://example.com. Or contact me at gladys@example.com.</Value>
</AssignVariable>
</AssignMessage>
以下 ExtensionCallout 政策会检索 request.content 变量值,并将其传递给 Cloud DLP 扩展程序(此处称为 example-dlp)。该扩展程序已配置为根据 URL 和 EMAIL_ADDRESS infoTypes 遮盖值。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Data-Loss-Extension-Callout">
<DisplayName>Data Loss Prevention Extension Callout</DisplayName>
<Connector>example-dlp</Connector>
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{request.content}",
"mask" : "*"
}]]></Input>
<Output>masked.output</Output>
</ConnectorCallout>
以下 AssignMessage 政策会检索扩展程序的输出,以便在 Trace 工具中显示。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-DLP-Output">
<DisplayName>Get DLP Output</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{masked.output}</Payload>
</Set>
</AssignMessage>
以下是此代码的输出示例。
{"text":"Visit my site at ******************* Or contact me at *****************."}
带名称的遮罩
此示例使用 deidentifyWithType 操作来使用信息类型名称本身遮盖指定类型的文本。例如,它会将电子邮件地址 gladys@example.com 替换为 EMAIL_ADDRESS。
以下 AssignMessage 政策设置了 request.content 变量,以用于说明。通常,您会从客户端的请求中检索请求内容。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Set-Variable">
<DisplayName>Set Variable</DisplayName>
<AssignTo type="response" createNew="false"/>
<AssignVariable>
<Name>request.content</Name>
<Value>Visit my site at https://example.com. Or contact me at gladys@example.com.</Value>
</AssignVariable>
</AssignMessage>
以下 ExtensionCallout 政策会检索 request.content 变量值并将其传递给 Cloud DLP 扩展程序(此处称为 example-dlp)。该扩展程序已配置为根据 URL 和 EMAIL_ADDRESS infoTypes 屏蔽值。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Data-Loss-Extension-Callout">
<DisplayName>Data Loss Prevention Extension Callout</DisplayName>
<Connector>example-dlp</Connector>
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{request.content}"
}]]></Input>
<Output>masked.output</Output>
</ConnectorCallout>
以下 AssignMessage 政策会检索扩展程序的输出,以便在 Trace 工具中显示。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-DLP-Output">
<DisplayName>Get DLP Output</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{masked.output}</Payload>
</Set>
</AssignMessage>
以下是此代码的输出示例。
{"text":"Visit my site at [URL] Or contact me at [EMAIL_ADDRESS]."}
操作
deidentifyWithMask
对 text 中的敏感数据进行去标识化,并使用 mask 字符遮盖数据。此操作会屏蔽扩展程序配置中由 infoTypes 属性指定的 text 部分。
遮盖敏感数据会将字符替换为符号,例如星号 (*) 或井号 (#)。您可以在扩展程序配置中配置敏感数据的类型。
语法
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify",
"mask" : "masking-character"
}]]></Input>
示例
在以下示例中,要遮盖的输入内容是存储在 input.email.address 流变量中的电子邮件地址。为了支持此特定示例,必须已将此扩展程序配置为支持 EMAIL_ADDRESS infoType。如需查看 infoType 列表,请参阅 InfoType 检测器参考文档。
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{input.email.address}",
"mask" : "*"
}]]></Input>
<Output>masked.output</Output>
此示例的输出如下所示:
{"text":"*****************"}
请求参数
| 参数 | 说明 | 类型 | 默认值 | 必需 |
|---|---|---|---|---|
| text | 要进行去标识化的文本。 | 字符串 | 无。 | 是。 |
| 掩盖 | 用于遮盖敏感数据的字符。 | 字符串 | 无。 | 是。 |
响应
输入文本,其中指定 infoType 的值已替换为指定字符。例如,
{"text":"*********"}
deidentifyWithTemplate
使用模板对文本内容中的敏感数据进行去标识化,该模板可配置要对哪些文本进行去标识化以及如何处理这些文本。
模板可用于将配置(如检查的内容和对内容进行去标识化的方式)与 API 调用的实现分离。模板提供了一种方法,让您能够重复使用配置并在用户和数据集之间实现一致性。
在模板中,您将指定要进行去标识化的内容的 infoTypes。如需查看 infoType 列表,请参阅 InfoType 检测器参考文档。脱敏功能会遮盖模板中由 infoTypes 属性指定的文本部分。
语法
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
"templateName" : "path-to-template"
}]]></Input>
示例
在以下示例中,去标识化的输入是 request.content 流变量携带的请求正文。
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "{request.content}"
"templateName" : "projects/[PROJECT_ID]/deidentifyTemplates/1231258663242"
}]]></Input>
此示例的输出将是去标识化的请求内容。
请求参数
| 参数 | 说明 | 类型 | 默认值 | 必需 |
|---|---|---|---|---|
| text | 要进行去标识化的文本。这是去标识化流程所处理的数据。 | 对象 | 无。 | 是。 |
| 模板名称 | 要使用的模板。这将是模板的路径,格式如下:projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID。使用 Google API 创建模板时,请使用响应的 name 属性值作为 templateName。 |
字符串 | 无。 | 是。 |
响应
输入文本,其中指定 infoType 的值已替换为 infoType 名称。
deidentifyWithType
对文本内容中的敏感数据进行去标识化,将每个匹配的值都替换为 infoType 的名称。如需查看 infoType 列表,请参阅 InfoType 检测器参考文档。此操作会屏蔽扩展程序配置中由 infoTypes 属性指定的 text 部分。
在以下示例中,电话号码被服务识别,然后替换为 infoType 本身的名称。
输入文本:
John Smith, 123 Main St, Seattle, WA 98122, 206-555-0123.结果文本:
John Smith, 123 Main St, Seattle, WA 98122, PHONE_NUMBER.
语法
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
}]]></Input>
示例
在以下示例中,要遮盖的输入内容是存储在 input.email.address 流变量中的电子邮件地址。为了支持此特定示例,必须已将此扩展程序配置为支持 EMAIL_ADDRESS infoType。如需查看 infoType 列表,请参阅 InfoType 检测器参考文档。
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{input.email.address}"
}]]></Input>
此示例的输出如下所示:
{"text":"EMAIL_ADDRESS"}
请求参数
| 参数 | 说明 | 类型 | 默认值 | 必需 |
|---|---|---|---|---|
| text | 要进行去标识化的文本。 | 字符串 | 无。 | 是。 |
响应
输入文本,其中指定 infoType 的值已替换为 infoType 名称。例如,
{"text":"EMAIL_ADDRESS"}
redactImage
遮盖属于某个 infoType 类别的文本。系统会检测到隐去的内容,并使用不透明的矩形遮盖该内容。此操作会屏蔽扩展程序配置中由 infoTypes 属性指定的 image_data 部分。
如需查看 infoType 列表,请参阅 InfoType 检测器参考文档。
请求参数
<Action>redactImage</Action>
<Input><![CDATA[{
"image_data" : "base64-encoded-image-to-analyze",
"image_type" : "type-of-image"
}]]></Input>
| 参数 | 说明 | 类型 | 默认值 | 必需 |
|---|---|---|---|---|
| image_data | 以 base64 编码的图片数据。 | 字符串 | 无。 | 是。 |
| image_type | 图片类型的常量。可选值为 IMAGE_JPEG、IMAGE_BMP、IMAGE_PNG、IMAGE_SVG。 | 字符串 | 无。 | 是。 |
响应
图片,其中部分文字已被遮盖。
配置参考文档
在配置和部署此扩展以用于 API 代理时,请使用以下内容。如需了解如何使用 Apigee 控制台配置扩展程序,请参阅添加和配置扩展程序。
常见扩展属性
每个扩展程序都有以下属性。
| 属性 | 说明 | 默认 | 必需 |
|---|---|---|---|
name |
您为扩展程序配置此名称。 | 无 | 是 |
packageName |
Apigee Edge 提供的扩展包的名称。 | 无 | 是 |
version |
配置扩展程序所用的扩展程序软件包的版本号。 | 无 | 是 |
configuration |
特定于您要添加的附加信息的配置值。请参阅此扩展程序软件包的属性 | 无 | 是 |
相应扩展程序包的属性
为此扩展程序特有的以下配置属性指定值。
| 属性 | 说明 | 默认 | 必需 |
|---|---|---|---|
| projectId | 已启用 Cloud Data Loss Prevention API 的 Google Cloud 项目的 ID。 | 无。 | 是。 |
| 各种数据资产 | 敏感数据的信息类型。如果省略,服务将检测所有内置类型。如需查看 Google Cloud DLP 服务支持的 infoType 列表,请参阅 InfoType 检测器参考。 | 无。 | 否。 |
| 凭证 | 在 Apigee Edge 控制台中输入时,这是服务账号密钥文件的内容。如果使用管理 API 发送,则该值是根据服务账号密钥文件生成的 base64 编码值。 | 无。 | 是。 |