Kamus kustom memberikan kemampuan yang sederhana namun efektif untuk mencocokkan daftar kata atau frasa. Anda dapat menggunakan kamus kustom sebagai detektor atau sebagai daftar pengecualian untuk detektor bawaan. Anda juga dapat menggunakan kamus kustom untuk meningkatkan pendeteksi infoType bawaan agar cocok dengan temuan tambahan.
Bagian ini menjelaskan cara membuat pendeteksi kamus kustom reguler dari daftar kata.
Anatomi pendeteksi 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
Likelihood
opsional. Jika Anda menghapus kolom ini, kecocokan dengan item kamus akan menampilkan kemungkinan defaultVERY_LIKELY
. - Objek
DetectionRule
opsional, atau aturan kata aktif. Aturan ini menyesuaikan kemungkinan temuan dalam jarak tertentu dari kata kunci yang ditentukan. Pelajari lebih lanjut aturan kata aktif dalam Menyesuaikan kemungkinan kecocokan. Nilai
SensitivityScore
opsional. 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
, sebagaiWordList
yang berisi daftar kata yang akan dipindai atauCloudStoragePath
ke satu file teks yang berisi daftar kata yang akan dipindai yang dibatasi newline.
Sebagai objek JSON, detektor infoType kustom kamus yang mencakup semua komponen opsional akan terlihat seperti berikut. JSON ini mencakup jalur ke file teks kamus yang disimpan di Cloud Storage. Untuk melihat daftar kata inline, lihat bagian Contoh, di bagian selanjutnya 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"
}
}
}
],
...
}
Kekhususan 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-kata dalam kamus tidak peka huruf besar/kecil. Jika kamus Anda menyertakan
Abby
, maka akan cocok denganabby
,ABBY
,Abby
, dan sebagainya. - Semua karakter—dalam kamus atau dalam konten yang akan dipindai—selain huruf, digit, 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 tersebut akan cocok denganabby abernathy
,Abby, Abernathy
,Abby (ABERNATHY)
, dan sebagainya. - Karakter di sekitar kecocokan harus berupa jenis yang berbeda (huruf atau angka) dengan karakter yang berdekatan dalam kata. Jika kamus Anda memindai
Abi
, kamus tersebut akan cocok dengan tiga karakter pertamaAbi904
, tetapi tidak denganAbigail
. - Kata-kata dalam kamus yang berisi karakter dalam Supplementary Multilingual Plane dari standar Unicode dapat menghasilkan temuan yang tidak terduga. Contoh karakter tersebut adalah emoji, simbol ilmiah, dan skrip historis.
Huruf, digit, dan karakter alfabetis lainnya didefinisikan sebagai berikut:
- Huruf: karakter dengan kategori umum
Lu
,Ll
,Lt
,Lm
, atauLo
dalam spesifikasi Unicode - Digit: karakter dengan kategori umum
Nd
dalam spesifikasi Unicode - Karakter alfabet lainnya: karakter dengan kategori umum
Nl
dalam spesifikasi Unicode atau dengan properti kontributifOther_Alphabetic
seperti yang ditentukan oleh Standar Unicode
Contoh
Daftar kata sederhana
Misalnya, Anda memiliki data yang mencakup ruang rumah sakit tempat pasien dirawat selama kunjungan. Lokasi ini mungkin dianggap sensitif dalam set data tertentu, tetapi tidak akan terdeteksi oleh detektor bawaan Perlindungan Data Sensitif.
Ruangan 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
JSON contoh berikut menentukan kamus kustom yang dapat Anda gunakan untuk menghilangkan identitas 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 mengirim input JSON ke
content:deidentify
,
respons JSON berikut akan ditampilkan:
{
"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"
}
]
}
}
Perlindungan Data Sensitif telah mengidentifikasi dengan benar nomor kamar yang ditentukan dalam pesan WordList
kamus kustom. Perhatikan bahwa item tetap dicocokkan meskipun huruf besar/kecil dan tanda hubung (-
) tidak ada, seperti dalam contoh kedua, "rm green".
Daftar pengecualian
Misalnya, Anda memiliki data log yang mencakup ID pelanggan seperti alamat email, dan Anda ingin menyamarkan informasi ini. Namun, log ini juga mencakup 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
kepada alamat email tersebut. JSON ini menginstruksikan
Perlindungan Data Sensitif 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 mengirim JSON ini ke
content:deidentify
,
respons JSON berikut akan ditampilkan:
{
"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 pendeteksi infoType EMAIL_ADDRESS
dan jack@example.org sebagai cocok dengan pendeteksi infoType kustom DEVELOPER_EMAIL
. Perhatikan bahwa karena kita memilih untuk hanya
mengubah EMAIL_ADDRESS
, jack@example.org tidak berubah.
Memperluas pendeteksi infoType bawaan
Pertimbangkan skenario saat detektor infoType bawaan tidak menampilkan nilai yang benar. Misalnya, Anda ingin menampilkan kecocokan pada nama orang, tetapi
detektor PERSON_NAME
bawaan Sensitive Data Protection gagal
menampilkan kecocokan pada beberapa nama orang yang umum dalam set data Anda.
Sensitive Data Protection memungkinkan Anda memperluas detektor infoType bawaan
dengan menyertakan detektor bawaan dalam deklarasi untuk detektor infoType
kustom, seperti yang ditunjukkan dalam contoh berikut. Cuplikan ini menggambarkan cara mengonfigurasi Perlindungan Data Sensitif sehingga detektor 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.