מבוא ליומני ביקורת ב-BigQuery

אתם יכולים להשתמש ביומני הביקורת של BigQuery כדי לעקוב אחרי פעילויות ניהול וגישה לנתונים בפרויקטים שלכם. יומנים הם קובצי טקסט שנוצרים באופן אוטומטי ומתעדים מי ביצע פעולות ספציפיות, כמו יצירת טבלאות או הרצת משימות, כדי לעזור לכם לשמור על האבטחה ולהבטיח תאימות. במאמר הזה מוסבר מתי להשתמש ביומני ביקורת ומוצגת סקירה כללית של הפורמט שלהם.

ב-Google Cloud נכתבים גם יומנים, כולל יומני ביקורת שמספקים תובנות לגבי בעיות תפעוליות שקשורות לשימוש שלכם בשירותי Google Cloud . למידע נוסף על הטיפול של Google Cloud ברישום ביומנים, קראו את המאמרים Cloud Logging וסקירה כללית על יומני הביקורת של Cloud.

יומני ביקורת לעומת תצוגות של INFORMATION_SCHEMA

הפרויקטים שלכם ב- Google Cloud כוללים רק יומני ביקורת של משאבים שמשויכים ישירות לפרויקט ב- Google Cloud . משאבים אחרים ב- Google Cloud , כמו תיקיות, ארגונים וחשבונות לחיוב, מכילים יומני ביקורת משלהם.

יומני הביקורת עוזרים לענות על השאלה "מי עשה מה, איפה ומתי?" במשאבי Google Cloud . יומני הביקורת הם המקור המהימן למידע על פעילות המערכת לפי משתמש ודפוסי גישה, והם צריכים להיות המקור העיקרי לשאלות בנושא ביקורת או אבטחה.

תצוגות של INFORMATION_SCHEMA ב-BigQuery הן מקור נוסף לתובנות שאפשר להשתמש בהן יחד עם מדדים ויומנים. התצוגות האלה מכילות מטא-נתונים על משימות, מערכי נתונים, טבלאות וישויות אחרות של BigQuery. לדוגמה, אתם יכולים לקבל מטא-נתונים בזמן אמת על המשימות שהופעלו ב-BigQuery במהלך פרק זמן מסוים. לאחר מכן, תוכלו לקבץ או לסנן את התוצאות לפי פרויקט, משתמש, טבלאות שאליהן בוצעה הפניה ומאפיינים אחרים.

תצוגות INFORMATION_SCHEMA מספקות מידע לביצוע ניתוח מפורט יותר של עומסי העבודה ב-BigQuery, כמו:

  • מהו השימוש הממוצע ב-slots לכל השאילתות בשבעת הימים האחרונים בפרויקט נתון?
  • אילו שגיאות סטרימינג התרחשו ב-30 הדקות האחרונות, מקובצות לפי קוד שגיאה?

יומני הביקורת של BigQuery מכילים רשומות ביומן של קריאות ל-API, אבל הם לא מתארים את ההשפעה של הקריאות ל-API. קבוצת משנה של קריאות ל-API יוצרת משימות (כמו שאילתה וטעינה) שהמידע שלהן מתועד בתצוגות של INFORMATION_SCHEMA. לדוגמה, אתם יכולים למצוא מידע על הזמן והמשבצות שנוצלו על ידי שאילתה ספציפית בתצוגות INFORMATION_SCHEMA, אבל לא ביומני הביקורת.

כדי לקבל תובנות לגבי הביצועים של עומסי העבודה ב-BigQuery, אפשר לעיין במטא-נתונים של משימות, במטא-נתונים של סטרימינג ובמטא-נתונים של הזמנות.

למידע נוסף על סוגי יומני הביקורת ששירותי Google Cloud כותבים, קראו את המאמר סוגים של יומני ביקורת.

הפורמט של יומן הביקורת

שירותיGoogle Cloud כותבים יומני ביקורת בפורמט JSON מובנה. סוג הנתונים הבסיסי של רשומות ביומן ב- Google Cloud הוא המבנה LogEntry. המבנה הזה מכיל את שם היומן, המשאב שיצר את הרשומה ביומן, חותמת הזמן (UTC) ומידע בסיסי אחר.

