Google Cloud Veri Kaybını Önleme Uzantısı

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Sürüm: 2.0.2

İçerik ve resimlerdeki hassas verileri gizlemek için bu uzantıyı kullanın. Örneğin, kredi kartı numaralarını, adları ve sosyal güvenlik numaralarını karartabilirsiniz.

Ön koşullar

Bu içerik, uzantının yapılandırılması ve kullanılmasıyla ilgili referans bilgiler sağlar. ExtensionCallout politikası kullanılarak bir API proxy'sinden uzantıyı kullanmadan önce şunları yapmanız gerekir:

  1. Projeniz için Google Cloud DLP API'yi etkinleştirin.

  2. Uzantı için istediğiniz erişim düzeyine izin verin.

  3. Hizmet hesabı için anahtar oluşturmak üzere Google Cloud Console'u kullanın.

  4. Yapılandırma referansını kullanarak uzantıyı eklerken ve yapılandırırken sonuçtaki anahtar JSON dosyasının içeriğini kullanın.

Cloud Data Loss Prevention (DLP) hakkında

Cloud Data Loss Prevention (DLP), hassas verileri tanımlamak ve yönetmek için metinleri, görüntüleri ve diğer verileri incelemeye yönelik bir API'dir.

Daha fazla bilgi için Veri Kaybını Önleme'ye genel bakış başlıklı makaleyi inceleyin. Bu uzantının sunduğu API ile ilgili referans için Cloud Data Loss Prevention (DLP) API'ye bakın.

Örnekler

Aşağıdaki örneklerde, ExtensionCallout politikası kullanılarak Cloud DLP uzantısı işlemlerine yönelik desteğin nasıl yapılandırılacağı gösterilmektedir.

Bu örneklerde, akış değişkeni değerlerini ayarlamak ve izleme aracında görüntülemek üzere uzantı yanıtı değerlerini almak için AssignMessage politikası kullanılır. Böylece bu örnek kodu denemek kolaylaşır.

Yıldızlı maske

Bu örnekte, belirtilen metin türlerini politikada belirtilen bir karakterle (burada deidentifyWithMask karakteri) maskelemek için deidentifyWithMask işlemi kullanılmaktadır.*

Aşağıdaki AssignMessage politikası, açıklama amacıyla request.content değişkenini ayarlar. Normalde, istek içeriğini istemcinin isteğinden alırsınız.

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

Aşağıdaki ExtensionCallout politikası, request.content değişken değerini alır ve bunu bir Cloud DLP uzantısına (burada example-dlp olarak adlandırılır) iletir. Bu uzantı, URL ve EMAIL_ADDRESS infoTypes'larına göre değerleri maskelemek üzere yapılandırılmıştır.

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

Aşağıdaki AssignMessage politikası, izleme aracında gösterilmek üzere uzantının çıkışını alır.

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

Aşağıda bu kodun çıkışına dair bir örnek verilmiştir.

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

Ad içeren maske

Bu örnekte, belirtilen metin türlerini bilgi türü adıyla maskelemek için deidentifyWithType işlemi kullanılır. Örneğin, gladys@example.com e-posta adresini EMAIL_ADDRESS ile değiştirir.

Aşağıdaki AssignMessage politikası, açıklama amacıyla request.content değişkenini ayarlar. Normalde, istek içeriğini istemcinin isteğinden alırsınız.

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

Aşağıdaki ExtensionCallout politikası, request.content değişken değerini alır ve bir Cloud DLP uzantısına (burada example-dlp olarak adlandırılır) iletir. Bu uzantı, URL ve EMAIL_ADDRESS infoTypes'a göre değerleri maskelemek üzere yapılandırılmıştır.

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

Aşağıdaki AssignMessage politikası, izleme aracında gösterilmek üzere uzantının çıkışını alır.

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

Aşağıda bu kodun çıkışına dair bir örnek verilmiştir.

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

İşlemler

deidentifyWithMask

text içindeki hassas verilerin kimliğini gizleyin ve verileri mask karakteriyle maskeleyin. Bu işlem, uzantı yapılandırmasında infoTypes özelliğiyle belirtilen text bölümlerini maskeler.

