Estensione Prevenzione della perdita di dati Google Cloud

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
info

Versione: 2.0.0

Utilizza questa estensione per oscurare i dati sensibili in contenuti e immagini. Ad esempio, potresti oscurare numeri di carte di credito, nomi e codici fiscali.

Prerequisiti

Questi contenuti forniscono un riferimento per la configurazione e l'utilizzo di questa estensione. Prima di utilizzare l'estensione da un proxy API utilizzando il criterio ExtensionCallout, devi:

  1. Abilita l'API Google Cloud DLP per il tuo progetto.

  2. Concedi l'autorizzazione per il livello di accesso che vuoi concedere all'estensione.

  3. Utilizza la console Google Cloud per generare una chiave per l'account di servizio.

  4. Utilizza i contenuti del file JSON della chiave risultante quando aggiungi e configuri l'estensione utilizzando il riferimento alla configurazione.

Informazioni su Cloud Data Loss Prevention (DLP)

Cloud Data Loss Prevention (DLP) è un'API per ispezionare testo, immagini e altri dati al fine di identificare e gestire i dati sensibili.

Per saperne di più, consulta la panoramica del DLP. Per informazioni sull'API esposta da questa estensione, consulta l'API Cloud Data Loss Prevention (DLP).

Esempi

Gli esempi riportati di seguito mostrano come configurare il supporto per le azioni di estensione di Cloud DLP utilizzando il criterio ExtensionCallout.

Per semplificare la prova di questo codice di esempio, questi esempi utilizzano un criterio AssignMessage per impostare i valori delle variabili di flusso e per recuperare i valori di risposta dell'estensione da visualizzare nello strumento di traccia.

Maschera con stelle

Questo esempio utilizza l'azione deidentifyWithMask per mascherare i tipi di testo specificati con un carattere specificato nel criterio, in questo caso il carattere *.

Il seguente criterio AssignMessage imposta la variabile request.content a scopo illustrativo. In genere, dovresti recuperare i contenuti della richiesta dalla richiesta del cliente.

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

Il seguente criterio ExtensionCallout recupera il valore della variabile request.content e lo passa a un'estensione Cloud DLP (qui chiamata example-dlp). L'estensione è stata configurata per mascherare i valori in base ai infoTypes URL e 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>

Il seguente criterio AssignMessage recupera l'output dell'estensione per la visualizzazione nello strumento di tracciamento.

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

Di seguito è riportato un esempio di output di questo codice.

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

Maschera con nome

Questo esempio utilizza l'azione deidentifyWithType per mascherare i tipi di testo specificati con il nome dell'infotype stesso. Ad esempio, sostituirà l'indirizzo email gladys@example.com con EMAIL_ADDRESS.

Il seguente criterio AssignMessage imposta la variabile request.content a scopo illustrativo. In genere, dovresti recuperare i contenuti della richiesta dalla richiesta del cliente.

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

Il seguente criterio ExtensionCallout recupera il valore della variabile request.content e lo passa a un'estensione Cloud DLP (qui chiamata example-dlp). L'estensione è stata configurata per mascherare i valori in base agli infoTypes URL e 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>

Il seguente criterio AssignMessage recupera l'output dell'estensione per la visualizzazione nello strumento di tracciamento.

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

Di seguito è riportato un esempio di output di questo codice.

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

Azioni

deidentifyWithMask

Anonimizza i dati sensibili di text e mascherali con il carattere mask. Questa azione maschera le parti di text specificate dalla proprietà infoTypes nella configurazione dell'estensione.

