Rozszerzenie Google Cloud Data Loss Prevention

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Wersja: 1.5.1

Użyj tego rozszerzenia, aby ukryć dane wrażliwe w treści i obrazach. Możesz na przykład utajnić numery kart kredytowych, imiona i nazwiska oraz numery ubezpieczenia społecznego.

Wymagania wstępne

Ta treść zawiera informacje o konfigurowaniu i używaniu tego rozszerzenia. Zanim zaczniesz korzystać z rozszerzenia w proxy interfejsu API za pomocą zasady ExtensionCallout, musisz:

  1. włączyć Google Cloud DLP API w projekcie;

  2. przyznać uprawnienia do poziomu dostępu, który chcesz uzyskać w rozszerzeniu;

  3. wygenerować klucz konta usługi w konsoli Google Cloud Platform

  4. podczas dodawania i konfigurowania rozszerzenia użyć zawartości wynikowego pliku JSON z kluczem, korzystając z odwołania do konfiguracji.

Informacje o Cloud Data Loss Prevention (DLP)

Cloud Data Loss Prevention (DLP) to interfejs API do sprawdzania tekstu, obrazów i innych danych w celu identyfikowania danych wrażliwych i zarządzania nimi.

Więcej informacji znajdziesz w omówieniu DLP. Informacje o interfejsie API, który udostępnia to rozszerzenie, znajdziesz w artykule Cloud Data Loss Prevention (DLP) API.

Przykłady

Z przykładów poniżej dowiesz się, jak skonfigurować obsługę działań rozszerzenia Cloud DLP za pomocą zasady ExtensionCallout.

Aby ułatwić wypróbowanie tego przykładowego kodu, w tych przykładach używamy zasady AssignMessage do ustawiania wartości zmiennych przepływu i pobierania wartości odpowiedzi rozszerzenia w celu wyświetlenia ich w narzędziu Trace.

Maskowanie gwiazdkami

W tym przykładzie używamy działania deidentifyWithMask, aby zamaskować określone typy tekstu za pomocą znaku określonego w zasadzie – w tym przypadku znaku *.

Zasada AssignMessage poniżej ustawia zmienną request.content na potrzeby ilustracji. Zwykle treść żądania pobierasz z żądania klienta.

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

Zasada ExtensionCallout poniżej pobiera wartość zmiennej request.content i przekazuje ją do rozszerzenia Cloud DLP (w tym przypadku o nazwie example-dlp). To rozszerzenie zostało skonfigurowane tak, aby maskować wartości na podstawie obiektów infoType URL i 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>

Zasada AssignMessage poniżej pobiera dane wyjściowe rozszerzenia w celu wyświetlenia ich w narzędziu Trace.

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

Oto przykład danych wyjściowych tego kodu.

{"text":"Visit my site at ******************* Or contact me at *****************."}

Maskowanie nazwą

W tym przykładzie używamy działania deidentifyWithType, aby zamaskować określone typy tekstu za pomocą samej nazwy obiektu infoType. Na przykład adres e-mail gladys@example.com zostanie zastąpiony ciągiem EMAIL_ADDRESS.

Zasada AssignMessage poniżej ustawia zmienną request.content na potrzeby ilustracji. Zwykle treść żądania pobierasz z żądania klienta.

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

Zasada ExtensionCallout poniżej pobiera wartość zmiennej request.content i przekazuje ją do rozszerzenia Cloud DLP (w tym przypadku o nazwie example-dlp). To rozszerzenie zostało skonfigurowane tak, aby maskować wartości na podstawie obiektów infoType URL i 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>

Zasada AssignMessage poniżej pobiera dane wyjściowe rozszerzenia w celu wyświetlenia ich w narzędziu Trace.

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

Oto przykład danych wyjściowych tego kodu.

{"text":"Visit my site at [URL] Or contact me at [EMAIL_ADDRESS]."}

Działania

deidentifyWithMask

Deidentyfikuje dane wrażliwe z text i maskuje je za pomocą znaku mask. To działanie maskuje te części text, które są określone przez właściwość infoTypes w konfiguracji rozszerzenia.

Maskowanie danych wrażliwych polega na zastępowaniu znaków symbolem, np. gwiazdką (*) lub znakiem hash (#). Typy danych wrażliwych można skonfigurować w konfiguracji rozszerzenia.

Składnia

<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify",
  "mask" : "masking-character"
}]]></Input>

Przykład

W przykładzie poniżej dane wejściowe do zamaskowania to adres e-mail przechowywany w zmiennej przepływu input.email.address. Aby obsługiwać ten konkretny przykład, to rozszerzenie musi być skonfigurowane do obsługi obiektu infoType EMAIL_ADDRESS. Listę obiektów infoType znajdziesz w artykule Odwołanie do detektora obiektów infoType.

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

Dane wyjściowe tego przykładu będą wyglądać tak:

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

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
text Tekst do deidentyfikacji. Ciąg znaków Brak. Tak.
mask Znak używany do maskowania danych wrażliwych. Ciąg znaków Brak. Tak.

Odpowiedź

Tekst wejściowy z wartościami określonych obiektów infoType zastąpionymi określonym znakiem. Na przykład:

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

deidentifyWithTemplate

Deidentyfikuje dane wrażliwe w treści tekstowej za pomocą szablonu, który konfiguruje, jaki tekst ma zostać deidentyfikowany i jak go obsługiwać.

Szablony są przydatne do oddzielania konfiguracji, np. tego, co sprawdzasz i jak deidentyfikujesz, od implementacji wywołań interfejsu API. Szablony umożliwiają ponowne wykorzystanie konfiguracji i zapewniają spójność między użytkownikami i zbiorami danych.

