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