היומנים כוללים פרטים על האירוע שנרשם בשדה משנה שנקרא שדה המטען הייעודי (payload). ביומני ביקורת, השדה של המטען הייעודי נקרא protoPayload. סוג השדה הזה (protoPayload.@type) מוגדר כ-type.googleapis.com/google.cloud.audit.AuditLog, מה שמציין שהשדה משתמש במבנה היומן AuditLog.

לפעולות על מערכי נתונים, טבלאות ומשימות, BigQuery כותב יומני ביקורת בשני פורמטים שונים, למרות ששני הפורמטים חולקים את סוג הבסיס AuditLog.

הפורמט הישן יותר כולל את השדות והערכים הבאים:

  • הערך של השדה resource.type הוא bigquery_resource.
  • ‫BigQuery כותב את פרטי הפעולה בשדה protoPayload.serviceData. הערך של השדה הזה משתמש במבנה היומן AuditData.

הפורמט החדש יותר כולל את השדות והערכים הבאים:

  • הערך של השדה resource.type הוא bigquery_project או bigquery_dataset. המשאב bigquery_project מכיל רשומות ביומן שקשורות למשימות, והמשאב bigquery_dataset מכיל רשומות ביומן שקשורות לאחסון.
  • ‫BigQuery כותב את פרטי הפעולה בשדה protoPayload.metadata. הערך של השדה הזה משתמש במבנה BigQueryAuditMetadata.

מומלץ לצרוך יומנים בפורמט החדש יותר. מידע נוסף זמין במדריך להעברת יומני ביקורת.

הדוגמה הבאה היא גרסה מקוצרת של רשומה ביומן שמציגה פעולה שנכשלה:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "code": 5,
      "message": "Not found: Dataset myproject:mydataset was not found in location US"
    },
    "authenticationInfo": { ... },
    "requestMetadata":  { ... },
    "serviceName": "bigquery.googleapis.com",
    "methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
    "metadata": {
  },
  "resource": {
    "type": "bigquery_project",
    "labels": { .. },
  },
  "severity": "ERROR",
  "logName": "projects/myproject/logs/cloudaudit.googleapis.com%2Fdata_access",
  ...
}

בפעולות על הזמנות ב-BigQuery, השדה protoPayload משתמש במבנה AuditLog, והשדות protoPayload.request ו-protoPayload.response מכילים מידע נוסף. הגדרות השדות מפורטות במאמר BigQuery Reservation API. מידע נוסף זמין במאמר מעקב אחרי הזמנות ב-BigQuery.

להבנה עמוקה יותר של הפורמט של יומני הביקורת, קראו את המאמר הסבר על יומני הביקורת.

מגבלות

גודל הודעות היומן מוגבל ל-100,000 בייטים. מידע נוסף זמין במאמר רשומת יומן מקוצרת.

הרשאות גישה וצפייה

יומני הביקורת של BigQuery יכולים לכלול מידע שמשתמשים עשויים להחשיב כרגיש, כמו טקסט SQL, הגדרות סכימה ומזהים של משאבים כמו טבלאות ומערכי נתונים. במסמכי התיעוד של בקרת הגישה ל-Cloud Logging מוסבר איך מנהלים את הגישה למידע הזה.

מפת טלמטריה

בטבלה הבאה מפורטים המאפיינים והמשאבים של BigQuery, ולידם נתוני הטלמטריה של המעקב התפעולי, השירותים והמשאבים של ה-API שנבדקו ומאמרי העזרה של יומני הביקורת. אתם יכולים להשתמש בו כדי למצוא את נתוני הטלמטריה שאתם צריכים כדי לפתור בעיות, לבצע אופטימיזציה של הביצועים, לשלוט בעלויות, לבדוק את השימוש ולשמור על תאימות.

בניגוד להרבה שירותי Google Cloud שכותבים יומני משימות תפעוליות ב-Cloud Logging, ב-BigQuery נכתבים נתוני טלמטריה של משימות תפעוליות בתצוגות של סכימת מידע כמו INFORMATION_SCHEMA.JOBS. התצוגות האלה מתעדות את שלבי הביצוע של השאילתות, את השימוש ב-slots, את הבייטים שחויבו ואת כל המשימות שנשלחו, כולל משימות שנכשלו ומשימות שעדיין לא הסתיימו.

