Rozszerzenie Google Cloud Data Loss Prevention

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Wersja: 1.5.1

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

Wymagania wstępne

Ta treść zawiera informacje na temat konfigurowania tego rozszerzenia i korzystania z niego. Zanim użyjesz zasady ExtensionCallout, musisz użyć rozszerzenia z serwera proxy interfejsu API:

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

  2. Przyznaj uprawnienia związane z wybranym rozszerzeniem.

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

  4. Podczas dodawania i konfigurowania rozszerzenia przy użyciu dokumentu dotyczącego konfiguracji użyj zawartości powstałego klucza pliku JSON.

Informacje o 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 omówieniu DLP. Informacje o interfejsie API ujawnianym przez to rozszerzenie znajdziesz w artykule Cloud Data Loss Prevention (DLP) API.

Sample

Przykłady poniżej pokazują, jak skonfigurować obsługę działań rozszerzenia Cloud DLP za pomocą zasady ExtensionCallout.

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

Maska z gwiazdami

W tym przykładzie użyto działania deidentifyWithMask do maskowania określonych typów tekstu za pomocą znaku określonego w zasadzie, w tym przypadku znaku *.

Poniższa zasada AssignMessage ustawia 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>

Poniższa zasada ExtensionCallout pobiera wartość zmiennej request.content i przekazuje ją do rozszerzenia Cloud DLP (tutaj o nazwie example-dlp). To rozszerzenie zostało skonfigurowane w taki sposób, 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>

Poniższa zasada AssignMessage pobiera dane wyjściowe rozszerzenia do wyświetlenia w narzędziu do śledzenia.

<?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 do maskowania określonych typów tekstu za pomocą nazwy obiektu infoType. Spowoduje to na przykład zastąpienie adresu e-mail gladys@example.com adresem EMAIL_ADDRESS.

Poniższa zasada AssignMessage ustawia 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>

Poniższa zasada ExtensionCallout pobiera wartość zmiennej request.content i przekazuje ją do rozszerzenia Cloud DLP (tutaj 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>

Poniższa zasada AssignMessage pobiera dane wyjściowe rozszerzenia do wyświetlenia w narzędziu do śledzenia.

<?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 maskuj 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 zastępuje znaki, takie jak gwiazdka (*) lub hasz (#). 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 można było skorzystać z tego konkretnego przykładu, to rozszerzenie musi zostać skonfigurowane do obsługi obiektu infoType EMAIL_ADDRESS. Listę obiektów infoType znajdziesz w dokumentacji 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ślne Wymagane
plik tekstowy, 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. Przykład:

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

deidentifyWithTemplate

Deidentyfikuj dane wrażliwe w treści tekstowej za pomocą szablonu, który konfiguruje tekst do deidentyfikacji i sposób postępowania z nim.

Szablony przydają się do oddzielania konfiguracji, np. do elementów sprawdzanych i sposobu deidentyfikacji jej z implementacji wywołań interfejsu API. Szablony umożliwiają ponowne wykorzystywanie konfiguracji i zapewniają spójność między użytkownikami i zbiorami danych.

W szablonie określisz infoTypes reprezentujące treści, które mają zostać deidentyfikowane. Listę obiektów infoType znajdziesz w dokumentacji wzorca do wykrywania obiektów InfoType. Deidentyfikacja maskuje te części tekstu 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 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>

Dane wyjściowe w tym przykładzie to zdezidentyfikowana treść żądania.

Parametry żądania

Parametr Opis Typ Domyślne Wymagane
plik tekstowy, Tekst do deidentyfikacji. Na tym polega proces deidentyfikacji. Obiekt Brak. Tak.
templateName Szablon, którego chcesz użyć. 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 właściwości templateName. Ciąg znaków Brak. Tak.

Odpowiedź

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

deidentifyWithType

Deidentyfikuj dane wrażliwe w treściach tekstowych, zastępując każdą pasującą wartość nazwą obiektu infoType. Listę obiektów infoType znajdziesz w dokumentacji wzorca do wykrywania obiektów 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ą 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 można było skorzystać z tego konkretnego przykładu, to rozszerzenie musi zostać skonfigurowane do obsługi obiektu infoType EMAIL_ADDRESS. Listę obiektów infoType znajdziesz w dokumentacji 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ślne Wymagane
plik tekstowy, Tekst do deidentyfikacji. Ciąg znaków Brak. Tak.

Odpowiedź

Tekst wejściowy z wartościami określonych obiektów infoType zastąpiono nazwami obiektów infoType. Przykład:

{"text":"EMAIL_ADDRESS"}

redactImage

Usuń tekst, który należy do jednej z kategorii obiektów infoType. Treść objęta pomijaniem jest wykrywana i zasłaniana 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 wzorca 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ślne 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.

Dokumentacja konfiguracji

Skorzystaj z podanych niżej instrukcji podczas konfigurowania i wdrażania tego rozszerzenia na potrzeby serwerów proxy interfejsów API. Instrukcje konfigurowania rozszerzenia w 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ń

Podaj wartości następujących właściwości konfiguracji specyficznych dla tego rozszerzenia.

Właściwość Opis Domyślne Wymagane
projectId Identyfikator projektu GCP, w którym włączony jest interfejs Cloud Data Loss Prevention API. Brak. Tak.
infoTypes Typy informacji dotyczących danych wrażliwych. Jeśli go pominiesz, usługa wykryje wszystkie wbudowane typy. Listę obiektów infoType obsługiwanych przez usługę Google Cloud DLP znajdziesz w dokumentacji wzorca do wykrywania obiektów InfoType. Brak. Nie.
dane logowania Wpisana w konsoli Apigee Edge jest to zawartość pliku klucza konta usługi. Gdy jest wysyłana przez interfejs API zarządzania, jest to wartość zakodowana w formacie base64 wygenerowana z pliku klucza konta usługi. Brak. Tak.