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

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

Sürüm: 2.0.0

İç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ı çıkartabilirsiniz.

Ön koşullar

Bu içerikte, bu uzantıyı yapılandırma ve kullanmayla ilgili referanslar sağlanmaktadır. ExtensionCallout politikasını kullanarak uzantıyı bir API proxy'sinden kullanmadan önce şunları yapmanız gerekir:

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

  2. Uzantının sahip olmasını istediğiniz erişim düzeyi için izin verin.

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

  4. Yapılandırma referansını kullanarak uzantıyı ekleyip yapılandırırken elde edilen anahtar JSON dosyasının içeriğini kullanın.

Cloud Data Loss Prevention (DLP) hakkında

Cloud Veri Kaybını Önleme (DLP), hassas verileri tanımlamak ve yönetmek için metin, resim ve diğer verileri denetleyen bir API'dir.

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

Örnekler

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

Bu örnek kodu denemeyi kolaylaştırmak için bu örneklerde, akış değişkeni değerlerini ayarlamak ve İzleme aracında gösterilecek uzantı yanıtı değerlerini almak için bir AssignMessage politikası kullanılır.

Yıldızlı maske

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

Aşağıdaki AssignMessage politikası, açıklama amacıyla request.content değişkenini ayarlar. Normalde istek içeriğini istemciden 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'e göre değerleri maskeleyecek şekilde 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ı, uzantının çıktısını Trace aracında görüntülemek için 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 koddan elde edilen çıkış örneği 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 adresi EMAIL_ADDRESS ile değiştirilir.

Aşağıdaki AssignMessage politikası, açıklama amacıyla request.content değişkenini ayarlar. Normalde istek içeriğini istemciden 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'e göre değerleri maskeleyecek şekilde 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ı, uzantının çıktısını Trace aracında görüntülemek için 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 koddan elde edilen çıkış örneği verilmiştir.

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

İşlemler

deidentifyWithMask

text'teki hassas verilerin kimliğini gizleyin ve verileri mask karakteriyle maskeleyin. Bu işlem, uzantı yapılandırmasında infoTypes mülkü tarafından belirtilen text bölümlerinin maskelenmesini sağlar.

Hassas verilerin maskelenmesinde, karakterler yıldız (*) veya karma (#) gibi bir simgeyle değiştirilir. Hassas verilerin türleri, uzantı yapılandırmasında yapılandırılabilir.

Söz dizimi

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

Örnek

Aşağıdaki örnekte, maskelenmesi gereken giriş, bir input.email.address akış değişkeninde depolanan bir e-posta adresidir. Bu örneği desteklemek için bu uzantı, EMAIL_ADDRESS bilgi türünü destekleyecek şekilde yapılandırılmış olmalıdır. InfoType'ların listesi için InfoType Algılayıcı Referansı başlıklı makaleye bakın.

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

Bu örnek için çıkış şu şekilde olur:

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

İstek parametreleri

Parametre Açıklama Tür Varsayılan Zorunlu
text (metin) Kimliği gizlenecek 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 bu metnin nasıl işleneceğini yapılandıran bir şablon kullanarak metin içeriğindeki hassas verilerin kimliğini gizleyin.

Şablonlar, neyi denetleyeceğiniz ve kimliğini nasıl kaldıracağı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 gizlenecek içeriği temsil eden infoTypes öğelerini belirtirsiniz. InfoType'ların listesi için InfoType algılayıcı referansı başlıklı makaleyi inceleyin. Kimliği gizleme, şablondaki infoTypes mülkü tarafından 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 gizleme girişi, 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 örnekte, kimliği gizlenen istek içeriği çıktı olarak gösterilir.

İstek parametreleri

Parametre Açıklama Tür Varsayılan Zorunlu
text (metin) Kimliği gizlenecek metin. Kimlik gizleme işlemi bu şekilde ç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 templateName olarak yanıtın name mülk değerini kullanın. Dize Yok. Evet.

Yanıt

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

deidentifyWithType

Eşleşen her değeri infoType adıyla değiştirerek metin içeriğindeki hassas verilerin kimliğini gizleme. 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 mülkü tarafından belirtilen text bölümlerinin maskelenmesini sağlar.

Aşağıdaki örnekte, telefon numarası hizmet tarafından tanındıktan sonra infoType öğesinin adıyla değiştirilir.

  • Metin girin:

    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, maskelenmesi gereken giriş, bir input.email.address akış değişkeninde depolanan bir e-posta adresidir. Bu örneği desteklemek için bu uzantı, EMAIL_ADDRESS bilgi türünü destekleyecek şekilde yapılandırılmış olmalıdır. InfoType'ların listesi için InfoType Algılayıcı Referansı başlıklı makaleye bakın.

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

Bu örnek için çıkış şu şekilde 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 değerlerinin infoType adlarıyla değiştirildiği giriş metni. Örneğin,

{"text":"EMAIL_ADDRESS"}

redactImage

infoType kategorilerinden birine giren metni çıkartma Kırpılan içerik algılanır ve opak bir dikdörtgenle gizlenir. Bu işlem, uzantı yapılandırmasında infoTypes mülkü tarafından belirtilen image_data bölümlerinin maskelenmesini sağlar.

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 olarak kodlanmış görüntü verileri. Dize Yok. Evet.
image_type Resim türünün sabit değeri. Kullanılabilir değerler IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG, IMAGE_SVG'dir. Dize Yok. Evet.

Yanıt

Metnin çıkartıldığı resim.

Yapılandırma Referansı

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

Ortak 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ı paketine ait özellikler

Bu uzantıya özgü aşağıdaki yapılandırma özellikleri için değerler belirtin.

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