ב-BigQuery משתמשים ב-Logging בעיקר כדי להפיק יומני ביקורת של Cloud, שמתעדים פעילות אדמין ופעילות גישה לנתונים. כשבודקים את הפעילות הזו, אפשר לראות מי ניגש למשאבים או לנתונים, איפה ומתי.

יומני ביקורת לא נוצרים בכל שיבוש או כשל במשימה. לדוגמה, משימות שנכשלו לא יוצרות אירועים מסוג TableDataRead או TableDataChange, והשדה jobCompletedEvent מתעד רק משימות שהושלמו בהצלחה. במאמר סקירה כללית על יומני הביקורת של BigQuery, בקטע גישה לנתונים, מפורטים תרחישים שבהם לא נוצרים יומני ביקורת.

בטבלה הבאה, כוכבית (*) בשם של תצוגת INFORMATION_SCHEMA מציינת וריאציות של תצוגות ספציפיות להיקף, כמו _BY_PROJECT,‏ _BY_USER,‏ _BY_FOLDER ו-_BY_ORGANIZATION.

תכונה או משאב מעקב תפעולי יומני ביקורת של Cloud
שאילתות ומשימות

תצוגות של סכימת מידע:

  • JOBS*: היסטוריה וזמן אמת של ביצוע משימות, מילי-שניות של משבצות, בייטים שחויבו, שלבי ביצוע וכל המשימות שנשלחו, בלי קשר לסטטוס ההשלמה
  • ‫JOBS_TIMELINE*: מצב המשימה והשימוש ב-slot לכל פרוסת זמן

Console:

thought מדדים: מדדי Cloud Monitoring, כמו query/count,‏ query/execution_times ו-job/num_in_flight.

שירות API: bigquery.googleapis.com.

המשאבים שנבדקים: משימות ב-JobService (משאב במעקב: bigquery_project).

יומני ביקורת: יומני גישה לנתונים באמצעות BigQueryAuditMetadata (אירועי JobInsertion ו-JobChange), שמתעדים מי שלח או ביטל משימה, סטטוס משימה, סוג הצהרה וטבלאות או תצוגות שאליהן בוצעה הפניה. סקירה כללית על יומני הביקורת של BigQuery

טבלאות ותצוגות

תצוגות של סכימת מידע:

  • TABLES: מטא-נתונים של טבלה
  • VIEWS: הצגת הגדרות ומטא-נתונים
  • ‫TABLE_STORAGE*: בייטים לוגיים ופיזיים וחיוב על אחסון
  • ‫PARTITIONS: מספר השורות במחיצה ונפח האחסון
  • ‫STREAMING_TIMELINE*: קצב העברת הנתונים ושגיאות בהזנת זרם נתונים
  • ‫WRITE_API_TIMELINE*: תפוקה ושגיאות בשידור כתיבה

‫Metrics: מדדי מעקב, כמו storage/stored_bytes ו-storage/table_count.

שירותי API: bigquery.googleapis.com ו-bigquerystorage.googleapis.com. ביומני הגישה לנתונים של BigQuery Storage API נעשה שימוש ב-bigquery.googleapis.com, וביומני הדחייה של המדיניות נעשה שימוש ב-bigquerystorage.googleapis.com.

המשאבים שנבדקים: טבלאות, תצוגות ותצוגות מהותיות ב-TableService וב-TableDataService, וסשנים של קריאה וסטרימינג של כתיבה באחסון ב-BigQueryRead וב-BigQueryWrite (משאבים במעקב: bigquery_dataset ו-bigquery_table).

יומני ביקורת: יומני גישה לנתונים באמצעות BigQueryAuditMetadata (אירועי TableDataRead ו-TableDataChange לקריאות, שינויים, שדות עם הפניות, משימת מקור וקריאות וכתיבות של BigQuery Storage API), וגם יומני פעילות אדמין, גישה לנתונים ואירועי מערכת לאירועי TableCreation, TableChange ו-TableDeletion, כולל שינויים במדיניות ניהול הזהויות והרשאות הגישה (IAM) של הטבלה ותאריכי תפוגה של הטבלה. סקירה כללית על יומני הביקורת של BigQuery

מערכי נתונים

תצוגות של סכימת מידע:

  • ‫SCHEMATA: מטא-נתונים של מערך נתונים ותאריך תפוגה שמוגדר כברירת מחדל
  • ‫SCHEMATA_OPTIONS: אפשרויות ותוויות של מערך נתונים
  • ‫SCHEMATA_REPLICAS: סטטוס הרפליקציה בין אזורים שונים

