Google Cloud-Erweiterung zum Schutz vor Datenverlust

Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an.
info

Version: 2.0.0

Mit dieser Erweiterung können Sie sensible Daten in Inhalten und Bildern unkenntlich machen. Sie können beispielsweise Kreditkartennummern, Namen und Sozialversicherungsnummern schwärzen.

Vorbereitung

Dieser Artikel enthält eine Referenz zum Konfigurieren und Verwenden dieser Erweiterung. Bevor Sie die Erweiterung über einen API-Proxy mit der ExtensionCallout-Richtlinie verwenden können, müssen Sie Folgendes tun:

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

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

  3. Erstellen Sie mit der GCP Console einen Schlüssel für das Dienstkonto.

  4. Verwenden Sie den Inhalt der resultierenden JSON-Schlüsseldatei, wenn Sie die Erweiterung mithilfe der Konfigurationsreferenz hinzufügen und konfigurieren.

Cloud Data Loss Prevention (DLP)

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

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

Beispiele

In den folgenden Beispielen wird gezeigt, wie Sie die Unterstützung für Cloud DLP-Erweiterungsaktionen mithilfe der ExtensionCallout-Richtlinie konfigurieren.

Um das Testen dieses Beispielcodes zu vereinfachen, wird in diesen Beispielen eine AssignMessage-Richtlinie verwendet, um Werte für Ablaufvariablen festzulegen und Erweiterungsantwortwerte abzurufen, die im Trace-Tool angezeigt werden.

Mit Sternen maskieren

In diesem Beispiel werden die angegebenen Texttypen mit dem in der Richtlinie angegebenen Zeichen maskiert, hier das Zeichen *.deidentifyWithMask

In der folgenden AssignMessage-Richtlinie wird die Variable request.content zu Veranschaulichungszwecken festgelegt. Normalerweise rufst du den Anfrageinhalt 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>

In der folgenden ExtensionCallout-Richtlinie wird der Variablenwert „request.content“ abgerufen und an eine Cloud DLP-Erweiterung (hier example-dlp genannt) übergeben. 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 folgenden AssignMessage-Richtlinie wird die Ausgabe der Erweiterung abgerufen, um sie im Trace-Tool anzuzeigen.

<?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 *****************."}

Mit Namen maskieren

In diesem Beispiel wird die Aktion deidentifyWithType verwendet, um die angegebenen Texttypen mit dem Namen des Infotyps selbst zu maskieren. Beispiel: Die E-Mail-Adresse gladys@example.com wird durch EMAIL_ADDRESS ersetzt.

In der folgenden AssignMessage-Richtlinie wird die Variable request.content zu Demonstrationszwecken festgelegt. Normalerweise rufst du den Anfrageinhalt 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). 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>deidentifyWithType</Action>
    <Input><![CDATA[{
        "text" : "{request.content}"
    }]]></Input>
    <Output>masked.output</Output>
</ConnectorCallout>

Mit der folgenden AssignMessage-Richtlinie wird die Ausgabe der Erweiterung abgerufen, um sie im Trace-Tool anzuzeigen.

<?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 die Daten mit dem Zeichen mask. Mit dieser Aktion werden die Teile von text ausgeblendet, die in der Erweiterungskonfiguration durch das Attribut infoTypes angegeben sind.

