Rozszerzenie Google Cloud Data Loss Prevention

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info

Wersja: 2.0.2

Użyj tego rozszerzenia, aby ukryć dane wrażliwe w treściach i obrazach. Możesz na przykład zredagować numery kart kredytowych, imiona i nazwiska oraz numery PESEL.

Wymagania wstępne

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

  1. W projekcie włącz Google Cloud DLP API.

  2. Przyznaj uprawnienia na poziomie dostępu, który chcesz przyznać rozszerzeniu.

  3. Wygeneruj klucz konta usługi za pomocą konsoli Google Cloud.

  4. Podczas dodawania i konfigurowania rozszerzenia za pomocą dokumentacji konfiguracji użyj zawartości utworzonego pliku JSON z kluczem.

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

Poniższe przykłady pokazują, 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 śledzenia.

Maska z gwiazdami

W tym przykładzie użyto działania deidentifyWithMask, aby zamaskować określone typy tekstu znakiem podanym w zasadach – w tym przypadku znakiem *.

Zasada AssignMessage poniżej ustawia zmienną request.content w celach ilustracyjnych. Zazwyczaj pobierasz treść żądania 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>

Poniższe zasady ExtensionCallout pobierają wartość zmiennej request.content i przekazują ją do rozszerzenia Cloud DLP (w tym przypadku o nazwie example-dlp). To rozszerzenie zostało skonfigurowane tak, aby maskować wartości na podstawie infoTypes URLEMAIL_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>

Ta zasada AssignMessage pobiera dane wyjściowe rozszerzenia, aby wyświetlić je 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>

Poniżej znajdziesz przykład danych wyjściowych tego kodu.

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

Maska z nazwą

W tym przykładzie użyto działania deidentifyWithType, aby zamaskować określone typy tekstu za pomocą nazwy typu informacji. Na przykład adres e-mail gladys@example.com zostanie zastąpiony adresem EMAIL_ADDRESS.

Zasada AssignMessage poniżej ustawia zmienną request.content w celach ilustracyjnych. Zazwyczaj pobierasz treść żądania 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>

Poniższe zasady ExtensionCallout pobierają wartość zmiennej request.content i przekazują ją do rozszerzenia Cloud DLP (w tym przypadku o nazwie example-dlp). To rozszerzenie zostało skonfigurowane tak, aby maskować wartości na podstawie infoTypes URL i 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>

Ta zasada AssignMessage pobiera dane wyjściowe rozszerzenia, aby wyświetlić je 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>

Poniżej znajdziesz przykład danych wyjściowych tego kodu.

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

Działania

deidentifyWithMask

Deidentyfikuj dane wrażliwe z text i zamaskuj je znakiem 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 (#). Rodzaje 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 poniższym przykładzie danymi wejściowymi do maskowania jest adres e-mail przechowywany w zmiennej przepływu input.email.address. Aby obsługiwać ten konkretny przykład, rozszerzenie musi być skonfigurowane do obsługi typu informacji EMAIL_ADDRESS. Listę obiektów infoType znajdziesz w dokumentacji wzorców do wykrywania obiektów infoType.

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

Dane wyjściowe w tym przykładzie będą wyglądać tak:

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

Parametry żądania

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

Odpowiedź

Tekst wejściowy, w którym wartości określonych obiektów infoType zostały zastąpione określonym znakiem. Na przykład

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

deidentifyWithTemplate

Deidentyfikuj dane wrażliwe w treści tekstowej za pomocą szablonu, który konfiguruje, jaki tekst ma być deidentyfikowany i jak ma być przetwarzany.

Szablony są przydatne do oddzielania konfiguracji, np. tego, co sprawdzasz i jak usuwasz dane umożliwiające identyfikację, 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ślasz infoTypes reprezentujące treści, które mają zostać poddane deidentyfikacji. Listę obiektów infoType znajdziesz w dokumentacji wzorców do wykrywania 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 anonimizacji 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>

W tym przykładzie dane wyjściowe to zanonimizowana treść żądania.

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
tekst Tekst do deidentyfikacji. Na tym polega proces deidentyfikacji. Obiekt Brak. Tak.
templateName Szablon do użycia. Będzie to ścieżka do szablonu w formacie projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Gdy tworzysz szablon za pomocą interfejsu API Google, użyj wartości właściwości name odpowiedzi jako templateName. Ciąg znaków Brak. Tak.

Odpowiedź

Tekst wejściowy, w którym wartości określonych obiektów infoType zostały zastąpione 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 dokumentacji wzorców do wykrywania 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 poniższym przykładzie 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 wyniku:

    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 poniższym przykładzie danymi wejściowymi do maskowania jest adres e-mail przechowywany w zmiennej przepływu input.email.address. Aby obsługiwać ten konkretny przykład, rozszerzenie musi być skonfigurowane do obsługi typu informacji EMAIL_ADDRESS. Listę obiektów infoType znajdziesz w dokumentacji wzorców do wykrywania obiektów infoType.

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

Dane wyjściowe w tym przykładzie będą wyglądać tak:

{"text":"EMAIL_ADDRESS"}

Parametry żądania

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

Odpowiedź

Tekst wejściowy, w którym wartości określonych obiektów infoType zostały zastąpione nazwami tych obiektów. Na przykład

{"text":"EMAIL_ADDRESS"}

redactImage

Zasłoń tekst, który należy do jednej z kategorii obiektów infoType. Wykryte treści są zasłaniane 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 dokumentacji wzorców do wykrywania 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 usuniętym tekstem.

Odwołanie do konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia do użycia w proxy interfejsów API postępuj zgodnie z tymi instrukcjami. Instrukcje konfigurowania rozszerzenia za pomocą konsoli Apigee znajdziesz w artykule Dodawanie i konfigurowanie rozszerzenia.

Wspólne właściwości rozszerzeń

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 rozszerzeń

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

Właściwość Opis Domyślny Wymagane
Identyfikator projektu Identyfikator projektu Google Cloud, w którym włączony jest interfejs Cloud Data Loss Prevention API. Brak. Tak.
infoTypes Typy informacji o danych wrażliwych. Jeśli zostanie pominięty, usługa wykryje wszystkie wbudowane typy. Listę typów informacji obsługiwanych przez usługę Google Cloud DLP znajdziesz w dokumentacji detektora typów informacji. Brak. Nie.
dane logowania Po wpisaniu w konsoli Apigee Edge jest to zawartość pliku klucza konta usługi. W przypadku wysyłania za pomocą interfejsu Management API jest to wartość zakodowana w formacie base64 wygenerowana z pliku klucza konta usługi. Brak. Tak.