K-anonymity הוא מאפיין של קבוצת נתונים שמציין את היכולת לזהות מחדש את הרשומות שלו. קבוצת נתונים היא k-אנונימית אם המזהים החלקיים של כל אדם בקבוצת הנתונים זהים לאלה של לפחות k – 1 אנשים אחרים שגם נמצאים בקבוצת הנתונים.
אפשר לחשב את ערך ה-k-anonymity על סמך עמודה אחת או יותר, או שדות, של מערך נתונים. במאמר הזה נסביר איך לחשב ערכי אנונימיות מסוג k למערך נתונים באמצעות Sensitive Data Protection. למידע נוסף על k-אנונימיות או על ניתוח סיכונים באופן כללי, קראו את הנושא של מושג ניתוח הסיכונים לפני שתמשיכו.
לפני שמתחילים
לפני שממשיכים, חשוב לוודא שביצעתם את הפעולות הבאות:
- נכנסים לחשבון Google.
- בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו. כניסה לדף לבחירת הפרויקט
- מוודאים שהחיוב מופעל בפרויקט ב- Google Cloud . איך מוודאים שהחיוב מופעל בפרויקט?
- מפעילים את Sensitive Data Protection. הפעלת Sensitive Data Protection
- בוחרים מערך נתונים ב-BigQuery לניתוח. Sensitive Data Protection מחשב את מדד האנונימיות k על ידי סריקה של טבלה ב-BigQuery.
- מגדירים מזהה (אם רלוונטי) ולפחות מזהה חלקי אחד בקבוצת הנתונים. מידע נוסף זמין במאמר מונחים וטכניקות לניתוח סיכונים.
חישוב k-anonymity
Sensitive Data Protection מבצע ניתוח סיכונים בכל פעם שמופעלת משימת ניתוח סיכונים. קודם צריך ליצור את המשימה באמצעות מסוףGoogle Cloud , שליחת בקשה ל-DLP API או שימוש בספריית הלקוח של Sensitive Data Protection.
המסוף
במסוף Google Cloud , עוברים לדף יצירת ניתוח סיכונים.
בקטע Choose input data, מציינים את הטבלה ב-BigQuery שרוצים לסרוק. לשם כך, מזינים את מזהה הפרויקט שמכיל את הטבלה, את מזהה מערך הנתונים של הטבלה ואת שם הטבלה.
בקטע Privacy metric to compute, בוחרים באפשרות k-anonymity.
בקטע Job ID, אתם יכולים לתת למשימה מזהה בהתאמה אישית ולבחור מיקום משאב שבו Sensitive Data Protection יעבד את הנתונים. בסיום, לוחצים על המשך.
בקטע Define fields, מציינים מזהים ומזהים חלקיים למשימת הסיכון של k-אנונימיות. Sensitive Data Protection ניגש למטא-נתונים של הטבלה ב-BigQuery שציינתם בשלב הקודם, ומנסה לאכלס את רשימת השדות.
- מסמנים את התיבה המתאימה כדי לציין אם השדה הוא מזהה (ID) או מזהה חלקי (QI). צריך לבחור 0 או 1 מזהים ולפחות מזהה חלקי אחד.
- אם Sensitive Data Protection לא יכול לאכלס את השדות, לוחצים על Enter field name כדי להזין ידנית שדה אחד או יותר ולהגדיר כל אחד מהם כמזהה או כמזהה חלקי. בסיום, לוחצים על המשך.
בקטע Add actions אפשר להוסיף פעולות אופציונליות לביצוע בסיום משימת הסיכון. האפשרויות הזמינות הן:
- Save to BigQuery: שמירת התוצאות של סריקת ניתוח הסיכונים בטבלה ב-BigQuery.
Publish to Pub/Sub: פרסום התראה בנושא Pub/Sub.
התראה באימייל: נשלח אליכם אימייל עם התוצאות. כשמסיימים, לוחצים על יצירה.
משימת ניתוח הסיכונים של k-anonymity מתחילה מיד.
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.
כדי לבצע אימות ב-"הגנה על מידע אישי", צריך להגדיר את 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
כדי להריץ משימה חדשה של ניתוח סיכונים לחישוב k-anonymity, שולחים בקשה למשאב projects.dlpJobs, כאשר PROJECT_ID מציין את מזהה הפרויקט:
https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs
הבקשה מכילה אובייקט RiskAnalysisJobConfig, שמורכב מהרכיבים הבאים:
אובייקט
PrivacyMetric. כאן מציינים שמחשבים את k-anonymity על ידי הכללת אובייקטKAnonymityConfig.אובייקט
BigQueryTable. כדי לציין את הטבלה ב-BigQuery שרוצים לסרוק, צריך לכלול את כל הפרטים הבאים:-
projectId: מזהה הפרויקט שמכיל את הטבלה. -
datasetId: מזהה מערך הנתונים של הטבלה. -
tableId: שם הטבלה.
-
קבוצה של אובייקט
Actionאחד או יותר, שמייצגים פעולות להרצה בסדר שצוין, בסיום המשימה. כל אובייקטActionיכול להכיל אחת מהפעולות הבאות:-
SaveFindings: שמירת התוצאות של סריקת ניתוח הסיכונים בטבלה ב-BigQuery. PublishToPubSubאובייקט: פרסום התראה בנושא Pub/Sub.JobNotificationEmailsאובייקט: נשלח לכם אימייל עם התוצאות.
באובייקט
KAnonymityConfigמציינים את הפרטים הבאים:-
quasiIds[]: מזהה חלקי אחד או יותר (אובייקטים מסוגFieldId) לסריקה ולחישוב של אנונימיות k. כשמציינים כמה מזהים חלקיים, המערכת מתייחסת אליהם כאל מפתח מורכב (composite key) אחד. אין תמיכה במבנים ובסוגי נתונים חוזרים, אבל יש תמיכה בשדות בתוך שדות, כל עוד הם לא מבנים בעצמם או נמצאים בתוך שדה חוזר. -
entityId: ערך מזהה אופציונלי. אם מגדירים אותו, כל השורות שתואמות לכלentityIdנפרד צריכות להיות מקובצות יחד לצורך חישוב אנונימיות מסוג k. בדרך כלל,entityIdיהיה עמודה שמייצגת משתמש ייחודי, כמו מספר לקוח או מזהה משתמש. כש-entityIdמופיע בכמה שורות עם ערכים שונים של מזהים חלקיים, השורות האלה יצורפו כדי ליצור קבוצה מרובה שתשמש כמזהים החלקיים של אותה ישות. למידע נוסף על מזהי ישויות, קראו את המאמר מזהי ישויות וחישוב אנונימיות k בנושא ניתוח סיכונים.
-
ברגע ששולחים בקשה ל-DLP API, מתחילה משימת ניתוח הסיכונים.
הצגת רשימה של משימות ניתוח סיכונים שהושלמו
אתם יכולים לראות רשימה של משימות ניתוח הסיכונים שהופעלו בפרויקט הנוכחי.
המסוף
כדי להציג רשימה של משימות ניתוח סיכונים שפועלות או שפעלו בעבר במסוףGoogle Cloud :
פותחים את Sensitive Data Protection במסוף Google Cloud .
לוחצים על הכרטיסייה משימות וטריגרים של משימות בחלק העליון של הדף.
לוחצים על הכרטיסייה Risk jobs.
פרסום המשרה שזוהתה כבעייתית מופיע.
פרוטוקול
כדי להציג רשימה של משימות ניתוח סיכונים שפועלות או שפעלו בעבר, שולחים בקשת GET למשאב projects.dlpJobs. הוספת מסנן של סוג העבודה (?type=RISK_ANALYSIS_JOB) מצמצמת את התגובה למשימות של ניתוח סיכונים בלבד.
https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs?type=RISK_ANALYSIS_JOB
התשובה שתקבלו תכיל ייצוג JSON של כל המשימות הנוכחיות והקודמות של ניתוח הסיכונים.
הצגת תוצאות של משימות k-anonymity
במסוף של Sensitive Data Protection ב- Google Cloud יש תצוגות חזותיות מובנות של משימות k-anonymity שהושלמו. אחרי שמבצעים את ההוראות שבקטע הקודם, בוחרים את המשימה שרוצים לראות את התוצאות שלה מתוך רשימת משימות ניתוח הסיכונים. אם המשימה בוצעה בהצלחה, החלק העליון של הדף Risk analysis details נראה כך:

בחלק העליון של הדף מופיע מידע על המשימה של סיכון האנונימיות מסוג k, כולל מזהה המשימה, ובקטע מאגר מופיע מיקום המשאב.
כדי לראות את התוצאות של חישוב ה-k-anonymity, לוחצים על הכרטיסייה K-anonymity. כדי לראות את ההגדרות של משימת ניתוח הסיכונים, לוחצים על הכרטיסייה Configuration.
בכרטיסייה K-anonymity מופיעים קודם מזהה הישות (אם יש כזה) והמזהים למחצה שמשמשים לחישוב k-anonymity.
תרשים סיכונים
בתרשים Re-identification risk, בציר ה-y מוצג אחוז אובדן הנתונים הפוטנציאלי של שורות ייחודיות ושל שילובים ייחודיים של מזהים חלקיים, כדי להשיג בציר ה-x ערך של k-anonymity. הצבע של התרשים מציין גם את פוטנציאל הסיכון. גוונים כהים יותר של כחול מציינים סיכון גבוה יותר, וגוונים בהירים יותר מציינים סיכון נמוך יותר.
ערכים גבוהים יותר של k-anonymity מצביעים על סיכון נמוך יותר לשחזור פרטי זיהוי. עם זאת, כדי להשיג ערכי k-אנונימיות גבוהים יותר, תצטרכו להסיר אחוזים גבוהים יותר מסך השורות ושילובים ייחודיים גבוהים יותר של מזהים חלקיים, מה שעשוי להפחית את התועלת של הנתונים. כדי לראות ערך ספציפי של אחוז אובדן פוטנציאלי לערך מסוים של אנונימיות k, מעבירים את סמן העכבר מעל התרשים. כמו שמוצג בצילום המסך, מופיע הסבר קצר בתרשים.
כדי לראות פרטים נוספים על ערך k-anonymity ספציפי, לוחצים על הנקודה המתאימה על הגרף. מתחת לתרשים מופיע הסבר מפורט, ובהמשך הדף מופיעה טבלה עם נתונים לדוגמה.
טבלת נתונים לדוגמה של סיכונים
הרכיב השני בדף התוצאות של משימת הסיכון הוא טבלת הנתונים לדוגמה. הוא מציג שילובים של מזהים חלקיים לערך יעד נתון של k-anonymity.