שירות API: bigquery.googleapis.com.

משאבים שנבדקים: מערכי נתונים, כללי מדיניות IAM של מערכי נתונים ורשימות ACL של מערכי נתונים ב-DatasetService וב-IAMPolicy (משאב במעקב: bigquery_dataset).

יומני ביקורת: יומני Admin Activity ו-Data Access באמצעות BigQueryAuditMetadata (אירועי DatasetCreation,‏ DatasetChange ו-DatasetDeletion), כולל שינויים במדיניות ה-IAM של מערך הנתונים ב-bindingDeltas ועדכוני ACL ב-accessChanges. סקירה כללית על יומני הביקורת של BigQuery

משבצות והזמנות

תצוגות של סכימת מידע:

  • ‫RESERVATIONS*: הגדרות ההזמנה הנוכחיות
  • ‫RESERVATIONS_TIMELINE*: מטא-נתונים של הזמנה לפי דקה ופרטי התאמה אוטומטית לעומס (autoscaling)
  • ‫ASSIGNMENTS*: הקצאות של פרויקטים, תיקיות וארגונים
  • ‫CAPACITY_COMMITMENTS*: התחייבויות לקיבולת של משבצות

Console:

מדדים: מדדי מעקב, כמו slots/allocated ו-slots/total_available.

שירות API: bigqueryreservation.googleapis.com ל-BigQuery Reservation API.

המשאבים שנבדקים: הזמנות, התחייבויות לקיבולת והקצאות של הזמנות ב-ReservationService (משאב במעקב: bigquery_project).

יומני ביקורת: יומני פעילות אדמין ויומני גישה לנתונים, שנועדו ליצור, לשנות, למחוק ולפרט הזמנות, התחייבויות למכסת נפח והקצאות של פרויקטים או תיקיות. יומני ביקורת של BigQuery Reservation API

אבטחה ברמת העמודה ואנונימיזציה של נתונים

תצוגות של סכימת מידע:

  • ‫COLUMN_FIELD_PATHS: נתיבי עמודות בתצוגת עץ, תגי מדיניות והקצאות של מדיניות נתונים
  • ‫COLUMNS: סכימות של עמודות וסוגי נתונים

שירותי API: ‫datacatalog.googleapis.com לתגי מדיניות של Data Catalog, ‫bigquerydatapolicy.googleapis.com ל-BigQuery Data Policy API ו-bigquery.googleapis.com.

משאבים שנבדקים: טקסונומיות ותגי מדיניות ב-PolicyTagManager, כללי מדיניות נתונים ב-DataPolicyService ועמודות בטבלה עם תגי מדיניות (משאבים במעקב: audited_resource ו-bigquery_dataset).

יומני ביקורת: יומני Admin Activity ו-Data Access לניהול טקסונומיה ותגי מדיניות ולשינויים במדיניות IAM (תגי מדיניות ביקורת), ניהול מדיניות נתונים ועדכונים של מקבלי מענקים (רישום ביומן ביקורת של מדיניות נתונים ב-BigQuery) ויומני TableDataRead.fields לקריאות בעמודות מוגנות (סקירה כללית של יומני ביקורת ב-BigQuery).

פונקציות, כולל פונקציות UDF ותהליכים מאוחסנים

תצוגות של סכימת מידע:

  • ‫ROUTINES: הגדרות ומטא-נתונים של שגרות
  • ROUTINE_OPTIONS: אפשרויות של תרחישים
  • ‫PARAMETERS: פרמטרים של קלט ופלט של שגרה
  • ‫JOBS*: משימות להרצת שגרות

שירות API: bigquery.googleapis.com.

משאבים שעוברים ביקורת: פונקציות בהגדרת המשתמש (UDF), פונקציות של טבלאות ופרוצדורות מאוחסנות ב-RoutineService (משאבים במעקב: bigquery_dataset ו-bigquery_project).

יומני ביקורת: יומני Admin Activity ו-Data Access באמצעות BigQueryAuditMetadata (אירועי RoutineCreation,‏ RoutineChange ו-RoutineDeletion), וגם אירועי משימות צאצא להרצות של פרוצדורות מאוחסנות. סקירה כללית על יומני הביקורת של BigQuery

