Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Wersja: 1.5.1
Użyj tego rozszerzenia, aby ukryć dane wrażliwe w treści i obrazach. Możesz na przykład utajnić numery kart kredytowych, imiona i nazwiska oraz numery ubezpieczenia społecznego.
Wymagania wstępne
Ta treść zawiera informacje o konfigurowaniu i używaniu tego rozszerzenia. Zanim zaczniesz korzystać z rozszerzenia w proxy interfejsu API za pomocą zasady ExtensionCallout, musisz:
włączyć Google Cloud DLP API w projekcie;
przyznać uprawnienia do poziomu dostępu, który chcesz uzyskać w rozszerzeniu;
wygenerować klucz konta usługi w konsoli Google Cloud Platform
podczas dodawania i konfigurowania rozszerzenia użyć zawartości wynikowego pliku JSON z kluczem, korzystając z odwołania do konfiguracji.
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
Z przykładów poniżej dowiesz się, 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 Trace.
Maskowanie gwiazdkami
W tym przykładzie używamy działania deidentifyWithMask, aby zamaskować określone typy tekstu za pomocą znaku określonego w zasadzie – w tym przypadku znaku *.
Zasada AssignMessage poniżej ustawia zmienną request.content na potrzeby ilustracji. Zwykle treść żądania pobierasz z żądania klienta.
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError=&q>uot;f<alse" >enabled=&quo<t;true"> name<="Set-Variable"
DisplayNameSe>t Var<iable/DisplayN>ame
A<ssig>nTo type="<respo>nse"< crea>teNew="false"/
AssignVariable
Namerequest.content/Na<me
> <ValueVisit my s>i<te at https://>example.com. Or contact me at gladys@example.com./Value
/AssignVariable
/AssignMessage
Zasada ExtensionCallout poniżej pobiera wartość zmiennej request.content i przekazuje ją do rozszerzenia Cloud DLP (w tym przypadku o nazwie example-dlp). To rozszerzenie zostało skonfigurowane tak, aby maskować wartości na podstawie obiektów infoType URL i EMAIL_ADDRESS infoTypes.
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ConnectorCallout async="false" continueOnError="true"> enab<led="t>rue" name="Data-Loss-Extensi<on-Callout&q>uot;
< Displ>ayNameData <Loss Preve>ntion< Exten>sion Callout/Displ<ayName
> C<onnec><torexample-dlp/Connector
ActiondeidentifyWithMask/Action
Input![CDAT><A[{
> < "text" :< ">{<request.content}&>quot;,
"mask" : "*"
}]]/Input
Outputmasked.output/Output
/ConnectorCallout
Zasada AssignMessage poniżej pobiera dane wyjściowe rozszerzenia w celu wyświetlenia ich w narzędziu Trace.
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError=&quo>t;fal<se" en>abled="tr<ue" nam>e=&qu<ot;Get-DLP-Output"
DisplayNameGet >DLP O<utp>ut/Displa<yName
AssignTo type="response>" createNe<w=">false<&quo>t<;/
Set
> Payload contentType="application/json"{masked.output}/Payload
/Set
/AssignMessage
Oto przykład danych wyjściowych tego kodu.
{"text":"Visit my site at ******************* Or contact me at *****************."}
Maskowanie nazwą
W tym przykładzie używamy działania deidentifyWithType, aby zamaskować określone typy tekstu za pomocą samej nazwy obiektu infoType. Na przykład adres e-mail gladys@example.com zostanie zastąpiony ciągiem EMAIL_ADDRESS.
Zasada AssignMessage poniżej ustawia zmienną request.content na potrzeby ilustracji. Zwykle treść żądania pobierasz z żądania klienta.
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError=&q>uot;f<alse" >enabled=&quo<t;true"> name<="Set-Variable"
DisplayNameSe>t Var<iable/DisplayN>ame
A<ssig>nTo type="<respo>nse"< crea>teNew="false"/
AssignVariable
Namerequest.content/Na<me
> <ValueVisit my s>i<te at https://>example.com. Or contact me at gladys@example.com./Value
/AssignVariable
/AssignMessage
Zasada ExtensionCallout poniżej pobiera wartość zmiennej request.content i przekazuje ją do rozszerzenia Cloud DLP (w tym przypadku o nazwie example-dlp). To rozszerzenie zostało skonfigurowane tak, aby maskować wartości na podstawie obiektów infoType URL i EMAIL_ADDRESS infoTypes.
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ConnectorCallout async="false" continueOnError="true"> enab<led="t>rue" name="Data-Loss-Extensi<on-Callout&q>uot;
< Displ>ayNameData <Loss Preve>ntion< Exten>sion Callout/Displ<ayName
> C<onnec><torexample-dlp/Connector
ActiondeidentifyWithType/><Action>
<Input!>[CDATA[{
< &quo<t;text" : &q>uot;{request.content}"
}]]/Input
Outputmasked.output/Output
/ConnectorCallout
Zasada AssignMessage poniżej pobiera dane wyjściowe rozszerzenia w celu wyświetlenia ich w narzędziu Trace.
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError=&quo>t;fal<se" en>abled="tr<ue" nam>e=&qu<ot;Get-DLP-Output"
DisplayNameGet >DLP O<utp>ut/Displa<yName
AssignTo type="response>" createNe<w=">false<&quo>t<;/
Set
> Payload contentType="application/json"{masked.output}/Payload
/Set
/AssignMessage
Oto przykład danych wyjściowych tego kodu.
{"text":"Visit my site at [URL] Or contact me at [EMAIL_ADDRESS]."}
Działania
deidentifyWithMask
Deidentyfikuje dane wrażliwe z text i maskuje je za pomocą znaku 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 (#). Typy danych wrażliwych można skonfigurować w konfiguracji rozszerzenia.
Składnia
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify",
"mask&q><uot; :> "masking-character"
}]]/Input
Przykład
W przykładzie poniżej dane wejściowe do zamaskowania to adres e-mail przechowywany 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 artykule Odwołanie do detektora obiektów infoType.
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{input.email.address}",
>< &q>u<ot;mas>k" : &qu<ot;*&qu>ot;
}]]/Input
Outputmasked.output/Output
Dane wyjściowe tego przykładu będą wyglądać tak:
{"text":"*****************"}
Parametry żądania
| Parametr | Opis | Typ | Domyślny | Wymagane |
|---|---|---|---|---|
| text | Tekst do deidentyfikacji. | Ciąg znaków | Brak. | Tak. |
| mask | 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ąpionymi określonym znakiem. Na przykład:
{"text":"*********"}
deidentifyWithTemplate
Deidentyfikuje dane wrażliwe w treści tekstowej za pomocą szablonu, który konfiguruje, jaki tekst ma zostać deidentyfikowany i jak go obsługiwać.
Szablony są przydatne do oddzielania konfiguracji, np. tego, co sprawdzasz i jak deidentyfikujesz, 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ślisz obiekty infoTypes reprezentujące treść do deidentyfikacji. Listę obiektów infoType znajdziesz w artykule Odwołanie do detektora 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&><quot; >: "path-to-template"
}]]/Input
Przykład
W przykładzie poniżej dane wejściowe do deidentyfikacji to treść żądania przenoszona przez request.content zmienną przepływu.
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "{request.content}"
"templateName" : "projects/[PROJECT_ID]/dei><dentif>yTemplates/1231258663242"
}]]/Input
Dane wyjściowe tego przykładu będą zawierać deidentyfikowaną treść żądania.
Parametry żądania
| Parametr | Opis | Typ | Domyślny | Wymagane |
|---|---|---|---|---|
| text | Tekst do deidentyfikacji. To jest to, na czym działa proces deidentyfikacji. | Obiekt | Brak. | Tak. |
| templateName | Szablon, którego chcesz użyć. Będzie to ścieżka do szablonu w postaci projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Gdy tworzysz szablon za pomocą interfejsu Google API, użyj wartości właściwości name z odpowiedzi jako templateName. |
Ciąg znaków | Brak. | Tak. |
Odpowiedź
Tekst wejściowy z wartościami określonych obiektów infoType zastąpionymi 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 artykule Odwołanie do detektora 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 przykładzie poniżej 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 wynikowy:
John Smith, 123 Main St, Seattle, WA 98122, PHONE_NUMBER.
Składnia
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "text-to-><deiden>tify"
}]]/Input
Przykład
W przykładzie poniżej dane wejściowe do zamaskowania to adres e-mail przechowywany 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 artykule Odwołanie do detektora obiektów infoType.
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{input.emai><l.addr>ess}"
}]]/Input
Dane wyjściowe tego przykładu będą wyglądać tak:
{"text":"EMAIL_ADDRESS"}
Parametry żądania
| Parametr | Opis | Typ | Domyślny | Wymagane |
|---|---|---|---|---|
| text | Tekst do deidentyfikacji. | Ciąg znaków | Brak. | Tak. |
Odpowiedź
Tekst wejściowy z wartościami określonych obiektów infoType zastąpionymi nazwami tych obiektów. Na przykład:
{"text":"EMAIL_ADDRESS"}
redactImage
Utajnia tekst, który należy do jednej z kategorii obiektów infoType. Utajniona treść jest wykrywana i zasłaniana 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 artykule Odwołanie do detektora obiektów infoType.
Parametry żądania
<Action>redactImage</Action>
<Input><![CDATA[{
"image_data" : "base64-encoded-image-to-analyze",
"image_ty><pe&quo>t; : "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 utajnionym tekstem.
Odwołanie do konfiguracji
Podczas konfigurowania i wdrażania tego rozszerzenia do użytku w proxy interfejsu API użyj tych informacji. Aby dowiedzieć się, jak skonfigurować rozszerzenie za pomocą konsoli Apigee, przeczytaj artykuł Dodawanie i konfigurowanie rozszerzenia.
Wspólne właściwości rozszerzenia
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 rozszerzenia
Określ wartości tych właściwości konfiguracji, które są specyficzne dla tego rozszerzenia.
| Właściwość | Opis | Domyślny | Wymagane |
|---|---|---|---|
| projectId | Identyfikator projektu Google Cloud, w którym jest włączony Cloud Data Loss Prevention API. | Brak. | Tak. |
| infoTypes | Typy informacji o danych wrażliwych. Jeśli pominiesz tę właściwość, usługa wykryje wszystkie wbudowane typy. Listę obiektów infoType obsługiwanych przez usługę Google Cloud DLP znajdziesz w artykule Odwołanie do detektora obiektów infoType. | Brak. | Nie. |
| credentials | Jeśli wpiszesz tę wartość w konsoli Apigee Edge, będzie to zawartość pliku klucza konta usługi. Jeśli wyślesz ją za pomocą Management API, będzie to wartość zakodowana w formacie Base64 wygenerowana z pliku klucza konta usługi. | Brak. | Tak. |