Il mascheramento dei dati sensibili sostituisce i caratteri con un simbolo, ad esempio un asterisco (*) o un hash (#). I tipi di dati sensibili possono essere configurati nella configurazione dell'estensione.

Sintassi

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

Esempio

Nell'esempio seguente, l'input da mascherare è un indirizzo email archiviato in una variabile di flusso input.email.address. Per supportare questo esempio specifico, l'estensione deve essere stata configurata per supportare l'infoType EMAIL_ADDRESS. Per un elenco di infoType, consulta la Guida di riferimento per i rilevatori di infoType.

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

L'output di questo esempio sarà il seguente:

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

Parametri di richiesta

Parametro Descrizione Tipo Predefinito Obbligatorio
testo Testo da anonimizzare. Stringa Nessuno. Sì.
maschera Carattere da utilizzare per mascherare i dati sensibili. Stringa Nessuno. Sì.

Risposta

Il testo di input con i valori degli infoType specificati sostituiti con il carattere specificato. Ad esempio,

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

deidentifyWithTemplate

Anonimizza i dati sensibili nei contenuti di testo utilizzando un modello che configura il testo da anonimizzare e come gestirlo.

I modelli sono utili per disaccoppiare la configurazione, ad esempio gli elementi da ispezionare e come deidentificarli, dall'implementazione delle chiamate API. I modelli consentono di riutilizzare la configurazione e di garantire la coerenza tra utenti e set di dati.

Nel modello, dovrai specificare gli infoTypes che rappresentano i contenuti da anonimizzare. Per un elenco di infoType, consulta la Guida di riferimento per i rilevatori di infoType. L'anonimizzazione maschera le parti di testo specificate dalla proprietà infoTypes nel modello.

Sintassi

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

Esempio

Nell'esempio seguente, l'input per la spersonalizzazione è il corpo della richiesta trasportato dalla variabile di flusso request.content.

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

L'output di questo esempio sarà costituito dai contenuti della richiesta anonimizzati.

Parametri di richiesta

Parametro Descrizione Tipo Predefinito Obbligatorio
testo Il testo da anonimizzare. È su questo che si basa il processo di anonimizzazione. Oggetto Nessuno. Sì.
templateName Il modello da utilizzare. Si tratta del percorso del modello nel seguente formato: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Quando crei il modello con l'API di Google, utilizza il valore della proprietà name della risposta come templateName. Stringa Nessuno. Sì.

Risposta

Il testo inserito con i valori degli infoType specificati sostituiti con i nomi degli infoType.

deidentifyWithType

Anonimizza i dati sensibili nei contenuti di testo, sostituendo ogni valore corrispondente con il nome dell'infoType. Per un elenco di infoType, consulta la Guida di riferimento per i rilevatori di infoType. Questa azione maschera le parti di text specificate dalla proprietà infoTypes nella configurazione dell'estensione.

Nell'esempio seguente, il numero di telefono viene riconosciuto dal servizio e poi sostituito con il nome dell'infoType stesso.

  • Testo inserito:

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

  • Testo del risultato:

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

Sintassi

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

Esempio

Nell'esempio seguente, l'input da mascherare è un indirizzo email archiviato in una variabile di flusso input.email.address. Per supportare questo esempio specifico, l'estensione deve essere stata configurata per supportare l'infoType EMAIL_ADDRESS. Per un elenco di infoType, consulta la Guida di riferimento per i rilevatori di infoType.

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

L'output di questo esempio sarà il seguente:

{"text":"EMAIL_ADDRESS"}

Parametri di richiesta

Parametro Descrizione Tipo Predefinito Obbligatorio
testo Il testo da anonimizzare. Stringa Nessuno. Sì.

Risposta

Il testo inserito con i valori degli infoType specificati sostituiti con i nomi degli infoType. Ad esempio,

{"text":"EMAIL_ADDRESS"}

redactImage

Oscura il testo che rientra in una delle categorie infoType. I contenuti oscurati vengono rilevati e coperti da un rettangolo opaco. Questa azione maschera le parti di image_data specificate dalla proprietà infoTypes nella configurazione dell'estensione.

Per un elenco di infoType, consulta la Guida di riferimento per i rilevatori di infoType.

Parametri di richiesta

<Action>redactImage</Action>
<Input><![CDATA[{
  "image_data" : "base64-encoded-image-to-analyze",
  "image_type" : "type-of-image"
}]]></Input>
Parametro Descrizione Tipo Predefinito Obbligatorio
image_data I dati immagine codificati in base64. Stringa Nessuno. Sì.
image_type Costante del tipo di immagine. I valori disponibili sono IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG, IMAGE_SVG. Stringa Nessuno. Sì.

Risposta

L'immagine con il testo oscurato.

Riferimento alla configurazione

Utilizza quanto segue quando configuri ed esegui il deployment di questa estensione per utilizzarla nei proxy API. Per la procedura di configurazione di un'estensione utilizzando la console Apigee, vedi Aggiunta e configurazione di un'estensione.

Proprietà comuni delle estensioni

Per ogni estensione sono presenti le seguenti proprietà.

Proprietà Descrizione Predefinito Obbligatorio
name Il nome che assegni a questa configurazione dell'estensione. Nessuno
packageName Nome del pacchetto dell'estensione fornito da Apigee Edge. Nessuno
version Numero di versione del pacchetto dell'estensione da cui stai configurando un'estensione. Nessuno
configuration Valore di configurazione specifico per l'estensione che stai aggiungendo. Vedi Proprietà per questo pacchetto di estensioni Nessuno

Proprietà per questo pacchetto di estensioni

Specifica i valori per le seguenti proprietà di configurazione specifiche di questa estensione.

Proprietà Descrizione Predefinito Obbligatorio
ID progetto L'ID progetto Google Cloud per cui è abilitata l'API Cloud Data Loss Prevention. Nessuno. Sì.
infoType Tipi di informazioni dei dati sensibili. Se omesso, il servizio rileverà tutti i tipi integrati. Per un elenco di infoType supportati dal servizio DLP di Google Cloud, consulta la Guida di riferimento per i rilevatori di infoType. Nessuno. No.
credenziali Se inserito nella console Apigee Edge, questi sono i contenuti del file della chiave dell'account di servizio. Se inviato tramite l'API di gestione, è un valore codificato in base64 generato dal file della chiave dell'account di servizio. Nessuno. Sì.