מילונים בהתאמה אישית מספקים יכולת פשוטה אך יעילה להתאים רשימה של מילים או ביטויים. אתם יכולים להשתמש במילון מותאם אישית כגלאי או כרשימת חריגים לגלאים מובנים. אפשר גם להשתמש במילונים בהתאמה אישית כדי להרחיב את הגלאים המובנים של infoType, כך שיתאימו לממצאים נוספים.
בקטע הזה מוסבר איך ליצור גלאי רגיל של מילון בהתאמה אישית מרשימת מילים.
המבנה של כלל מותאם אישית לבדיקת נתוני infoType במילון
כפי שמסוכם בסקירה הכללית של ה-API, כדי ליצור כלל מותאם אישית לבדיקת נתוני infoType של מילון, מגדירים אובייקט CustomInfoType שמכיל את הפרטים הבאים:
- השם שרוצים לתת לכלל המותאם אישית לבדיקת נתוני infoType, בתוך אובייקט
InfoType. - ערך
Likelihoodאופציונלי. אם משמיטים את השדה הזה, התאמות לפריטים במילון יחזירו סבירות שלVERY_LIKELYכברירת מחדל. - אופציונלי
DetectionRuleאובייקטים או כללי הרחבה (Hotword). הכללים האלה משנים את הסבירות לממצאים בקרבה מסוימת למילות מפתח ספציפיות. מידע נוסף על כללי הרחבה (Hotword) במאמר "התאמה אישית של סבירות ההתאמה" ערך
SensitivityScoreאופציונלי. אם לא משמיטים את השדה הזה, התאמות לפריטים במילון יחזירו רמת רגישות של ברירת מחדל שלHIGH.ציוני רגישות משמשים בפרופילי נתונים. כשמגדירים פרופיל לנתונים, Sensitive Data Protection משתמש בציוני הרגישות של ה-infoTypes כדי לחשב את רמת הרגישות.
Dictionary, בתורWordListשמכיל רשימה של מילים שצריך לחפש אוCloudStoragePathלקובץ טקסט יחיד שמכיל רשימה של מילים שצריך לחפש, מופרדות בשורות חדשות.
כאובייקט JSON, כלל מותאם אישית לבדיקת נתוני infoType שכולל את כל הרכיבים האופציונליים נראה כך: קובץ ה-JSON הזה כולל נתיב לקובץ טקסט של מילון שמאוחסן ב-Cloud Storage. בקטע דוגמאות בהמשך הנושא הזה מופיעה רשימת מילים מוטבעת.
{
"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"
}
}
}
],
...
}
פרטים על התאמה למילון
בהמשך מוסבר איך Sensitive Data Protection מתאים מילים וביטויים במילון. הנקודות הבאות רלוונטיות גם למילונים רגילים וגם למילונים גדולים בהתאמה אישית:
- המילים במילון לא תלויות-רישיות. אם המילון כולל את המילה
Abby, תהיה התאמה ל-abby, ל-ABBY, ל-Abbyוכן הלאה. - כל התווים – במילונים או בתוכן שצריך לסרוק – שאינם אותיות, ספרות ותווים אלפביתיים אחרים שנכללים ב-Basic Multilingual Plane של Unicode, נחשבים לרווחים כשסורקים כדי למצוא התאמות. אם המילון סורק את
Abby Abernathy, הוא יתאים ל-abby abernathy, ל-Abby, Abernathy, ל-Abby (ABERNATHY)וכן הלאה. - התווים שמסביב להתאמה חייבים להיות מסוג שונה (אותיות או ספרות) מהתווים הסמוכים בתוך המילה. אם המילון סורק את
Abi, הוא יתאים לשלושת התווים הראשונים שלAbi904, אבל לא שלAbigail. - מילים במילון שמכילות תווים במישור הרב-לשוני המשלים של תקן Unicode יכולות להניב ממצאים לא צפויים. דוגמאות לתווים כאלה: אמוג'י, סמלים מדעיים וכתבים היסטוריים.
אותיות, ספרות ותווים אלפביתיים אחרים מוגדרים כך:
- אותיות: תווים עם הקטגוריות הכלליות
Lu,Ll,Lt,LmאוLoבמפרט של Unicode - ספרות: תווים עם הקטגוריה הכללית
Ndבמפרט של Unicode - תווים אלפביתיים אחרים: תווים עם קטגוריה כללית
Nlבמפרט של Unicode או עם מאפיין תורםOther_Alphabeticכפי שמוגדר בתקן Unicode
דוגמאות
רשימת מילים פשוטה
נניח שיש לכם נתונים שכוללים את החדר בבית החולים שבו המטופל קיבל טיפול במהלך ביקור. יכול להיות שהמיקומים האלה ייחשבו כרגישים בקבוצת נתונים מסוימת, אבל הם לא יזוהו על ידי הגלאים המובנים של Sensitive Data Protection.
החדרים היו רשומים בתור:
- "RM-Orange"
- "RM-Yellow"
- "RM-Green"
C#
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Go
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Java
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Node.js
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
PHP
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
REST
הדוגמה הבאה של JSON מגדירה מילון בהתאמה אישית שאפשר להשתמש בו כדי להסיר פרטי זיהוי של מספרי חדרים בהתאמה אישית.
קלט 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"
]
}
}
}
]
}
}
פלט מסוג JSON:
כששולחים את קלט ה-JSON בבקשת POST אל content:deidentify, מתקבלת תגובת ה-JSON הבאה:
{
"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 זיהה נכון את מספרי החדרים שצוינו בהודעה WordList של המילון בהתאמה אישית. שימו לב שהפריטים מותאמים גם אם האותיות הרישיות והמקף (-) חסרים, כמו בדוגמה השנייה, "rm green".
רשימת חריגים
נניח שיש לכם נתוני יומן שכוללים מזהי לקוחות כמו כתובות אימייל, ואתם רוצים לצנזר את המידע הזה. עם זאת, היומנים האלה כוללים גם את כתובות האימייל של המפתחים הפנימיים, ואתם לא רוצים לצנזר אותן.
C#
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Go
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Java
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Node.js
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
PHP
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
REST
בדוגמה הבאה של JSON נוצר מילון בהתאמה אישית שמפרט קבוצת משנה של כתובות אימייל בהודעה WordList (jack@example.org ו-jill@example.org), ומקצה להן את השם DEVELOPER_EMAIL של ה-infoType בהתאמה אישית. קובץ ה-JSON הזה מורה ל-Sensitive Data Protection להתעלם מכתובות האימייל שצוינו, ולהחליף כל כתובת אימייל אחרת שהיא מזהה במחרוזת שתואמת ל-infoType שלה (במקרה הזה, EMAIL_ADDRESS):
קלט 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"
}
}
]
}
]
}
}
פלט מסוג JSON:
כששולחים את ה-JSON הזה בבקשת POST אל content:deidentify, מוחזרת תגובת ה-JSON הבאה:
{
"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"
}
]
}
}
בפלט, user1@example.com זוהה בצורה נכונה על ידי הגלאי של infoType EMAIL_ADDRESS, ו-jack@example.org זוהה בצורה נכונה על ידי הגלאי של infoType בהתאמה אישית DEVELOPER_EMAIL. שימו לב: בחרנו לשנות רק את EMAIL_ADDRESS, ולכן jack@example.org נשאר ללא שינוי.
הרחבה של גלאי מובנה של סוג מידע
נניח שיש לכם גלאי מובנה של infoType שלא מחזיר את הערכים הנכונים. לדוגמה, נניח שאתם רוצים להחזיר התאמות לשמות של אנשים, אבל הגלאי המובנה PERSON_NAME של Sensitive Data Protection לא מצליח להחזיר התאמות לשמות של אנשים שנפוצים בקבוצת הנתונים שלכם.
בעזרת Sensitive Data Protection אתם יכולים להרחיב את הגלאים המובנים של infoType, על ידי הכללת גלאי מובנה בהצהרה על גלאי infoType בהתאמה אישית, כמו בדוגמה הבאה. קטע הקוד הזה מדגים איך להגדיר את Sensitive Data Protection כך שהגלאי המובנה של infoType PERSON_NAME יתאים גם לשם "Quasimodo":
C#
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Go
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Java
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Node.js
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
PHP
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר ספריות הלקוח של Sensitive Data Protection מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-Sensitive Data Protection.
כדי לבצע אימות ב-Sensitive Data Protection, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
REST
...
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"PERSON_NAME"
},
"dictionary":{
"wordList":{
"words":[
"quasimodo"
]
}
}
}
]
}
...
המאמרים הבאים
מידע על מילונים גדולים בהתאמה אישית