Beim Maskieren sensibler Daten werden Zeichen durch ein Symbol ersetzt, z. B. ein Sternchen (*) oder eine Raute (#). Die Typen der sensiblen 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, die maskiert werden soll, eine E-Mail-Adresse, die in einer Ablaufvariablen vom Typ input.email.address gespeichert ist. Für dieses Beispiel muss diese Erweiterung für den InfoType EMAIL_ADDRESS konfiguriert worden sein. Eine Liste der InfoTypes finden Sie in der Referenz zu infoType-Detektoren.

<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 Text, der de-identifiziert werden soll. String Keine. Ja.
Maske Zeichen, mit dem sensible Daten maskiert werden. String Keine. Ja.

Antwort

Der Eingabetext mit Werten der angegebenen infoTypes wird durch das angegebene Zeichen ersetzt. Beispiel:

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

deidentifyWithTemplate

Mit einer Vorlage sensible Daten in Textinhalten de-identifizieren. In der Vorlage wird konfiguriert, welcher Text de-identifiziert werden soll und wie er verarbeitet werden soll.

Vorlagen bieten sich an, wenn Sie Konfigurationsinformationen entkoppeln möchten, z. B. was Sie überprüfen und wie Sie dessen Identifizierung bei der Implementierung Ihrer API-Aufrufe aufheben. Mit Vorlagen können Sie Konfigurationen wiederverwenden und eine Konsistenz bei Nutzern und Datasets erreichen.

In Ihrer Vorlage geben Sie infoTypes an, die die zu de-identifizierenden Inhalte darstellen. Eine Liste der InfoTypes finden Sie in der InfoType-Detektorreferenz. Wenn Sie die De-Identifikation aktivieren, werden die Textteile ausgeblendet, die in der Vorlage mit der Property infoTypes angegeben sind.

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 request.content-Ablaufvariablen getragen wird.

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

Die Ausgabe für dieses Beispiel wäre der de-identifizierte Anfrageinhalt.

Anfrageparameter

Parameter Beschreibung Typ Standard Erforderlich
Text Der Text, der de-identifiziert werden soll. Auf dieser Grundlage erfolgt die De-Identifikation. Object Keine. Ja.
Vorlagenname Die zu verwendende Vorlage. Dies ist ein Pfad zur Vorlage im folgenden Format: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Wenn Sie die Vorlage mit der Google API erstellen, verwenden Sie den Wert des Attributs name der Antwort als templateName. String Keine. Ja.

Antwort

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

deidentifyWithType

Sensible Daten in Textinhalten de-identifizieren, indem jeder übereinstimmende Wert durch den Namen des infoType ersetzt wird. Eine Liste der InfoTypes finden Sie in der InfoType-Detektorreferenz. Mit dieser Aktion werden die Teile von text ausgeblendet, die in der Erweiterungskonfiguration durch das Attribut infoTypes angegeben sind.

Im folgenden Beispiel wird die Telefonnummer vom Dienst erkannt und dann durch den Namen des infoTypes 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, die maskiert werden soll, eine E-Mail-Adresse, die in einer Ablaufvariablen vom Typ input.email.address gespeichert ist. Für dieses Beispiel muss diese Erweiterung für den infoType EMAIL_ADDRESS konfiguriert worden sein. Eine Liste der InfoTypes finden Sie in der Referenz zu infoType-Detektoren.

<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 Text, der de-identifiziert werden soll. String Keine. Ja.

Antwort

Der Eingabetext mit Werten der angegebenen infoTypes wird durch die Namen der infoTypes ersetzt. Beispiel:

{"text":"EMAIL_ADDRESS"}

redactImage

Text entfernen, der in eine der infoType-Kategorien fällt Die unkenntlich gemachten Inhalte werden erkannt und mit einem undurchsichtigen Rechteck verdeckt. Mit dieser Aktion werden die Teile von image_data ausgeblendet, die in der Erweiterungskonfiguration durch das Attribut infoTypes angegeben sind.

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

Das Bild mit entferntem Text

Konfigurationsreferenz

Beachten Sie die folgenden Hinweise, wenn Sie diese Erweiterung für die Verwendung in API-Proxys konfigurieren und bereitstellen. Eine Anleitung zum Konfigurieren einer Erweiterung mit der Apigee Console finden Sie unter Erweiterung hinzufügen und konfigurieren.

Gängige 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

Properties für dieses Erweiterungspaket

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

Attribut Beschreibung Standard Erforderlich
projectId Die GCP-Projekt-ID, für die die Cloud Data Loss Prevention API aktiviert ist. Keine. Ja.
infoTypes InfoTypes der sensiblen Daten. Wenn Sie diesen Parameter weglassen, werden alle integrierten Typen vom Dienst erkannt. Eine Liste der vom Google Cloud DLP-Dienst unterstützten InfoTypes finden Sie in der InfoType-Detektorreferenz. Keine. Nein.
Anmeldedaten Wenn Sie diesen Wert in die Apigee Edge-Konsole eingeben, entspricht er dem Inhalt Ihrer Dienstkonto-Schlüsseldatei. Wenn er über die Verwaltungs-API gesendet wird, ist er ein Base64-codierter Wert, der aus der Dienstkonto-Schlüsseldatei generiert wird. Keine. Ja.