Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Версия: 1.5.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&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError=&q>uot;f<alse" >enabled=&quo<t;true"> name<="Set-Variable"
DisplayNameSe>t Var<iable/DisplayN>ame
A<ssig>nTo type="<respo>nse"< crea>teNew="false"/
AssignVariable
Namerequest.content/Na<me
> <ValueVisit my s>i<te at https://>example.com. Or contact me at gladys@example.com./Value
/AssignVariable
/AssignMessage
Следующая политика ExtensionCallout извлекает значение переменной request.content и передает его расширению Cloud DLP (здесь оно называется example-dlp ). Это расширение настроено для маскировки значений на основе типов информации URL и EMAIL_ADDRESS .
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ConnectorCallout async="false" continueOnError="true"> enab<led="t>rue" name="Data-Loss-Extensi<on-Callout&q>uot;
< Displ>ayNameData <Loss Preve>ntion< Exten>sion Callout/Displ<ayName
> C<onnec><torexample-dlp/Connector
ActiondeidentifyWithMask/Action
Input![CDAT><A[{
> < "text" :< ">{<request.content}&>quot;,
"mask" : "*"
}]]/Input
Outputmasked.output/Output
/ConnectorCallout
Следующая политика AssignMessage извлекает выходные данные расширения для отображения в инструменте трассировки.
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError=&quo>t;fal<se" en>abled="tr<ue" nam>e=&qu<ot;Get-DLP-Output"
DisplayNameGet >DLP O<utp>ut/Displa<yName
AssignTo type="response>" createNe<w=">false<&quo>t<;/
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&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError=&q>uot;f<alse" >enabled=&quo<t;true"> name<="Set-Variable"
DisplayNameSe>t Var<iable/DisplayN>ame
A<ssig>nTo type="<respo>nse"< crea>teNew="false"/
AssignVariable
Namerequest.content/Na<me
> <ValueVisit my s>i<te at https://>example.com. Or contact me at gladys@example.com./Value
/AssignVariable
/AssignMessage
Следующая политика ExtensionCallout извлекает значение переменной request.content и передает его расширению Cloud DLP (здесь оно называется example-dlp ). Это расширение настроено для маскировки значений на основе типов информации URL и EMAIL_ADDRESS .
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ConnectorCallout async="false" continueOnError="true"> enab<led="t>rue" name="Data-Loss-Extensi<on-Callout&q>uot;
< Displ>ayNameData <Loss Preve>ntion< Exten>sion Callout/Displ<ayName
> C<onnec><torexample-dlp/Connector
ActiondeidentifyWithType/><Action>
<Input!>[CDATA[{
< &quo<t;text" : &q>uot;{request.content}"
}]]/Input
Outputmasked.output/Output
/ConnectorCallout
Следующая политика AssignMessage извлекает выходные данные расширения для отображения в инструменте трассировки.
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError=&quo>t;fal<se" en>abled="tr<ue" nam>e=&qu<ot;Get-DLP-Output"
DisplayNameGet >DLP O<utp>ut/Displa<yName
AssignTo type="response>" createNe<w=">false<&quo>t<;/
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&q><uot; :> "masking-character"
}]]/Input
Пример
В следующем примере входными данными для маскировки является адрес электронной почты, хранящийся в переменной потока input.email.address . Для поддержки этого конкретного примера это расширение должно быть настроено для поддержки типа информации EMAIL_ADDRESS. Список инфо-типов см. в разделе «Справочник по детектору инфо-типов» .
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{input.email.address}",
>< &q>u<ot;mas>k" : &qu<ot;*&qu>ot;
}]]/Input
Outputmasked.output/Output
Вывод для этого примера будет следующим:
{"text":"*****************"}
Параметры запроса
| Параметр | Описание | Тип | По умолчанию | Необходимый |
|---|---|---|---|---|
| текст | Текст для деидентификации. | Нить | Никто. | Да. |
| маска | Символ, используемый для маскировки конфиденциальных данных. | Нить | Никто. | Да. |
Ответ
Входной текст со значениями указанных инфо-типов заменен указанным символом. Например,
{"text":"*********"}
деидентифицироватьстемплате
Деидентифицируйте конфиденциальные данные в текстовом содержимом с помощью шаблона, который определяет, какой текст деидентифицировать и как с ним обращаться.
Шаблоны полезны для отделения конфигурации, например того, что вы проверяете и как вы деидентифицируете это, от реализации вызовов API. Шаблоны позволяют повторно использовать конфигурацию и обеспечивают согласованность между пользователями и наборами данных.
В вашем шаблоне вы укажете infoTypes, представляющие контент, который нужно деидентифицировать. Список инфо-типов см. в справочнике по детекторам InfoType . Деидентификация маскирует те части текста, которые указаны свойством infoTypes в шаблоне.
Синтаксис
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
"templateName&><quot; >: "path-to-template"
}]]/Input
Пример
В следующем примере входными данными для деидентификации является тело запроса, переносимое переменной потока request.content .
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "{request.content}"
"templateName" : "projects/[PROJECT_ID]/dei><dentif>yTemplates/1231258663242"
}]]/Input
Выходными данными для этого примера будет обезличенное содержимое запроса.
Параметры запроса
| Параметр | Описание | Тип | По умолчанию | Необходимый |
|---|---|---|---|---|
| текст | Текст для деидентификации. Именно на этом и работает процесс деидентификации. | Объект | Никто. | Да. |
| имя_шаблона | Шаблон для использования. Это будет путь к шаблону в следующем виде: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID . Когда вы создаете шаблон с помощью Google API , используйте значение свойства name ответа в качестве templateName . | Нить | Никто. | Да. |
Ответ
Входной текст со значениями указанных инфо-типов заменен именами инфо-типов.
деидентифицироватьстипе
Деидентифицируйте конфиденциальные данные в текстовом содержимом, заменяя каждое совпадающее значение именем 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-><deiden>tify"
}]]/Input
Пример
В следующем примере входными данными для маскировки является адрес электронной почты, хранящийся в переменной потока input.email.address . Для поддержки этого конкретного примера это расширение должно быть настроено для поддержки типа информации EMAIL_ADDRESS. Список инфо-типов см. в разделе «Справочник по детектору инфо-типов» .
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{input.emai><l.addr>ess}"
}]]/Input
Вывод для этого примера будет следующим:
{"text":"EMAIL_ADDRESS"}
Параметры запроса
| Параметр | Описание | Тип | По умолчанию | Необходимый |
|---|---|---|---|---|
| текст | Текст для деидентификации. | Нить | Никто. | Да. |
Ответ
Входной текст со значениями указанных инфо-типов заменен именами инфо-типов. Например,
{"text":"EMAIL_ADDRESS"}
РедактироватьИзображение
Редактируйте текст, который попадает в одну из категорий infoType. Отредактированное содержимое обнаруживается и закрывается непрозрачным прямоугольником. Это действие маскирует те части image_data , которые указаны свойством infoTypes в конфигурации расширения .
Список инфо-типов см. в справочнике по детекторам InfoType .
Параметры запроса
<Action>redactImage</Action>
<Input><![CDATA[{
"image_data" : "base64-encoded-image-to-analyze",
"image_ty><pe&quo>t; : "type-of-image"
}]]/Input
| Параметр | Описание | Тип | По умолчанию | Необходимый |
|---|---|---|---|---|
| изображение_данные | Данные изображения, закодированные в base64. | Нить | Никто. | Да. |
| тип_изображения | Константа типа изображения. Доступные значения: IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG, IMAGE_SVG. | Нить | Никто. | Да. |
Ответ
Изображение с отредактированным текстом.
Справочник по конфигурации
Используйте следующее при настройке и развертывании этого расширения для использования в прокси-серверах API. Инструкции по настройке расширения с помощью консоли Apigee см. в разделе Добавление и настройка расширения .
Общие свойства расширения
Следующие свойства присутствуют для каждого расширения.
| Свойство | Описание | По умолчанию | Необходимый |
|---|---|---|---|
name | Имя, которое вы даете этой конфигурации расширения. | Никто | Да |
packageName | Имя пакета расширения, предоставленное Apigee Edge. | Никто | Да |
version | Номер версии пакета расширения, из которого вы настраиваете расширение. | Никто | Да |
configuration | Значение конфигурации, относящееся к добавляемому расширению. См. Свойства этого пакета расширения. | Никто | Да |
Свойства этого пакета расширений
Укажите значения для следующих свойств конфигурации, специфичных для этого расширения.
| Свойство | Описание | По умолчанию | Необходимый |
|---|---|---|---|
| идентификатор проекта | Идентификатор проекта GCP, для которого включен Cloud Data Loss Prevention API. | Никто. | Да. |
| Типы информации | Информационные типы конфиденциальных данных. Если этот параметр опущен, служба обнаружит все встроенные типы. Список инфо-типов, поддерживаемых службой Google Cloud DLP, см. в справочнике по детектору инфо-типов . | Никто. | Нет. |
| реквизиты для входа | При вводе в консоли Apigee Edge это содержимое файла ключей вашей учетной записи службы. При отправке через API управления это значение в кодировке Base64, созданное из файла ключей сервисного аккаунта. | Никто. | Да. |