Rozszerzenie Google Cloud Data Loss Prevention

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Wersja: 1.5.2

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

Wymagania wstępne

W tym artykule znajdziesz informacje na temat konfigurowania i używania tego rozszerzenia. Zanim użyjesz rozszerzenia z serwera proxy interfejsu API za pomocą zasady ExtensionCallout, musisz:

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

  2. Przyznaj uprawnienia poziom dostępu rozszerzenia.

  3. Wygeneruj klucz dla konta usługi za pomocą konsoli GCP.

  4. Użyj zawartości wynikowego pliku JSON klucza podczas dodawania i konfigurowania rozszerzenia w dokumentacji konfiguracji.

Informacje o usłudze Cloud Data Loss Prevention (DLP)

Cloud Data Loss Prevention (DLP) to interfejs API służący 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 udostępnianym przez to rozszerzenie znajdziesz w artykule na temat interfejsu 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 poniższych przykładach użyliśmy zasady AssignMessage do ustawiania wartości zmiennych przepływu i pobierania wartości odpowiedzi rozszerzenia do wyświetlenia w narzędziu do śledzenia.

Maska z gwiazdkami

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

Poniższe zasady AssignMessage ustawiają zmienną request.content w celach ilustracyjnych. Zwykle pobiera się 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>

Ta zasada ExtensionCallout pobiera wartość zmiennej request.content i przekazuje ją do rozszerzenia Cloud DLP (o nazwie example-dlp). To rozszerzenie zostało skonfigurowane do maskowania 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>

Poniższa zasada AssignMessage pobiera dane wyjściowe rozszerzenia do wyświetlenia 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ładowe dane wyjściowe 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ą samej nazwy obiektu infoType. Zastąpi on na przykład adres gladys@example.com adresem EMAIL_ADDRESS.

Poniższe zasady AssignMessage ustawiają zmienną request.content w celach ilustracyjnych. Zwykle pobiera się 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>

Ta zasada ExtensionCallout pobiera wartość zmiennej request.content i przekazuje ją do rozszerzenia Cloud DLP (tutaj o nazwie example-dlp). To rozszerzenie zostało skonfigurowane do maskowania 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>

Poniższa zasada AssignMessage pobiera dane wyjściowe rozszerzenia do wyświetlenia 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ładowe dane wyjściowe tego kodu.

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

Działania

deidentifyWithMask

Deidentyfikuj dane wrażliwe z elementu text i zamaskuj je znakiem mask. To działanie maskuje te części elementu text określone przez właściwość infoTypes w konfiguracji rozszerzenia.

Maskowanie danych wrażliwych powoduje zastąpienie znaków symbolem, np. gwiazdki (*) lub krzyżyka (#). Typy danych wrażliwych można określić 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 dane do zamaskowania to adres e-mail zapisany 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 dokumentacji funkcji wykrywania obiektów InfoType.

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

W tym przykładzie dane wyjściowe będą następujące:

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

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
tekst Tekst do deidentyfikacji. 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 z wartościami określonych obiektów infoType zastąpione określonym znakiem. Na przykład

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

deidentifyWithTemplate

Deidentyfikuj dane wrażliwe w tekście za pomocą szablonu, który określa, jaki tekst ma być deidentyfikowany i jak ma być obsługiwany.

Szablony przydają się do oddzielania konfiguracji, na przykład do sprawdzania i deidentyfikacji danych od implementacji wywołań interfejsu API. Szablony umożliwiają ponowne wykorzystywanie konfiguracji i zapewniają spójność między użytkownikami i zbiorami danych.

W szablonie musisz określić infoTypes reprezentujące treść do deidentyfikacji. Listę obiektów infoType znajdziesz w dokumentacji detektora InfoType. Deidentyfikacja powoduje maskowanie tych fragmentów tekstu określonych 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 poniższym przykładzie dane do deidentyfikacji to treść żądania przenoszona przez zmienną przepływu request.content.

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

W tym przykładzie będzie to zdezidentyfikowana treść żądania.

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
tekst Tekst do deidentyfikacji. Na tym polega proces deidentyfikacji. Obiekt Brak. Tak.
templateName Szablon, który ma zostać użyty. To będzie ścieżka do szablonu w następującym formacie: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Podczas tworzenia szablonu za pomocą interfejsu Google API użyj wartości właściwości name odpowiedzi jako templateName. Ciąg znaków Brak. Tak.

Odpowiedź

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

deidentifyWithType

Deidentyfikacja danych wrażliwych w treści tekstowej, zastępując każdą dopasowaną wartość nazwą obiektu infoType. Listę obiektów infoType znajdziesz w dokumentacji detektora InfoType. To działanie maskuje te części elementu text określone przez właściwość infoTypes w konfiguracji rozszerzenia.

W poniższym przykładzie numer telefonu jest rozpoznawany przez usługę, a następnie zastępowany nazwą samego obiektu infoType.

  • Tekst wejściowy:

    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 dane do zamaskowania to adres e-mail zapisany 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 dokumentacji funkcji wykrywania obiektów InfoType.

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

W tym przykładzie dane wyjściowe będą następujące:

{"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 z wartościami określonych obiektów infoType zastąpione nazwami obiektów infoType. Na przykład

{"text":"EMAIL_ADDRESS"}

redactImage

Usuń tekst, który należy do jednej z kategorii obiektów infoType. Usunięte treści są wykrywane i zasłonięte nieprzezroczystym prostokątem. To działanie maskuje te części elementu image_data określone przez właściwość infoTypes w konfiguracji rozszerzenia.

Listę obiektów infoType znajdziesz w dokumentacji detektora 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 oraz IMAGE_SVG. Ciąg znaków Brak. Tak.

Odpowiedź

Obraz z tekstem usunięty.

Odniesienie do konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia na potrzeby serwerów proxy interfejsu API użyj poniższych wskazówek. Instrukcje konfigurowania rozszerzenia za pomocą konsoli Apigee znajdziesz w artykule Dodawanie i konfigurowanie rozszerzenia.

Typowe 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 następujących właściwości konfiguracji specyficznych dla tego rozszerzenia.

Właściwość Opis Domyślny Wymagane
Identyfikator projektu Identyfikator projektu GCP, w którym włączono interfejs Cloud Data Loss Prevention API. Brak. Tak.
infoTypes Typy informacji dotyczących danych wrażliwych. Jeśli nazwa zostanie pominięta, usługa wykryje wszystkie wbudowane typy. Listę obiektów infoType obsługiwanych przez usługę Google Cloud DLP znajdziesz w artykule Informacje o wykrywaniu obiektów InfoType. Brak. Nie.
dane logowania Wprowadzona w konsoli Apigee Edge plik ten zawiera zawartość pliku klucza konta usługi. W przypadku wysyłania przez interfejs API zarządzania jest to wartość zakodowana w formacie base64 generowana na podstawie pliku klucza konta usługi. Brak. Tak.