Ekstensi Pencegahan Kebocoran Data Google Cloud

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Versi: 1.5.1

Gunakan ekstensi ini untuk menyamarkan data sensitif dari konten dan gambar. Misalnya, Anda dapat menyamarkan nomor kartu kredit, nama, dan nomor jaminan sosial.

Prasyarat

Konten ini menyediakan referensi untuk mengonfigurasi dan menggunakan ekstensi ini. Sebelum menggunakan ekstensi dari proxy API menggunakan kebijakan ExtensionCallout, Anda harus:

  1. Aktifkan Google Cloud DLP API untuk project Anda.

  2. Berikan izin untuk tingkat akses yang Anda inginkan untuk ekstensi tersebut.

  3. Gunakan GCP Console untuk membuat kunci untuk akun layanan.

  4. Gunakan konten file JSON kunci yang dihasilkan saat menambahkan dan mengonfigurasi ekstensi menggunakan referensi konfigurasi.

Tentang Pencegahan Kebocoran Data (DLP) Cloud

Cloud Data Loss Prevention (DLP) adalah API untuk memeriksa teks, gambar, dan data lainnya untuk mengidentifikasi dan mengelola data sensitif.

Untuk mengetahui informasi selengkapnya, lihat Ringkasan DLP. Untuk referensi ke API yang diekspos oleh ekstensi ini, lihat Cloud Data Loss Prevention (DLP) API.

Contoh

Contoh berikut menggambarkan cara mengonfigurasi dukungan untuk tindakan ekstensi Cloud DLP menggunakan kebijakan ExtensionInfo.

Untuk mempermudah upaya mencoba kode contoh ini, contoh ini menggunakan kebijakanAssignMessage untuk menetapkan nilai variabel alur dan mengambil nilai respons ekstensi untuk ditampilkan di alat Trace.

Topeng dengan bintang

Contoh ini menggunakan tindakan deidentifyWithMask untuk menyamarkan jenis teks tertentu dengan karakter yang ditentukan dalam kebijakan -- di sini, karakter *.

Kebijakan MenetapkanMessage berikut menetapkan variabel request.content untuk tujuan ilustrasi. Biasanya, Anda akan mengambil konten permintaan dari permintaan klien.

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

Kebijakan ExtensionCallout berikut mengambil nilai variabel request.content dan meneruskannya ke ekstensi Cloud DLP (di sini, yang disebut example-dlp). Ekstensi tersebut telah dikonfigurasi untuk menyamarkan nilai berdasarkan infoTypes URL dan 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>

Kebijakan TetapkanMessage berikut mengambil output ekstensi untuk ditampilkan di alat Trace.

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

Berikut adalah contoh output dari kode ini.

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

Masker dengan nama

Contoh ini menggunakan tindakan deidentifyWithType untuk menyamarkan jenis teks tertentu dengan nama infotype itu sendiri. Misalnya, ini akan mengganti alamat email gladys@example.com dengan EMAIL_ADDRESS.

Kebijakan MenetapkanMessage berikut menetapkan variabel request.content untuk tujuan ilustrasi. Biasanya, Anda akan mengambil konten permintaan dari permintaan klien.

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

Kebijakan ExtensionCallout berikut mengambil nilai variabel request.content dan meneruskannya ke ekstensi Cloud DLP (di sini, yang disebut example-dlp). Ekstensi tersebut telah dikonfigurasi untuk menyamarkan nilai berdasarkan infoTypes URL dan 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>

Kebijakan TetapkanMessage berikut mengambil output ekstensi untuk ditampilkan di alat Trace.

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

Berikut adalah contoh output dari kode ini.

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

Tindakan

deidentifyWithMask

Lakukan de-identifikasi data sensitif dari text dan samarkan data dengan karakter mask. Tindakan ini akan menyamarkan bagian text yang ditentukan oleh properti infoTypes pada konfigurasi ekstensi.

