Rozszerzenie Google Cloud Data Loss Prevention

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

Wersja: 2.0.0

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

Wymagania wstępne

Te treści zawierają informacje na temat konfigurowania i używania tego rozszerzenia. Zanim użyjesz rozszerzenia z serwera proxy interfejsu API przy użyciu zasad dotyczących rozszerzeń, musisz:

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

  2. Przyznaj uprawnienia dla odpowiedniego poziomu dostępu, jaki chcesz przyznać rozszerzeniu.

  3. Wygeneruj klucz konta usługi w konsoli GCP.

  4. Użyj zawartości utworzonego pliku klucza JSON podczas dodawania i konfigurowania rozszerzenia za pomocą dokumentacji konfiguracji.

Zapobieganie utracie danych w usłudze 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 artykule Omówienie funkcji zapobiegania utracie danych (DLP). Informacje o interfejsie API udostępnianym przez to rozszerzenie znajdziesz w sekcji Cloud Data Loss Prevention (DLP) API.

Przykłady

Poniższe przykłady pokazują, jak skonfigurować obsługę działań rozszerzenia Cloud DLP za pomocą zapisu ExtensionCalloutPolicy.

Aby ułatwić testowanie tego przykładowego kodu, w tych przykładach użyto zapisu wiadomości przypisanej do ustawiania wartości zmiennych przepływu i pobierania wartości odpowiedzi rozszerzenia do wyświetlania w narzędziu do śledzenia.

Maska z gwiazdami

W tym przykładzie działanie deidentifyWithMask służy do maskowania określonych typów tekstu za pomocą znaku określonego w zasadach – w tym przykładzie jest to znak *.

W ramach tej zasady „Przypisz wiadomość” zmienna request.content jest ustawiana na potrzeby przykładu. Zazwyczaj pobierasz zawartość żą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ższa zasada ExtensionCallout pobiera wartość zmiennej request.content i przekazuje ją rozszerzeniu Cloud DLP (tutaj o nazwie example-dlp). 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>deidentifyWithMask</Action>
    <Input><![CDATA[{
        "text" : "{request.content}",
        "mask" : "*"
    }]]></Input>
    <Output>masked.output</Output>
</ConnectorCallout>

Podana niżej zasada przypisuje wiadomość, która pobiera dane wyjściowe rozszerzenia do wyświetlenia w narzędzie 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 z tego kodu.

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

Maska z nazwą

W tym przykładzie działanie deidentifyWithType służy do zamaskowania określonych typów tekstu nazwą typu informacji. Na przykład zastąpi adres e-mail gladys@example.com wartością EMAIL_ADDRESS.

W ramach tej zasady „Przypisz wiadomość” zmienna request.content jest ustawiana na potrzeby przykładu. Zazwyczaj pobierasz zawartość żą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ższa zasada ExtensionCallout pobiera wartość zmiennej request.content i przekazuje ją do rozszerzenia Cloud DLP (tutaj o nazwie example-dlp). Rozszerzenie zostało skonfigurowane tak, aby maskować wartości na podstawie atrybutów 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>

Podana niżej zasada przypisuje wiadomość, która pobiera dane wyjściowe rozszerzenia do wyświetlenia w narzędzie 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 z tego kodu.

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

Działania

deidentifyWithMask

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

Zamaskowanie danych wrażliwych polega na zastąpieniu znaków symbolem, np. gwiazdką (*) lub znakiem #. 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 tym przykładzie dane wejściowe do zamaskowania to adres e-mail przechowywany w zmiennej przepływu input.email.address. Aby ten przykład działał, rozszerzenie musi być skonfigurowane tak, aby obsługiwać typ informacji EMAIL_ADDRESS. Listę obiektów infoType znajdziesz w dokumentacji wzorca do wykrywania treści typu 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 do zamaskowania danych wrażliwych. Ciąg znaków Brak. Tak.

Odpowiedź

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

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

deidentifyWithTemplate

Deidentyfikuj dane wrażliwe w treści tekstowej, korzystając z szablonu, który konfiguruje, jaki tekst ma zostać zdeidentyfikowany i jak go przetworzyć.

Szablony są przydatne do rozdzielenia konfiguracji, np. tego, co sprawdzasz i jak deidentyfikujesz, od implementacji wywołań interfejsu API. Szablony umożliwiają ponowne używanie konfiguracji i zapewniają spójność wśród użytkowników i zbiorów danych.

W szablonie musisz określić infoTypes reprezentujące treści, które mają zostać zdeidentyfikowane. Listę obiektów infoType znajdziesz w sekcji Informacje o wzorcach do wykrywania typu InfoType. Funkcja deidentyfikowania 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 tym przykładzie dane wejściowe do anonimizacji to treść żądania przekazywana 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 zdezidentyfikowana treść prośby.

Parametry żądania

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

Odpowiedź

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

deidentifyWithType

Deidentyfikuj dane wrażliwe w treści tekstowej, zastępując każdą dopasowaną wartość nazwą obiektu infoType. Listę obiektów infoType znajdziesz w sekcji Informacje o wzorcach do wykrywania typu InfoType. To działanie maskuje te części text, które są określone przez właściwość infoTypeskonfiguracji rozszerzenia.

W tym przykładzie usługa rozpoznaje numer telefonu, a następnie zastępuje go nazwą 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 tym przykładzie dane wejściowe do zamaskowania to adres e-mail przechowywany w zmiennej przepływu input.email.address. Aby ten przykład działał, rozszerzenie musi być skonfigurowane tak, aby obsługiwać typ informacji EMAIL_ADDRESS. Listę obiektów infoType znajdziesz w dokumentacji wzorca do wykrywania treści typu 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, który ma zostać zdeidentyfikowany. Ciąg znaków Brak. Tak.

Odpowiedź

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

{"text":"EMAIL_ADDRESS"}

redactImage

Zasłoń tekst, który należy do jednej z kategorii infoType. Treści usunięte są wykrywane i zaciemniane za pomocą nieprzezroczystego prostokąta. To działanie maskuje te części image_data, które są określone przez właściwość infoTypeskonfiguracji rozszerzenia.

Listę obiektów infoType znajdziesz w sekcji Informacje o wzorcach do wykrywania typu 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łe 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.

Informacje o konfiguracji

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

Właściwości wspólne 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ń

Podaj 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 GCP, dla którego włączono interfejs Cloud Data Loss Prevention API. Brak. Tak.
infoTypes Typy informacji o danych wrażliwych. Jeśli nazwa zostanie pominięta, usługa wykryje wszystkie wbudowane typy. Listę typów informacji obsługiwanych przez usługę Google Cloud DLP znajdziesz w dokumentacji dotyczącej detektorów typów informacji. Brak. Nie.
dane logowania Gdy wpiszesz go w konsoli Apigee Edge, będzie to zawartość pliku klucza konta usługi. Gdy jest wysyłany za pomocą interfejsu API zarządzania, jest to wartość zakodowana w formacie base64 wygenerowana z pliku klucza konta usługi. Brak. Tak.