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

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

Версия: 2.0.1

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

Предпосылки

Этот контент предоставляет справочную информацию по настройке и использованию этого расширения. Перед использованием расширения из 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 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, сгенерированное из файла ключа учетной записи службы. Никто. Да.