בדף הזה מוצגות שאילתות לדוגמה שאפשר להשתמש בהן כדי לנתח את הממצאים של Sensitive Data Protection שיוצאו ל-BigQuery.
אתם יכולים להגדיר משימת בדיקה או טריגר של משימה כדי לשמור את הממצאים ב-BigQuery. כך תוכלו לשלוח שאילתות לגבי הממצאים לצורך ניתוח נוסף. כשמייצאים את הממצאים ל-BigQuery, הנתונים נכתבים בטבלה חדשה או בטבלה קיימת.
למידע נוסף על כל הפעולות ש-Sensitive Data Protection יכול לבצע אחרי הבדיקה, קראו את המאמר פעולות.
למידע נוסף על הרצת שאילתות, קראו את המאמרים הבאים:
עמודות בטבלה ב-BigQuery
העמודות בטבלה של הממצאים שיוצאו מבוססות על המאפיינים של האובייקט Finding.
קישור התוצאות בחזרה לשורות שמכילות את הממצאים
אם אתם מגדירים בדיקה של טבלה ב-BigQuery, אתם יכולים להגדיר את המשימה או את הטריגר של המשימה כך שהממצאים שיוצאו יכילו את המזהים של השורה. כך תוכלו לקשר את ממצאי הבדיקה בחזרה לשורות שמכילות אותם.
במשימת הבדיקה או בטריגר של המשימה, מגדירים את השדות הבאים לשמות של העמודות שמזהות באופן ייחודי כל שורה בטבלה – כלומר, העמודות שמשמשות כמפתח ראשי:
- אם אתם משתמשים במסוף Google Cloud , הגדירו את השדה Identifying fields (comma separated).
- אם אתם משתמשים ב-DLP API, הגדירו את המאפיין
identifyingFields.
כשהבדיקה תסתיים והממצאים ייצאו ל-BigQuery, כל ממצא יכיל את הערכים המתאימים של העמודות שציינתם. הערכים האלה יופיעו בשדה location.content_locations.record_location.record_key.id_values. לאחר מכן תוכלו להשתמש בערכים האלה כדי לקשר את הממצא בחזרה לשורה הספציפית בטבלה ב-BigQuery שנבדקה.
שאילתות לדוגמה
אתם יכולים להשתמש בשאילתות לדוגמה הבאות כדי לנתח את הממצאים. אפשר גם להשתמש בשאילתות בכלי להמחשה חזותית כמו Data Studio. השאילתות האלה נועדו לעזור לכם להתחיל לשלוח שאילתות לגבי נתוני הממצאים.
בכל אחת מהשאילתות הבאות, מחליפים את הערכים הבאים:
-
PROJECT_ID: מזהה הפרויקט -
DATASET: השם של מערך הנתונים ב-BigQuery -
TABLE_ID: מזהה הטבלה
בחירת מספר המופעים של כל infoType
מסוף Google Cloud
SELECT info_type.name, COUNT(info_type.name) AS count FROM `PROJECT_ID.DATASET.TABLE_ID` GROUP BY info_type.name ORDER BY count DESC;
שורת הפקודה
bq query --use_legacy_sql=false ' SELECT info_type.name, COUNT(info_type.name) AS count FROM `PROJECT_ID.DATASET.TABLE_ID` GROUP BY info_type.name ORDER BY count DESC;'
בחירת מספר המופעים של כל infoType לפי יום
מסוף Google Cloud
SELECT info_type.name, cast(TIMESTAMP_SECONDS(create_time.seconds) as date) as day, COUNT(locations.container_name) AS count FROM `PROJECT_ID.DATASET.TABLE_ID`, UNNEST(location.content_locations) AS locations GROUP BY info_type.name, day ORDER BY count DESC;
שורת הפקודה
bq query --use_legacy_sql=false ' SELECT info_type.name, cast(TIMESTAMP_SECONDS(create_time.seconds) as date) as day, COUNT(locations.container_name) AS count FROM `PROJECT_ID.DATASET.TABLE_ID`, UNNEST(location.content_locations) AS locations GROUP BY info_type.name, day ORDER BY count DESC;'
בוחר את הספירה של כל infoType בכל מאגר
מסוף Google Cloud
SELECT info_type.name, locations.container_name, COUNT(locations.container_name) AS count FROM `PROJECT_ID.DATASET.TABLE_ID`, UNNEST(location.content_locations) AS locations GROUP BY locations.container_name, info_type.name ORDER BY count DESC;
שורת הפקודה
bq query --use_legacy_sql=false ' SELECT info_type.name, locations.container_name, COUNT(locations.container_name) AS count FROM `PROJECT_ID.DATASET.TABLE_ID`, UNNEST(location.content_locations) AS locations GROUP BY locations.container_name,info_type.name ORDER BY count DESC;'
בחירת סוגי הממצאים שנמצאו בכל עמודה בטבלה
השאילתה הזו מקבצת את כל הממצאים לפי שם העמודה, והיא מיועדת לפעול על ממצאים ממשימת בדיקה של BigQuery. השאילתה הזו שימושית אם אתם מנסים לזהות את הסוגים הסבירים של עמודה נתונה. כדי לשנות את ההגדרות, אפשר לשנות את הסעיפים WHERE ו-HAVING. לדוגמה, אם טבלת הממצאים כוללת כמה תוצאות של טבלאות, אתם יכולים להגביל אותן להרצת משימה אחת או לשם טבלה אחד.
מסוף Google Cloud
SELECT table_counts.field_name, STRING_AGG( CONCAT(" ",table_counts.name," [count: ",CAST(table_counts.count_total AS String),"]") ORDER BY table_counts.count_total DESC) AS infoTypes FROM ( SELECT locations.record_location.field_id.name AS field_name, info_type.name, COUNT(*) AS count_total FROM `PROJECT_ID.DATASET.TABLE_ID`, UNNEST(location.content_locations) AS locations WHERE (likelihood = 'LIKELY' OR likelihood = 'VERY_LIKELY' OR likelihood = 'POSSIBLE') GROUP BY locations.record_location.field_id.name, info_type.name HAVING count_total>200 ) AS table_counts GROUP BY table_counts.field_name ORDER BY table_counts.field_name
השאילתה שלמעלה עשויה להניב תוצאה כמו זו של טבלה לדוגמה, שבה העמודה infoTypes מציינת כמה מופעים של כל infoType נמצאו בעמודה הנתונה.
| field_name | infoTypes |
|---|---|
field1 |
CUSTOM_USER_US [count: 7004], CUSTOM_USER_EU [count: 2996] |
field2 |
US_VEHICLE_IDENTIFICATION_NUMBER [count: 9597] |
field3 |
EMAIL_ADDRESS [count: 10000] |
field4 |
IP_ADDRESS [count: 10000] |
field5 |
PHONE_NUMBER [count: 7815] |
field6 |
US_SOCIAL_SECURITY_NUMBER [count: 10000] |
field7 |
CREDIT_CARD_NUMBER [count: 10000] |