חיבורים חיצוניים

תצוגות של סכימת מידע:

  • ‫OBJECT_PRIVILEGES: הרשאות חיבור
  • ‫JOBS*: שאילתות מאוחדות ומשימות של פונקציות מרוחקות שמשתמשות בחיבורים

שירות API: bigqueryconnection.googleapis.com ל-BigQuery Connection API.

משאבים שנבדקים: חיבורים ומדיניות IAM של חיבורים ב-ConnectionService (משאב במעקב: audited_resource).

יומני ביקורת: יומני Admin Activity ו-Data Access ליצירת חיבורים, עדכוני פרטי כניסה, מחיקה, הצגה ברשימה ושינויים במדיניות IAM. יומני ביקורת של BigQuery Connection API

BigQuery sharing

תצוגות של סכימת מידע:

  • ‫SHARED_DATASET_USAGE: השימוש של המנויים בטבלאות של מערכי נתונים משותפים
  • ‫SCHEMATA_LINKS: מערכי נתונים מקושרים ומשאבים משותפים

מרכז בקרה: שיתוף מרכז הבקרה של מדדי השימוש.

שירות API: analyticshub.googleapis.com.

משאבים שנבדקים: חילופי נתונים, כרטיסי מוצר, מינויים וכללי מדיניות IAM של חילופי נתונים או כרטיסי מוצר ב-AnalyticsHubService (משאב במעקב: audited_resource).

יומני ביקורת: יומני פעילות אדמין ויומני גישה לנתונים של החלפת נתונים ויצירת רישומים, עדכונים, מחיקה, שינויים במדיניות IAM ופעולות של מנויים. שיתוף של רישום ביומן ביקורת

שירות העברת נתונים ל-BigQuery

מדדים ויומנים:

שירות API: ‫bigquerydatatransfer.googleapis.com לשירות העברת נתונים ל-BigQuery API.

משאבים מבוקרים: הגדרות העברה, הפעלות של העברות ומקורות נתונים ב-DataTransferService (משאב במעקב: audited_resource).

יומני ביקורת: יומני פעילות אדמין ויומני גישה לנתונים שקשורים ליצירה, לעדכון, למחיקה, להצגה ברשימה ולהפעלה של הגדרות העברה והרצות של העברות. יומני ביקורת של שירות העברת הנתונים ל-BigQuery

קטלוגים וטבלאות של BigLake

תצוגות של סכימת מידע:

  • TABLES: מטא-נתונים של טבלה
  • ‫JOBS*: נתונים סטטיסטיים של שאילתות במאגר אובייקטים חיצוני (metadata_cache_statistics ו-object_storage_stats)

שירותי API: biglake.googleapis.com ו-bigquery.googleapis.com.

משאבים מבוקרים: קטלוגים של מטא-סטורים, מסדי נתונים, טבלאות ומחיצות ב-MetastoreService וב-HiveMetastoreService, וקטלוגים, מרחבי שמות וטבלאות של Apache Iceberg ב-IcebergCatalogService (משאבים מנוטרים: audited_resource ו-bigquery_dataset).

יומני ביקורת: יומני Admin Activity ו-Data Access לפעולות של מדיניות IAM בקטלוג, במסד הנתונים, במרחב השמות, בטבלה, במחיצה ובקטלוג. רישום ביומן ביקורת של BigLake

BigQuery Migration Service

סטטוס ודוחות:

  • סטטוס המשימה של תרגום SQL באצווה במסוף Google Cloud
  • סטטוס תהליך העבודה ומשימת המשנה ב-BigQuery Migration API
  • דוחות סיכום של תרגומים ב-Cloud Storage

שירות API: ‫bigquerymigration.googleapis.com ל-BigQuery Migration API.

משאבים מבוקרים: תהליכי עבודה של העברה, משימות משנה של העברה ובקשות לתרגום SQL ב-MigrationService וב-SqlTranslationService (משאב במעקב: audited_resource).

יומני ביקורת: יומני Data Access ליצירה, להפעלה, להצגה, למחיקה ולצפייה ברשימה של תהליכי עבודה ומשימות משנה של העברה, ולתרגום של שאילתות SQL. רישום ביומן הביקורת של BigQuery Migration Service

המאמרים הבאים