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:
Włącz interfejs Google Cloud DLP API w swoim projekcie.
Przyznaj uprawnienia poziom dostępu rozszerzenia.
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. |