Menyamarkan data sensitif akan mengganti karakter dengan simbol, seperti tanda bintang (*) atau hash (#). Jenis data sensitif dapat dikonfigurasi di konfigurasi ekstensi.

Sintaksis

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

Contoh

Pada contoh berikut, input yang akan disamarkan adalah alamat email yang disimpan dalam variabel alur input.email.address. Untuk mendukung contoh khusus ini, ekstensi ini harus dikonfigurasi untuk mendukung infoType EMAIL_ADDRESS. Untuk daftar infoType, lihat Referensi Pendeteksi InfoType.

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

Output untuk contoh ini adalah sebagai berikut:

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

Parameter permintaan

Parameter Deskripsi Jenis Default Wajib
teks Teks yang akan dide-identifikasi. String Tidak ada. Ya.
masker Karakter yang akan digunakan untuk menyamarkan data sensitif. String Tidak ada. Ya.

Respons

Teks input dengan nilai infoTypes yang ditentukan yang diganti dengan karakter yang ditentukan. Misalnya,

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

deidentifyWithTemplate

Lakukan de-identifikasi data sensitif dalam konten teks menggunakan template yang mengonfigurasi teks apa yang akan dide-identifikasi dan cara menanganinya.

Template berguna untuk memisahkan konfigurasi seperti apa yang Anda periksa dan cara melakukan de-identifikasinya dari implementasi panggilan API Anda. Template menyediakan cara untuk menggunakan kembali konfigurasi dan memungkinkan konsistensi di seluruh pengguna dan set data.

Di template, Anda akan menentukan infoTypes yang mewakili konten yang akan dide-identifikasi. Untuk daftar infoType, lihat Referensi detektor InfoType. Proses de-identifikasi akan menyamarkan bagian teks tersebut yang ditentukan oleh properti infoTypes dalam template.

Sintaksis

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

Contoh

Pada contoh berikut, input untuk melakukan de-identifikasi adalah isi permintaan yang dibawa oleh variabel flow request.content.

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

Output untuk contoh ini akan berupa konten permintaan yang telah dide-identifikasi.

Parameter permintaan

Parameter Deskripsi Jenis Default Wajib
teks Teks yang akan dide-identifikasi. Di sinilah proses de-identifikasi beroperasi. Object Tidak ada. Ya.
templateName Template yang akan digunakan. Jalur tersebut akan menjadi jalur ke template dalam bentuk berikut: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Saat Anda membuat template dengan Google API, gunakan nilai properti name respons sebagai templateName. String Tidak ada. Ya.

Respons

Teks input dengan nilai infoTypes yang ditentukan diganti dengan nama infoType.

deidentifyWithType

Lakukan de-identifikasi data sensitif dalam konten teks, dengan mengganti setiap nilai yang cocok dengan nama infoType. Untuk daftar infoType, lihat Referensi detektor InfoType. Tindakan ini akan menyamarkan bagian text yang ditentukan oleh properti infoTypes pada konfigurasi ekstensi.

Pada contoh berikut, nomor telepon dikenali oleh layanan, lalu diganti dengan nama infoType itu sendiri.

  • Teks input:

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

  • Teks hasil:

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

Sintaksis

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

Contoh

Pada contoh berikut, input yang akan disamarkan adalah alamat email yang disimpan dalam variabel alur input.email.address. Untuk mendukung contoh khusus ini, ekstensi ini harus dikonfigurasi untuk mendukung infoType EMAIL_ADDRESS. Untuk daftar infoType, lihat Referensi Pendeteksi InfoType.

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

Output untuk contoh ini adalah sebagai berikut:

{"text":"EMAIL_ADDRESS"}

Parameter permintaan

Parameter Deskripsi Jenis Default Wajib
teks Teks yang akan dide-identifikasi. String Tidak ada. Ya.

Respons

Teks input dengan nilai infoTypes yang ditentukan diganti dengan nama infoType. Misalnya,

{"text":"EMAIL_ADDRESS"}

redactImage

Menyamarkan teks yang termasuk dalam salah satu kategori infoType. Konten yang disamarkan akan terdeteksi dan dikaburkan dengan persegi panjang buram. Tindakan ini akan menyamarkan bagian image_data yang ditentukan oleh properti infoTypes pada konfigurasi ekstensi.

Untuk daftar infoType, lihat Referensi detektor InfoType.

Parameter permintaan

<Action>redactImage</Action>
<Input><![CDATA[{
  "image_data" : "base64-encoded-image-to-analyze",
  "image_type" : "type-of-image"
}]]></Input>
Parameter Deskripsi Jenis Default Wajib
image_data Data gambar yang dienkode dalam base64. String Tidak ada. Ya.
image_type Konstanta jenis gambar. Nilai yang tersedia adalah IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG, IMAGE_SVG. String Tidak ada. Ya.

Respons

Gambar dengan teks disamarkan.

Referensi Konfigurasi

Gunakan hal berikut saat Anda mengonfigurasi dan men-deploy ekstensi ini untuk digunakan di proxy API. Untuk langkah-langkah mengonfigurasi ekstensi menggunakan konsol Apigee, lihat Menambahkan dan mengonfigurasi ekstensi.

Properti ekstensi umum

Properti berikut ada untuk setiap ekstensi.

Properti Deskripsi Default Wajib
name Nama yang Anda berikan pada konfigurasi ekstensi ini. Tidak ada Ya
packageName Nama paket ekstensi seperti yang diberikan oleh Apigee Edge. Tidak ada Ya
version Nomor versi untuk paket ekstensi tempat Anda mengonfigurasi ekstensi. Tidak ada Ya
configuration Nilai konfigurasi khusus untuk ekstensi yang Anda tambahkan. Lihat Properti untuk paket ekstensi ini Tidak ada Ya

Properti untuk paket ekstensi ini

Tentukan nilai untuk properti konfigurasi berikut yang khusus untuk ekstensi ini.

Properti Deskripsi Default Wajib
projectId Project ID GCP dengan Cloud Data Loss Prevention API diaktifkan. Tidak ada. Ya.
infoTypes Jenis info dari data sensitif. Jika dihilangkan, layanan akan mendeteksi semua jenis bawaan. Untuk mengetahui daftar infoType yang didukung oleh layanan DLP Google Cloud, lihat Referensi Pendeteksi InfoType. Tidak ada. Tidak.
kredensial Saat dimasukkan di konsol Apigee Edge, ini adalah isi file kunci akun layanan Anda. Saat dikirim melalui API pengelolaan, nilai tersebut adalah nilai berenkode base64 yang dihasilkan dari file kunci akun layanan. Tidak ada. Ya.