Расширение для предотвращения потери данных в облаке Google

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Версия: 1.5.2

Используйте это расширение, чтобы скрыть конфиденциальные данные из контента и изображений. Например, вы можете изменить номера кредитных карт, имена и номера социального страхования.

Предварительные условия

Этот контент содержит информацию по настройке и использованию этого расширения. Прежде чем использовать расширение из API-прокси с помощью политики ExtensionCallout , необходимо:

  1. Включите API Google Cloud DLP для своего проекта.

  2. Предоставьте разрешение на тот уровень доступа, который вам нужен для расширения.

  3. Используйте консоль GCP для создания ключа для учетной записи службы .

  4. Используйте содержимое полученного ключевого файла 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 .

<?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 .

<?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 . Для поддержки этого конкретного примера это расширение должно быть настроено для поддержки типа информации EMAIL_ADDRESS. Список инфо-типов см. в разделе «Справочник по детектору инфо-типов» .

<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
    "text" : "{input.email.address}",
    "mask" : "*"
}]]></Input>
<Output>masked.output</Output>

Вывод для этого примера будет следующим:

{"text":"*****************"}

Параметры запроса

Параметр Описание Тип По умолчанию Необходимый
текст Текст для деидентификации. Нить Никто. Да.
маска Символ, используемый для маскировки конфиденциальных данных. Нить Никто. Да.

Ответ

Входной текст со значениями указанных инфо-типов заменен указанным символом. Например,

{"text":"*********"}

деидентифицироватьстемплате

Деидентифицируйте конфиденциальные данные в текстовом содержимом с помощью шаблона, который определяет, какой текст деидентифицировать и как с ним обращаться.

Шаблоны полезны для отделения конфигурации, например того, что вы проверяете и как вы деидентифицируете это, от реализации вызовов API. Шаблоны позволяют повторно использовать конфигурацию и обеспечивают согласованность между пользователями и наборами данных.

В вашем шаблоне вы укажете 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 . Когда вы создаете шаблон с помощью 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-deidentify"
}]]></Input>

Пример

В следующем примере входными данными для маскировки является адрес электронной почты, хранящийся в переменной потока input.email.address . Для поддержки этого конкретного примера это расширение должно быть настроено для поддержки типа информации EMAIL_ADDRESS. Список инфо-типов см. в разделе «Справочник по детектору инфо-типов» .

<Action>deidentifyWithType</Action>
<Input><![CDATA[{
    "text" : "{input.email.address}"
}]]></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_type" : "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, созданное из файла ключей сервисного аккаунта. Никто. Да.