Google Cloud-Erweiterung zum Schutz vor Datenverlust

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Version: 1.3.0

Mit dieser Erweiterung können Sie sensible Daten vor Inhalten und Bildern verbergen. Sie können beispielsweise Kreditkartennummern, Namen und Sozialversicherungsnummern entfernen.

Voraussetzungen

In diesem Artikel erfahren Sie, wie Sie diese Erweiterung konfigurieren und verwenden. Bevor Sie die Erweiterung mithilfe der ExtensionCallout-Richtlinie von einem API-Proxy verwenden, müssen Sie Folgendes tun:

  1. Aktivieren Sie die Google Cloud DLP API für Ihr Projekt.

  2. Erteilen Sie die Berechtigung für die gewünschte Zugriffsebene für die Erweiterung.

  3. Verwenden Sie die GCP Console, um einen Schlüssel für das Dienstkonto zu generieren.

  4. Verwenden Sie den Inhalt der resultierenden JSON-Schlüssel-JSON-Datei beim Hinzufügen und Konfigurieren der Erweiterung mithilfe der Konfigurationsreferenz.

Informationen zu Cloud Data Loss Prevention (DLP)

Cloud Data Loss Prevention (DLP) ist eine API für die Prüfung von Text, Bildern und anderen Daten, um sensible Daten zu identifizieren und zu verwalten.

Weitere Informationen finden Sie in der Übersicht zum Schutz vor Datenverlust. Informationen zur API, die diese Erweiterung bereitstellt, finden Sie unter Cloud Data Loss Prevention (DLP) API.

Samples

Die folgenden Beispiele veranschaulichen, wie die Unterstützung für Cloud DLP-Erweiterungsaktionen mithilfe der ExtensionCallout-Richtlinie konfiguriert wird.

Damit Sie den Beispielcode leichter ausprobieren können, wird in diesen Beispielen eine AssignMessage-Richtlinie verwendet, um Werte für Flussvariablen festzulegen und Antwortwerte von Erweiterungen abzurufen, die dann im Trace-Tool angezeigt werden.

Maske mit Sternen

In diesem Beispiel wird die Aktion deidentifyWithMask verwendet, um die angegebenen Texttypen mit einem in der Richtlinie festgelegten Zeichen zu maskieren – hier mit dem Zeichen *.

Mit der folgendenAssignMessage-Richtlinie wird die Variable request.content zur Veranschaulichung festgelegt. Normalerweise rufen Sie den Inhalt der Anfrage aus der Anfrage des Clients ab.

<?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>

Die folgende ExtensionCallout-Richtlinie ruft den Wert der Variablen "request.content" ab und übergibt ihn an eine Cloud DLP-Erweiterung (hier example-dlp genannt). Diese Erweiterung wurde so konfiguriert, dass Werte basierend auf den infoTypes URL und EMAIL_ADDRESS maskiert werden.

<?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>

Mit der folgendenAssignMessage-Richtlinie wird die Ausgabe der Erweiterung zur Anzeige im Trace-Tool abgerufen.

<?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>

Im Folgenden finden Sie ein Beispiel für die Ausgabe dieses Codes.

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

Maske mit Namen

In diesem Beispiel werden mit der Aktion deidentifyWithType die angegebenen Texttypen mit dem infoType-Namen selbst maskiert. So wird z. B. die E-Mail-Adresse gladys@example.com durch EMAIL_ADDRESS ersetzt.

Mit der folgendenAssignMessage-Richtlinie wird die Variable request.content zur Veranschaulichung festgelegt. Normalerweise rufen Sie den Inhalt der Anfrage aus der Anfrage des Clients ab.

<?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>

Die folgende ExtensionCallout-Richtlinie ruft den Variablenwert request.content ab und übergibt ihn an eine Cloud DLP-Erweiterung (hier example-dlp genannt). Diese Erweiterung wurde so konfiguriert, dass Werte basierend auf den infoTypes URL und EMAIL_ADDRESS maskiert.

<?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>

Mit der folgendenAssignMessage-Richtlinie wird die Ausgabe der Erweiterung zur Anzeige im Trace-Tool abgerufen.

