Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Версия: 1.5.2
Это расширение позволяет скрывать конфиденциальные данные в контенте и изображениях. Например, можно удалить номера кредитных карт, имена и номера социального страхования.
Требования
В нем приведена информация о том, как настроить и использовать это расширение. Прежде чем использовать расширение из прокси-сервера API с помощью правила ExtensionCallout, необходимо:
Включите Google Cloud DLP API для своего проекта.
Предоставьте расширению разрешения на доступ к нужным данным.
Как создать ключ для сервисного аккаунта с помощью консоли GCP
Используйте содержимое полученного JSON-файла ключа при добавлении и настройке расширения, следуя инструкциям по настройке.
О Cloud Data Loss Prevention (DLP)
Cloud Data Loss Prevention (DLP) – это API для проверки текста, изображений и других данных на наличие конфиденциальной информации и управления ею.
Подробнее о DLP… Справочную информацию об API, который предоставляет это расширение, можно найти в разделе Cloud Data Loss Prevention (DLP) API.
Примеры
В приведенных ниже примерах показано, как настроить поддержку действий расширения Cloud DLP с помощью правила ExtensionCallout.
Чтобы упростить использование этого примера кода, в нем применяется правило AssignMessage для установки значений переменных потока и получения значений ответов расширения для отображения в инструменте трассировки.
Маска со звездами
В этом примере действие 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 извлекает выходные данные расширения для отображения в инструменте трассировки.
<?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). Это расширение настроено на маскировку значений на основе infoTypes URL и EMAIL_ADDRESS.
<?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 извлекает выходные данные расширения для отображения в инструменте трассировки.
<?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. Это действие маскирует части text, указанные в свойстве infoTypes в конфигурации расширения.
Маскирование данных деликатного характера заменяет символы на другие, например звездочку (*) или решетку (#). Типы данных деликатного характера можно настроить в конфигурации расширения.
Синтаксис
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify",
"mask" : "masking-character"
}]]></Input>
Пример
В приведенном ниже примере входные данные для маскировки – это адрес электронной почты, хранящийся в переменной потока input.email.address. Чтобы поддерживать этот пример, расширение должно быть настроено на поддержку типа информации EMAIL_ADDRESS. Список типов данных можно найти в справочнике по детекторам типов данных.
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{input.email.address}",
"mask" : "*"
}]]></Input>
<Output>masked.output</Output>
В этом случае будет получен следующий результат:
{"text":"*****************"}
Параметры запроса
| Параметр | Описание | Тип | По умолчанию | Обязательно |
|---|---|---|---|---|
| Текст | Текст, который нужно обезличить. | Строка | Нет. | Да. |
| маска | Символ, который будет использоваться для маскировки конфиденциальных данных. | Строка | Нет. | Да. |
Ответ
Входной текст, в котором значения указанных типов информации заменены на заданный символ. Пример:
{"text":"*********"}
deidentifyWithTemplate
Деидентифицируйте данные деликатного характера в текстовом контенте с помощью шаблона, в котором указано, какой текст нужно деидентифицировать и как это сделать.
Шаблоны позволяют отделить конфигурацию, например то, что вы проверяете и как обезличиваете, от реализации вызовов API. Шаблоны позволяют повторно использовать конфигурацию и обеспечивать единообразие для разных пользователей и наборов данных.
В шаблоне вы указываете infoTypes, которые нужно обезличить. Список типов данных приведен в справочнике по детекторам типов данных. Маска деидентификации скрывает части текста, указанные в свойстве 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>
В этом примере результатом будет контент запроса, из которого удалена идентифицирующая информация.
Параметры запроса
| Параметр | Описание | Тип | По умолчанию | Обязательно |
|---|---|---|---|---|
| Текст | Текст, который нужно обезличить. Именно с этими данными работает процесс деидентификации. | Объект | Нет. | Да. |
| название шаблона | Шаблон, который нужно использовать. Это будет путь к шаблону в следующем формате: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Когда вы создаете шаблон с помощью Google API, используйте значение свойства name из ответа в качестве значения templateName. |
Строка | Нет. | Да. |
Ответ
Входной текст, в котором значения указанных типов данных заменены на названия этих типов данных.
deidentifyWithType
Деидентифицирует данные деликатного характера в текстовом контенте, заменяя каждое найденное значение названием типа данных. Список типов данных приведен в справочнике по детекторам типов данных. Это действие маскирует части text, указанные в свойстве infoTypes в конфигурации расширения.
В следующем примере сервис распознает номер телефона, а затем заменяет его названием типа данных.
Введите текст:
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. Список типов данных можно найти в справочнике по детекторам типов данных.
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{input.email.address}"
}]]></Input>
В этом случае будет получен следующий результат:
{"text":"EMAIL_ADDRESS"}
Параметры запроса
| Параметр | Описание | Тип | По умолчанию | Обязательно |
|---|---|---|---|---|
| Текст | Текст, который нужно обезличить. | Строка | Нет. | Да. |
Ответ
Входной текст, в котором значения указанных типов данных заменены на названия этих типов данных. Пример:
{"text":"EMAIL_ADDRESS"}
redactImage
Удалять текст, относящийся к одной из категорий infoType. Контент, который нужно удалить, обнаруживается и закрывается непрозрачным прямоугольником. Это действие маскирует части image_data, указанные в свойстве infoTypes в конфигурации расширения.
Список типов данных приведен в справочнике по детекторам типов данных.
Параметры запроса
<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 | Значение конфигурации, относящееся к добавляемому расширению. См. Свойства этого пакета расширения. | Никто | Да |
Свойства пакета расширения
Укажите значения для следующих свойств конфигурации, относящихся к этому расширению.
| Свойство | Описание | По умолчанию | Обязательно |
|---|---|---|---|
| Идентификатор проекта | Идентификатор проекта GCP, для которого включен Cloud Data Loss Prevention API. | Нет. | Да. |
| infoTypes | Типы данных деликатного характера. Если не указать тип, сервис обнаружит все встроенные типы. Список infoType, поддерживаемых сервисом DLP Google Cloud, приведен в справочнике по детекторам infoType. | Нет. | Нет. |
| учетные данные | При вводе в консоли Apigee Edge это содержимое файла ключа сервисного аккаунта. При отправке через Management API это значение в кодировке base64, сгенерированное на основе файла ключа сервисного аккаунта. | Нет. | Да. |