Kamus kustom memberikan kemampuan yang sederhana, tetapi efektif untuk mencocokkan daftar kata atau frasa. Anda dapat menggunakan kamus kustom sebagai pendeteksi atau sebagai daftar pengecualian untuk pendeteksi bawaan. Anda juga dapat menggunakan kamus kustom untuk menambah pendeteksi infoType bawaan agar cocok dengan temuan tambahan.
Bagian ini menjelaskan cara membuat pendeteksi kamus kustom reguler dari daftar kata.
Anatomi detektor infoType kustom kamus
Seperti yang diringkas dalam
Ringkasan API, untuk membuat
detektor infoType kustom kamus, Anda menentukan
objek CustomInfoType
yang berisi hal berikut:
- Nama yang ingin Anda berikan ke detektor infoType kustom, dalam objek
InfoType. - Nilai
Likelihoodopsional. Jika Anda menghapus kolom ini, kecocokan dengan item kamus akan menampilkan kemungkinan defaultVERY_LIKELY. - Objek
DetectionRuleopsional, atau aturan frasa pengaktif. Aturan ini menyesuaikan kemungkinan temuan dalam kedekatan tertentu dari hotword yang ditentukan. Pelajari lebih lanjut aturan frasa pengaktif di Menyesuaikan kemungkinan kecocokan. Nilai
SensitivityScoreopsional. Jika Anda menghapus kolom ini, kecocokan dengan item kamus akan menampilkan tingkat sensitivitas defaultHIGH.Skor sensitivitas digunakan dalam profil data. Saat membuat profil data Anda, Sensitive Data Protection menggunakan skor sensitivitas infoType untuk menghitung tingkat sensitivitas.
Dictionary, sebagaiWordListyang berisi daftar kata yang akan dipindai atauCloudStoragePathke satu file teks yang berisi daftar kata yang dipisahkan baris baru untuk dipindai.
Sebagai objek JSON, detektor infoType kustom kamus yang menyertakan semua komponen opsional akan terlihat seperti berikut. JSON ini menyertakan jalur ke file teks kamus yang disimpan di Cloud Storage. Untuk melihat daftar kata inline, lihat bagian Contoh, nanti dalam topik ini.
{
"customInfoTypes":[
{
"infoType":{
"name":"CUSTOM_INFOTYPE_NAME"
},
"likelihood":"LIKELIHOOD_LEVEL",
"detectionRules":[
{
"hotwordRule":{
HOTWORD_RULE
}
},
...
],
"sensitivityScore":{
"score": "SENSITIVITY_SCORE"
},
"dictionary":
{
"cloudStoragePath":
{
"path": "gs://PATH_TO_TXT_FILE"
}
}
}
],
...
}
Spesifikasi pencocokan kamus
Berikut adalah panduan tentang cara Sensitive Data Protection mencocokkan kata dan frasa kamus. Poin-poin ini berlaku untuk kamus kustom reguler dan besar:
- Kata kamus tidak peka huruf besar/kecil. Jika kamus Anda menyertakan
Abby, kamus tersebut akan cocok denganabby,ABBY,Abby, dan seterusnya. - Semua karakter—dalam kamus atau dalam konten yang akan dipindai—selain
huruf, angka, dan karakter alfabet lainnya yang terdapat dalam
Basic Multilingual Plane Unicode
dianggap sebagai spasi kosong saat memindai kecocokan. Jika kamus Anda
memindai
Abby Abernathy, kamus akan cocok denganabby abernathy,Abby, Abernathy,Abby (ABERNATHY), dan seterusnya. - Karakter di sekitar kecocokan harus memiliki jenis yang berbeda (huruf
atau angka) dari karakter yang berdekatan dalam kata. Jika kamus Anda memindai
Abi, kamus tersebut akan cocok dengan tiga karakter pertamaAbi904, tetapi tidak denganAbigail. - Kata kamus yang berisi karakter dalam Supplementary Multilingual Plane standar Unicode dapat menghasilkan temuan yang tidak terduga. Contoh karakter tersebut adalah emoji, simbol ilmiah, dan aksara sejarah.
Huruf, angka, dan karakter alfabet lainnya ditentukan sebagai berikut:
- Huruf: karakter dengan kategori umum
Lu,Ll,Lt,Lm, atauLodalam spesifikasi Unicode - Digit: karakter dengan kategori umum
Nddalam spesifikasi Unicode - Karakter alfabet lainnya: karakter dengan kategori umum
Nldalam spesifikasi Unicode atau dengan properti kontributifOther_Alphabeticseperti yang ditentukan oleh Unicode Standard
Contoh
Daftar kata sederhana
Misalnya, Anda memiliki data yang mencakup ruang rumah sakit tempat pasien dirawat selama kunjungan. Lokasi ini dapat dianggap sensitif dalam set data tertentu, tetapi tidak akan terdeteksi oleh detektor bawaan Sensitive Data Protection.
Ruang tersebut tercantum sebagai:
- "RM-Orange"
- "RM-Yellow"
- "RM-Green"
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST
Contoh JSON berikut menentukan kamus kustom yang dapat Anda gunakan untuk melakukan de-identifikasi nomor kamar kustom.
Input JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"Patient was seen in RM-YELLOW then transferred to rm green."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"primitiveTransformation":{
"replaceWithInfoTypeConfig":{
}
}
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"CUSTOM_ROOM_ID"
},
"dictionary":{
"wordList":{
"words":[
"RM-GREEN",
"RM-YELLOW",
"RM-ORANGE"
]
}
}
}
]
}
}
Output JSON:
Saat kita mem-POST input JSON ke
content:deidentify,
input tersebut akan menampilkan respons JSON berikut:
{
"item":{
"value":"Patient was seen in [CUSTOM_ROOM_ID] then transferred to [CUSTOM_ROOM_ID]."
},
"overview":{
"transformedBytes":"17",
"transformationSummaries":[
{
"infoType":{
"name":"CUSTOM_ROOM_ID"
},
"transformation":{
"replaceWithInfoTypeConfig":{
}
},
"results":[
{
"count":"2",
"code":"SUCCESS"
}
],
"transformedBytes":"17"
}
]
}
}
Sensitive Data Protection telah mengidentifikasi nomor kamar dengan benar
yang ditentukan dalam pesan
WordList
kamus kustom. Perhatikan bahwa item bahkan dicocokkan saat huruf besar/kecil dan tanda hubung (-) tidak ada, seperti pada contoh kedua, "rm green".
Daftar pengecualian
Misalnya, Anda memiliki data log yang menyertakan ID pelanggan seperti alamat email, dan Anda ingin menyamarkan informasi ini. Namun, log ini juga menyertakan alamat email developer internal, dan Anda tidak ingin menyamarkan alamat email tersebut.
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST
Contoh JSON berikut membuat kamus kustom yang mencantumkan subset alamat email dalam pesan WordList (jack@example.org dan jill@example.org), dan menetapkan nama infoType kustom DEVELOPER_EMAIL. JSON ini menginstruksikan
Sensitive Data Protection untuk mengabaikan alamat email yang ditentukan, sekaligus
mengganti alamat email lain yang terdeteksi dengan string yang sesuai
dengan infoType-nya (dalam hal ini, EMAIL_ADDRESS):
Input JSON:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}
{
"item":{
"value":"jack@example.org accessed customer record of user5@example.com"
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"primitiveTransformation":{
"replaceWithInfoTypeConfig":{
}
},
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"DEVELOPER_EMAIL"
},
"dictionary":{
"wordList":{
"words":[
"jack@example.org",
"jill@example.org"
]
}
}
}
],
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
"ruleSet": [
{
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
],
"rules": [
{
"exclusionRule": {
"excludeInfoTypes": {
"infoTypes": [
{
"name": "DEVELOPER_EMAIL"
}
]
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
]
}
}
Output JSON:
Saat kita mem-POSTING JSON ini ke
content:deidentify,
JSON ini akan menampilkan respons JSON berikut:
{
"item":{
"value":"jack@example.org accessed customer record of [EMAIL_ADDRESS]"
},
"overview":{
"transformedBytes":"17",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"replaceWithInfoTypeConfig":{
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"17"
}
]
}
}
Output telah mengidentifikasi user1@example.com dengan benar sebagai cocok dengan
detektor infoType EMAIL_ADDRESS dan jack@example.org sebagai cocok dengan
detektor infoType kustom DEVELOPER_EMAIL. Perhatikan bahwa karena kita memilih untuk hanya
mentransformasi EMAIL_ADDRESS, jack@example.org tidak diubah.
Menambah pendeteksi infotype bawaan
Pertimbangkan skenario saat pendeteksi infoType bawaan tidak menampilkan nilai yang benar. Misalnya, Anda ingin menampilkan kecocokan pada nama orang, tetapi
pendeteksi PERSON_NAME bawaan Sensitive Data Protection gagal
menampilkan kecocokan pada beberapa nama orang yang umum dalam set data Anda.
Sensitive Data Protection memungkinkan Anda menambah detektor infoType bawaan
dengan menyertakan detektor bawaan dalam deklarasi untuk detektor infoType
kustom, seperti yang ditunjukkan dalam contoh berikut. Cuplikan ini menggambarkan cara
mengonfigurasi Sensitive Data Protection sehingga pendeteksi infoType bawaan PERSON_NAME
juga akan mencocokkan nama "Quasimodo:"
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST
...
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"PERSON_NAME"
},
"dictionary":{
"wordList":{
"words":[
"quasimodo"
]
}
}
}
]
}
...
Langkah berikutnya
Pelajari kamus kustom besar.