<?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>

Im Folgenden finden Sie ein Beispiel für die Ausgabe dieses Codes.

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

Aktionen

deidentifyWithMask

De-identifizieren Sie die sensiblen Daten aus text und maskieren Sie sie mit dem Zeichen mask. Durch diese Aktion werden die Teile von text maskiert, die in der Erweiterungskonfiguration mit der Eigenschaft infoTypes angegeben wurden.

Beim Maskieren sensibler Daten werden Zeichen durch ein Symbol ersetzt, z. B. ein Sternchen (*) oder Rautezeichen (#). Die Typen sensibler Daten können in der Erweiterungskonfiguration konfiguriert werden.

Syntax

<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify",
  "mask" : "masking-character"
}]]></Input>

Beispiel

Im folgenden Beispiel ist die Eingabe zum Maskieren eine E-Mail-Adresse, die in einer input.email.address-Ablaufvariablen gespeichert wird. Damit dieses Beispiel unterstützt werden kann, muss diese Erweiterung so konfiguriert worden sein, dass sie den infoType EMAIL_ADDRESS unterstützt. Eine Liste der infoTypes finden Sie in der infoType-Detektorreferenz.

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

Die Ausgabe für dieses Beispiel würde so aussehen:

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

Anfrageparameter

Parameter Beschreibung Typ Standard Erforderlich
Text Zu de-identifizierender Text. String Keine. Ja.
Maske Zeichen zum Maskieren sensibler Daten. String Keine. Ja.

Antwort

Der Eingabetext mit Werten der angegebenen infoTypes, die durch das angegebene Zeichen ersetzt wurden. Beispiel:

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

deidentifyWithTemplate

De-identifizieren Sie sensible Daten in Textinhalten mithilfe einer Vorlage, die konfiguriert, welcher Text de-identifiziert werden soll und wie er behandelt werden soll.

Vorlagen sind nützlich, um Konfigurationen zu entkoppeln, z. B. was Sie überprüfen und wie Sie diese von der Implementierung Ihrer API-Aufrufe de-identifizieren. Vorlagen bieten eine Möglichkeit, Konfigurationen noch einmal zu verwenden und für Konsistenz bei Nutzern und Datensätzen zu sorgen.

In Ihrer Vorlage geben Sie infoTypes für die zu de-identifizierenden Inhalte an. Eine Liste der infoTypes finden Sie in der infoType-Detektorreferenz. Bei der De-Identifikation werden die Textteile, die durch das Attribut infoTypes in der Vorlage angegeben werden, maskiert.

Syntax

<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify"
  "templateName" : "path-to-template"
}]]></Input>

Beispiel

Im folgenden Beispiel ist die Eingabe für die De-Identifikation der Anfragetext, der von der Flussvariablen request.content übertragen wird.

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

In diesem Beispiel wird der de-identifizierte Anfrageinhalt ausgegeben.

Anfrageparameter

Parameter Beschreibung Typ Standard Erforderlich
Text Der zu de-identifizierende Text. Damit wird der De-Identifikationsprozess ausgeführt. Objekt Keine. Ja.
templateName Die zu verwendende Vorlage. Dies wird ein Pfad zur Vorlage im folgenden Format sein: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Verwenden Sie beim Erstellen der Vorlage mit der Google API den Eigenschaftswert name der Antwort als templateName. String Keine. Ja.

Antwort

Der Eingabetext mit Werten der angegebenen infoTypes, die durch die infoType-Namen ersetzt wurden.

deidentifyWithType

De-identifizieren Sie sensible Daten in Textinhalten und ersetzen Sie jeden übereinstimmenden Wert durch den Namen des infoType. Eine Liste der infoTypes finden Sie in der infoType-Detektorreferenz. Durch diese Aktion werden die Teile von text maskiert, die in der Erweiterungskonfiguration mit der Eigenschaft infoTypes angegeben wurden.