Hassas verileri maskeleme, karakterleri yıldız (*) veya diyez (#) gibi bir sembolle değiştirir. Hassas veri türleri, uzantı yapılandırmasında ayarlanabilir.

Söz dizimi

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

Örnek

Aşağıdaki örnekte, maskelenecek giriş, bir input.email.address akış değişkeninde depolanan e-posta adresidir. Bu örneği desteklemek için uzantının EMAIL_ADDRESS InfoType'ı destekleyecek şekilde yapılandırılması gerekir. InfoType'ların listesi için InfoType Algılayıcı Referansı başlıklı makaleyi inceleyin.

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

Bu örnek için çıkış aşağıdaki gibi olur:

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

İstek parametreleri

Parametre Açıklama Tür Varsayılan Zorunlu
text (metin) Kimliği kaldırılacak metin. Dize Yok. Evet.
maske Hassas verileri maskelemek için kullanılacak karakter. Dize Yok. Evet.

Yanıt

Belirtilen infoType değerlerinin, belirtilen karakterle değiştirildiği giriş metni. Örneğin,

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

deidentifyWithTemplate

Hangi metnin kimliğinin gizleneceğini ve nasıl işleneceğini yapılandıran bir şablon kullanarak metin içeriğindeki hassas verilerin kimliğini gizleme

Şablonlar, neyi incelediğiniz ve kimliğini nasıl kaldırdığınız gibi yapılandırmaları API çağrılarınızın uygulanmasından ayırmak için kullanışlıdır. Şablonlar, yapılandırmayı yeniden kullanmanın ve kullanıcılar ile veri kümeleri arasında tutarlılık sağlamanın bir yolunu sunar.

Şablonunuzda, kimliği tanımlanamaz hale getirilecek içeriği temsil eden infoTypes'ı belirtirsiniz. InfoType'ların listesi için InfoType algılayıcı referansı başlıklı makaleyi inceleyin. Kimliği gizleme, şablondaki infoTypes özelliğiyle belirtilen metin bölümlerini maskeler.

Söz dizimi

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

Örnek

Aşağıdaki örnekte, kimliği kaldırılacak giriş, request.content akış değişkeni tarafından taşınan istek gövdesidir.

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

Bu örnekteki çıktı, kimliği tanımlanamayan istek içeriği olur.

İstek parametreleri

Parametre Açıklama Tür Varsayılan Zorunlu
text (metin) Kimliği gizlenecek metin. Kimlik gizleme işlemi bu veriler üzerinde çalışır. Nesne Yok. Evet.
templateName Kullanılacak şablon. Bu, şablonun şu biçimdeki yolu olacaktır: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Google API ile şablonu oluştururken yanıtın name özellik değerini templateName olarak kullanın. Dize Yok. Evet.

Yanıt

Belirtilen infoType'ların değerlerinin infoType adlarıyla değiştirildiği giriş metni.

deidentifyWithType

Metin içeriğindeki hassas verilerin kimliğini gizleyerek eşleşen her değeri infoType'ın adıyla değiştirme InfoType'ların listesi için InfoType algılayıcı referansı başlıklı makaleyi inceleyin. Bu işlem, uzantı yapılandırmasında infoTypes özelliğiyle belirtilen text bölümlerini maskeler.

Aşağıdaki örnekte, telefon numarası hizmet tarafından tanınıyor ve ardından infoType'ın adıyla değiştiriliyor.

  • Giriş metni:

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

  • Sonuç metni:

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

Söz dizimi

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

Örnek

Aşağıdaki örnekte, maskelenecek giriş, bir input.email.address akış değişkeninde depolanan e-posta adresidir. Bu örneği desteklemek için uzantının EMAIL_ADDRESS InfoType'ı destekleyecek şekilde yapılandırılması gerekir. InfoType'ların listesi için InfoType Algılayıcı Referansı başlıklı makaleyi inceleyin.

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

Bu örnek için çıkış aşağıdaki gibi olur:

{"text":"EMAIL_ADDRESS"}

İstek parametreleri

Parametre Açıklama Tür Varsayılan Zorunlu
text (metin) Kimliği gizlenecek metin. Dize Yok. Evet.

Yanıt

Belirtilen infoType'ların değerlerinin infoType adlarıyla değiştirildiği giriş metni. Örneğin,

{"text":"EMAIL_ADDRESS"}

redactImage

infoType kategorilerinden birine giren metinleri çıkartma Redaksiyonlu içerik algılanır ve opak bir dikdörtgenle gizlenir. Bu işlem, uzantı yapılandırmasında infoTypes özelliğiyle belirtilen image_data bölümlerini maskeler.

InfoType'ların listesi için InfoType algılayıcı referansı başlıklı makaleyi inceleyin.

İstek parametreleri

<Action>redactImage</Action>
<Input><![CDATA[{
  "image_data" : "base64-encoded-image-to-analyze",
  "image_type" : "type-of-image"
}]]></Input>
Parametre Açıklama Tür Varsayılan Zorunlu
image_data Base64 ile kodlanmış görüntü verileri. Dize Yok. Evet.
image_type Resim türünün sabiti. Kullanılabilir değerler IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG, IMAGE_SVG'dir. Dize Yok. Evet.

Yanıt

Metni çıkartılmış resim.

Yapılandırma Referansı

Bu uzantıyı API proxy'lerinde kullanılacak şekilde yapılandırıp dağıtırken aşağıdakileri kullanın. Apigee konsolunu kullanarak uzantı yapılandırma adımları için Uzantı ekleme ve yapılandırma başlıklı makaleyi inceleyin.

Sık kullanılan uzantı özellikleri

Aşağıdaki özellikler her uzantı için mevcuttur.

Mülk Açıklama Varsayılan Zorunlu
name Uzantının bu yapılandırmasını verdiğiniz ad. Yok Evet
packageName Apigee Edge'in sağladığı uzantı paketinin adı. Yok Evet
version Uzantıyı yapılandırdığınız uzantı paketinin sürüm numarası. Yok Evet
configuration Eklediğiniz uzantıya özgü yapılandırma değeri. Bu uzantı paketinin özellikleri başlıklı makaleyi inceleyin Yok Evet

Bu uzantı paketinin özellikleri

Bu uzantıya özel aşağıdaki yapılandırma özelliklerinin değerlerini belirtin.

Mülk Açıklama Varsayılan Zorunlu
proje kimliği Cloud Data Loss Prevention API'nin etkinleştirildiği Google Cloud projesi kimliği. Yok. Evet.
infoTypes Hassas verilerin bilgi türleri. Boş bırakılırsa hizmet, tüm yerleşik türleri algılar. Google Cloud DLP hizmeti tarafından desteklenen infoType'ların listesi için InfoType Detector Reference (InfoType Algılayıcı Referansı) başlıklı makaleyi inceleyin. Yok. Sıra
giriş bilgileri Apigee Edge konsoluna girildiğinde bu, hizmet hesabı anahtar dosyanızın içeriğidir. Yönetim API'si kullanılarak gönderildiğinde, hizmet hesabı anahtar dosyasından oluşturulan base64 kodlu bir değerdir. Yok. Evet.