W szablonie określisz obiekty infoTypes reprezentujące treść do deidentyfikacji. Listę obiektów infoType znajdziesz w artykule Odwołanie do detektora obiektów infoType. Deidentyfikacja maskuje te części tekstu, które są określone przez właściwość infoTypes w szablonie.

Składnia

<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify"
  "templateName" : "path-to-template"
}]]></Input>

Przykład

W przykładzie poniżej dane wejściowe do deidentyfikacji to treść żądania przenoszona przez request.content zmienną przepływu.

<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
    "text" : "{request.content}"
    "templateName" : "projects/[PROJECT_ID]/deidentifyTemplates/1231258663242"
}]]></Input>

Dane wyjściowe tego przykładu będą zawierać deidentyfikowaną treść żądania.

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
text Tekst do deidentyfikacji. To jest to, na czym działa proces deidentyfikacji. Obiekt Brak. Tak.
templateName Szablon, którego chcesz użyć. Będzie to ścieżka do szablonu w postaci projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Gdy tworzysz szablon za pomocą interfejsu Google API, użyj wartości właściwości name z odpowiedzi jako templateName. Ciąg znaków Brak. Tak.

Odpowiedź

Tekst wejściowy z wartościami określonych obiektów infoType zastąpionymi nazwami tych obiektów.

deidentifyWithType

Deidentyfikuje dane wrażliwe w treści tekstowej, zastępując każdą pasującą wartość nazwą obiektu infoType. Listę obiektów infoType znajdziesz w artykule Odwołanie do detektora obiektów infoType. To działanie maskuje te części text, które są określone przez właściwość infoTypes w konfiguracji rozszerzenia.

W przykładzie poniżej usługa rozpoznaje numer telefonu, a następnie zastępuje go nazwą samego obiektu infoType.

  • Wprowadzany tekst:

    John Smith, 123 Main St, Seattle, WA 98122, 206-555-0123.

  • Tekst wynikowy:

    John Smith, 123 Main St, Seattle, WA 98122, PHONE_NUMBER.

Składnia

<Action>deidentifyWithType</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify"
}]]></Input>

Przykład

W przykładzie poniżej dane wejściowe do zamaskowania to adres e-mail przechowywany w zmiennej przepływu input.email.address. Aby obsługiwać ten konkretny przykład, to rozszerzenie musi być skonfigurowane do obsługi obiektu infoType EMAIL_ADDRESS. Listę obiektów infoType znajdziesz w artykule Odwołanie do detektora obiektów infoType.

<Action>deidentifyWithType</Action>
<Input><![CDATA[{
    "text" : "{input.email.address}"
}]]></Input>

Dane wyjściowe tego przykładu będą wyglądać tak:

{"text":"EMAIL_ADDRESS"}

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
text Tekst do deidentyfikacji. Ciąg znaków Brak. Tak.

Odpowiedź

Tekst wejściowy z wartościami określonych obiektów infoType zastąpionymi nazwami tych obiektów. Na przykład:

{"text":"EMAIL_ADDRESS"}

redactImage

Utajnia tekst, który należy do jednej z kategorii obiektów infoType. Utajniona treść jest wykrywana i zasłaniana nieprzezroczystym prostokątem. To działanie maskuje te części image_data, które są określone przez właściwość infoTypes w konfiguracji rozszerzenia.

Listę obiektów infoType znajdziesz w artykule Odwołanie do detektora obiektów infoType.

Parametry żądania

<Action>redactImage</Action>
<Input><![CDATA[{
  "image_data" : "base64-encoded-image-to-analyze",
  "image_type" : "type-of-image"
}]]></Input>
Parametr Opis Typ Domyślny Wymagane
image_data Dane obrazu zakodowane w formacie Base64. Ciąg znaków Brak. Tak.
image_type Stała typu obrazu. Dostępne wartości to IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG, IMAGE_SVG. Ciąg znaków Brak. Tak.

Odpowiedź

Obraz z utajnionym tekstem.

Odwołanie do konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia do użytku w proxy interfejsu API użyj tych informacji. Aby dowiedzieć się, jak skonfigurować rozszerzenie za pomocą konsoli Apigee, przeczytaj artykuł Dodawanie i konfigurowanie rozszerzenia.

Wspólne właściwości rozszerzenia

Dla każdego rozszerzenia dostępne są poniższe właściwości.

Usługa Opis Domyślnie Wymagany
name Nazwa nadana konfiguracji rozszerzenia. Brak Tak
packageName Nazwa pakietu rozszerzeń podana przez Apigee Edge. Brak Tak
version Numer wersji pakietu rozszerzenia, z którego konfigurujesz rozszerzenie. Brak Tak
configuration Wartość konfiguracji specyficzna dla dodawanego rozszerzenia. Zobacz Właściwości tego pakietu rozszerzeń Brak Tak

Właściwości tego pakietu rozszerzenia

Określ wartości tych właściwości konfiguracji, które są specyficzne dla tego rozszerzenia.

Właściwość Opis Domyślny Wymagane
projectId Identyfikator projektu Google Cloud, w którym jest włączony Cloud Data Loss Prevention API. Brak. Tak.
infoTypes Typy informacji o danych wrażliwych. Jeśli pominiesz tę właściwość, usługa wykryje wszystkie wbudowane typy. Listę obiektów infoType obsługiwanych przez usługę Google Cloud DLP znajdziesz w artykule Odwołanie do detektora obiektów infoType. Brak. Nie.
credentials Jeśli wpiszesz tę wartość w konsoli Apigee Edge, będzie to zawartość pliku klucza konta usługi. Jeśli wyślesz ją za pomocą Management API, będzie to wartość zakodowana w formacie Base64 wygenerowana z pliku klucza konta usługi. Brak. Tak.