Im folgenden Beispiel wird die Telefonnummer vom Dienst erkannt und dann durch den Namen des infoType selbst ersetzt.

  • Eingabetext:

    John Smith, 123 Main St, Seattle, WA 98122, 206-555-0123.

  • Ergebnistext:

    John Smith, 123 Main St, Seattle, WA 98122, PHONE_NUMBER.

Syntax

<Action>deidentifyWithType</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify"
}]]></Input>

Beispiel

Im folgenden Beispiel ist die Eingabe zum Maskieren eine E-Mail-Adresse, die in einer input.email.address-Ablaufvariablen gespeichert wird. Damit dieses Beispiel unterstützt werden kann, muss diese Erweiterung so konfiguriert worden sein, dass sie den infoType EMAIL_ADDRESS unterstützt. Eine Liste der infoTypes finden Sie in der infoType-Detektorreferenz.

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

Die Ausgabe für dieses Beispiel würde so aussehen:

{"text":"EMAIL_ADDRESS"}

Anfrageparameter

Parameter Beschreibung Typ Standard Erforderlich
Text Der zu de-identifizierende Text. String Keine. Ja.

Antwort

Der Eingabetext mit Werten der angegebenen infoTypes, die durch die infoType-Namen ersetzt wurden. Beispiel:

{"text":"EMAIL_ADDRESS"}

redactImage

Text entfernen, der in eine der infoType-Kategorien fällt. Der entfernte Inhalt wird erkannt und durch ein undurchsichtiges Rechteck verdeckt. Durch diese Aktion werden die Teile von image_data maskiert, die in der Erweiterungskonfiguration mit der Eigenschaft infoTypes angegeben wurden.

Eine Liste der infoTypes finden Sie in der infoType-Detektorreferenz.

Anfrageparameter

<Action>redactImage</Action>
<Input><![CDATA[{
  "image_data" : "base64-encoded-image-to-analyze",
  "image_type" : "type-of-image"
}]]></Input>
Parameter Beschreibung Typ Standard Erforderlich
image_data Die in base64 codierten Bilddaten. String Keine. Ja.
image_type Konstante des Bildtyps Verfügbare Werte sind IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG und IMAGE_SVG. String Keine. Ja.

Antwort

Bild mit entferntem Text.

Konfigurationsreferenz

Verwenden Sie Folgendes, wenn Sie diese Erweiterung zur Verwendung in API-Proxys konfigurieren und bereitstellen. Eine Anleitung zum Konfigurieren einer Erweiterung mit der Apigee-Konsole finden Sie unter Erweiterung hinzufügen und konfigurieren.

Häufige Erweiterungseigenschaften

Für jede Erweiterung sind die folgenden Eigenschaften vorhanden.

Attribut Beschreibung Standard Erforderlich
name Der Name, den Sie dieser Konfiguration der Erweiterung zuweisen. Ja
packageName Name des Erweiterungspakets, wie von Apigee Edge angegeben. Ja
version Versionsnummer für das Erweiterungspaket, von dem Sie eine Erweiterung konfigurieren. Ja
configuration Konfigurationswert speziell für die Erweiterung, die Sie hinzufügen. Weitere Informationen finden Sie unter Eigenschaften für dieses Erweiterungspaket. Ja

Eigenschaften dieses Erweiterungspakets

Geben Sie Werte für die folgenden Konfigurationseigenschaften an, die spezifisch für diese Erweiterung sind.

Property Beschreibung Standard Erforderlich
projectId Die ID des GCP-Projekts, für das die Cloud Data Loss Prevention API aktiviert ist. Keine. Ja.
infoTypes Infotypen der sensiblen Daten. Wenn nichts angegeben ist, erkennt der Dienst alle integrierten Typen. Eine Liste der vom Google Cloud DLP-Dienst unterstützten infoTypes finden Sie in der Referenz zu infoType-Detektoren. Keine. Nein.
Anmeldedaten Bei Eingabe in die Apigee Edge-Konsole ist dies der Inhalt Ihrer Dienstkonto-Schlüsseldatei. Wenn er über die Verwaltungs-API gesendet wird, ist er ein base64-codierter Wert, der aus der Schlüsseldatei des Dienstkontos generiert wird. Keine. Ja.