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

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

Версия: 2.0.2

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

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

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

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

  2. Предоставьте расширению необходимые права доступа на требуемом уровне.

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

  4. При добавлении и настройке расширения с помощью справочника по конфигурации используйте содержимое полученного JSON-файла с ключами.

О предотвращении потери данных в облаке (DLP)

Cloud Data Loss Prevention (DLP) — это API для проверки текста, изображений и других данных с целью выявления и управления конфиденциальными данными.

Для получения более подробной информации см. обзор DLP . Справочную информацию об API, предоставляемом этим расширением, см. в разделе «API Cloud Data Loss Prevention (DLP)» .

Образцы

Следующие примеры иллюстрируют, как настроить поддержку действий расширения 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 и infoTypes 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 и infoTypes 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 см. в справочнике по детектору 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>

В этом примере результатом будет обезличенное содержимое запроса.

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

Параметр Описание Тип По умолчанию Необходимый
текст Текст, подлежащий обезличиванию. Именно на этом основан процесс обезличивания. Объект Никто. Да.
templateName Используемый шаблон. Это будет путь к шаблону в следующем формате: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID . При создании шаблона с помощью Google API используйте значение свойства name из ответа в качестве templateName . Нить Никто. Да.

Ответ

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

deidentifyWithType

Обезличить конфиденциальные данные в текстовом содержимом, заменив каждое найденное значение именем типа информации (infoType). Список типов информации см. в справочнике детектора типов информации . Это действие маскирует те части 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"}

редактируемое изображение

Замаскируйте текст, попадающий в одну из категорий infoType. Замаскированное содержимое обнаруживается и скрывается непрозрачным прямоугольником. Это действие маскирует те части image_data , которые указаны свойством infoTypes в конфигурации расширения .

Список типов информации см. в справочнике детектора типов информации .

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

<Action>redactImage</Action>
<Input><![CDATA[{
  "image_data" : "base64-encoded-image-to-analyze",
  "image_type" : "type-of-image"
}]]></Input>
Параметр Описание Тип По умолчанию Необходимый
данные изображения Данные изображения закодированы в формате base64. Нить Никто. Да.
image_type Константа типа изображения. Доступные значения: IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG, IMAGE_SVG. Нить Никто. Да.

Ответ

Изображение с отредактированным текстом.

Справочник по конфигурации

При настройке и развертывании этого расширения для использования в API-прокси используйте следующие параметры. Инструкции по настройке расширения с помощью консоли Apigee см. в разделе «Добавление и настройка расширения» .

Общие свойства расширения

Следующие свойства присутствуют для каждого расширения.

Свойство Описание По умолчанию Необходимый
name Имя, которое вы даете этой конфигурации расширения. Никто Да
packageName Имя пакета расширения, предоставленное Apigee Edge. Никто Да
version Номер версии пакета расширения, из которого вы настраиваете расширение. Никто Да
configuration Значение конфигурации, относящееся к добавляемому расширению. См. Свойства этого пакета расширения. Никто Да

Свойства для этого пакета расширений

Укажите значения для следующих параметров конфигурации, специфичных для данного расширения.

Свойство Описание По умолчанию Необходимый
projectId Идентификатор проекта Google Cloud, для которого включен API предотвращения потери данных в облаке. Никто. Да.
инфотипы Типы информации конфиденциальных данных. Если этот параметр опущен, служба обнаружит все встроенные типы. Список типов информации, поддерживаемых службой Google Cloud DLP, см. в Справочнике по детектору типов информации . Никто. Нет.
реквизиты для входа При вводе в консоль Apigee Edge это содержимое файла ключа вашей учетной записи службы. При отправке через API управления это значение в кодировке Base64, сгенерированное из файла ключа учетной записи службы. Никто. Да.