בעמודה הראשונה בטבלה מפורטים ערכי k-anonymity. לוחצים על ערך k-anonymity כדי לראות את הנתונים לדוגמה שצריך להשמיט כדי להגיע לערך הזה.
בעמודה השנייה מוצג אובדן הנתונים הפוטנציאלי של שורות ייחודיות ושילובים של מזהים חלקיים, וגם מספר הקבוצות עם לפחות k רשומות ומספר הרשומות הכולל.
בעמודה האחרונה מוצגת דגימה של קבוצות שחולקות שילוב של מזהים חלקיים, לצד מספר הרשומות שקיימות לשילוב הזה.
אחזור פרטי המשימה באמצעות REST
כדי לאחזר את התוצאות של משימת ניתוח הסיכונים של אנונימיות-k באמצעות API בארכיטקטורת REST, שולחים את בקשת ה-GET הבאה למשאב projects.dlpJobs. מחליפים את PROJECT_ID במזהה הפרויקט ואת JOB_ID במזהה המשימה שרוצים לקבל את התוצאות שלה.
מזהה המשימה הוחזר כשהתחלתם את המשימה, ואפשר גם לאחזר אותו על ידי הצגת רשימה של כל המשימות.
GET https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs/JOB_ID
הבקשה מחזירה אובייקט JSON שמכיל מופע של המשימה. תוצאות הניתוח נמצאות במפתח "riskDetails", באובייקט AnalyzeDataSourceRiskDetails. למידע נוסף, קראו את מאמרי העזרה של ה-API בנושא המשאב DlpJob.
דוגמת קוד: חישוב k-anonymity עם מזהה ישות
בדוגמה הזו נוצרת משימת ניתוח סיכונים שמחשבת את k-anonymity עם מזהה ישות.
מידע נוסף על מזהי ישויות זמין במאמר מזהי ישויות וחישוב אנונימיות k.
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. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
המאמרים הבאים
- איך מחשבים את ערך l-diversity של מערך נתונים
- איך מחשבים את הערך של k-map בקבוצת נתונים
- איך מחשבים את הערך של δ-presence במערך נתונים