ב-Spanner Omni נכתבים יומני ביקורת שבהם מתועדות פעילויות אדמין וגישות לנתונים בפריסות של Spanner Omni.
יומני הביקורת עוזרים לענות על השאלות 'מי עשה מה, איפה ומתי?'. אפשר להשתמש ביומני ביקורת כדי לעזור לגורמים שאחראים על אבטחה, ביקורת ותאימות לעקוב אחרי הנתונים והמערכות של Spanner Omni, כדי לזהות נקודות חולשה אפשריות או שימוש לרעה בנתונים חיצוניים.
לפני שמתחילים
הגדרת פריסת Spanner Omni עם הצפנה באמצעות TLS או TLS הדדי (mTLS). אם יוצרים פריסה ללא הצפנה מסוג TLS או mTLS, לא נוצרים יומני ביקורת. הוראות ליצירת פריסה עם הצפנת TLS או mTLS מופיעות במאמרים הבאים:
סוגים של יומני ביקורת
Spanner Omni תומך בסוגים הבאים של יומני ביקורת.
יומני הביקורת Admin Activity
יומני הביקורת של פעילות אדמין מתעדים קריאות ל-API שמשנות את ההגדרות או את המטא-נתונים של הפריסה. לדוגמה, Spanner Omni כותב יומני ביקורת של פעילות אדמין כשמשתמש יוצר מסד נתונים.
יומני הביקורת Admin Activity נוצרים כברירת מחדל עבור פריסות שהוגדרה בהן הצפנה באמצעות TLS ו-mTLS. אי אפשר להגדיר, להחריג או להשבית אותם.
במאמר Methods לפי סוג הרשאה מופיעה רשימה של methods שכותבות יומני ביקורת של Admin Activity.
יומני הביקורת Data Access
יומני ביקורת של Data Access מתעדים קריאות ל-API שקוראות את ההגדרות או את המטא-נתונים של הפריסה, וגם קריאות ל-API שיוצרות, משנות או קוראות נתוני משתמשים. לדוגמה, Spanner Omni כותב יומני ביקורת של Data Access כשמשתמש מתאר מסד נתונים, מריץ שאילתת SQL או מבצע הצהרה של שפת מניפולציה של נתונים (DML).
יומני הביקורת Data Access מושבתים כברירת מחדל כי הם יכולים להיות גדולים. כדי לתעד אירועי גישה לנתונים, צריך להפעיל ולהגדיר אותם באופן מפורש. יומני ביקורת של גישה לנתונים עוזרים לצוות התמיכה של Google לפתור בעיות, ולכן מומלץ להפעיל אותם.
הוראות להגדרת היומנים האלה מופיעות במאמר הגדרת יומני ביקורת של גישה לנתונים. רשימה של ה-methods שכותבות יומני ביקורת של Data Access מופיעה במאמר Methods לפי סוג הרשאה.
יומני הביקורת System Event
ביומני ביקורת של אירועים במערכת מתועד מתי המערכת משנה את ההגדרה של משאבי Spanner Omni בלי פעולה ישירה של משתמש. לדוגמה, Spanner Omni כותב יומן ביקורת של אירועי מערכת כשהמערכת מבצעת אופטימיזציה אוטומטית למסד נתונים ששוחזר לאחרונה, או כשהיא יוצרת גיבוי מתוזמן.
יומני הביקורת System Event נוצרים כברירת מחדל לפריסות שהוגדרו עם הצפנת TLS ו-mTLS. אי אפשר להגדיר, להחריג או להשבית אותם.
מידע נוסף על אירועי המערכת שיוצרים את היומנים האלה זמין במאמר בנושא אירועי מערכת.
הגדרת יומני ביקורת של גישה לנתונים
כדי להפעיל יומני ביקורת של Data Access, צריך להגדיר את מדיניות Identity and Access Management (IAM) לפריסה באמצעות Spanner Omni CLI או ה-API. אפשר להפעיל רישום ביומן לסוגים ספציפיים של הרשאות ולהחריג משתמשים מסוימים כך שהפעולות שלהם לא יירשמו ביומן.
ההרשאות הנדרשות
כדי להגדיר את יומני הביקורת Data Access, צריך את ההרשאה spanner.instances.setIamPolicy.
כדי לראות את ההגדרות של יומני הביקורת Data Access, צריך את ההרשאה spanner.instances.getIamPolicy.
סוגי הרשאות
ב-API methods נבדקות הרשאות IAM, ולכל הרשאה יש סוג הרשאה משויך. כשמגדירים יומני ביקורת של גישה לנתונים, צריך לציין אילו סוגי הרשאות יתועדו ביומן. סוגי ההרשאות מחולקים לקטגוריות הבאות:
סוגי הרשאות גישה לנתונים:
-
ADMIN_READ: רשומות של שיטות API שקוראות מטא-נתונים או פרטי הגדרה. לדוגמה, תיאור של מסד נתונים. -
DATA_READ: מתעד API methods שקוראות נתוני משתמשים. לדוגמה, ביצוע שאילתת SQL. -
DATA_WRITE: מתעד קודי API methods שכותבים נתוני משתמשים. לדוגמה, הפעלת פקודת DML.
סוג ההרשאה 'פעילות אדמין':
-
ADMIN_WRITE: מסומן בשיטות API שכותבות מטא-נתונים או פרטי הגדרה (למשל, יצירת מסד נתונים). הפעולות האלה יוצרות יומני ביקורת Admin Activity ואי אפשר להגדיר אותן.
הסבר מפורט על סוגי ההרשאות זמין במאמר סוגי הרשאות במסמכי התיעוד של Cloud Audit Logs.
הגדרה באמצעות Spanner Omni CLI
כדי להגדיר יומני ביקורת של Data Access באמצעות Spanner Omni CLI, יוצרים קובץ מדיניות JSON שמפרט את סוגי היומנים שרוצים להפעיל ואת החברים שפטורים מהמדיניות, ואז מחילים את המדיניות.
יוצרים קובץ מדיניות בשם
policy.json:{ "auditConfigs": [ { "auditLogConfigs": [ { "logType": "ADMIN_READ", "exemptedMembers": [ "USER_NAME" ] }, { "logType": "DATA_WRITE" }, { "logType": "DATA_READ" } ], "service": "spanner.googleapis.com" } ] }מחילים את המדיניות באמצעות הפקודה
spanner instances set-iam-policy:spanner instances set-iam-policy default policy.json
כדי לראות את ההגדרה הנוכחית של יומן הביקורת של גישה לנתונים, מריצים את הפקודה הבאה:
spanner instances get-iam-policy default
דוגמאות נוספות לתרחישי שימוש נפוצים בהגדרות מופיעות במאמר הגדרת יומני ביקורת של גישה לנתונים במסמכי התיעוד של יומני הביקורת של Cloud.
אירועי מערכת
Spanner Omni יוצר יומני ביקורת System Event עבור רוב האירועים במערכת שנתמכים בגרסה המנוהלת של Spanner. מידע נוסף זמין במאמר בנושא אירועים במערכת במסמכי התיעוד של Spanner.
Spanner Omni תומך באירועי המערכת CreateScheduledBackup ו-OptimizeRestoredDatabase. עם זאת, Spanner Omni לא תומך באירוע המערכת AutoscaleInstance כי התאמה אוטומטית לעומס לא זמינה ב-Spanner Omni.
קובצי יומן ביקורת ושמירה
Spanner Omni כותב יומני ביקורת למערכת הקבצים המקומית של שרתי Spanner Omni.
אפשר למצוא את קובצי יומן הביקורת באמצעות הנתיב ומוסכמת השמות הבאים:
BASE_DIR/logs/PROCESS/audit.log.BUCKET.TIMESTAMP.PROCESS_ID
BASE_DIR: ספריית הבסיס שצוינה כשמתחילים את הפריסה של Spanner Omni. בפריסות של Kubernetes, ברירת המחדל היא/spanner.
PROCESS: Spanner Omni מריץ כמה תהליכים לכל שרת, כמוserver,zone_services,zonal_zone_services,zonal_serverו-base_services. יומני הביקורת נכתבים בספרייה שמתאימה לתהליך שיצר אותם.
BUCKET: יומני הביקורת Admin Activity ו-System Event נכתבים לקטגוריהrequired, ויומני הביקורת Data Access נכתבים לקטגוריהdefault.
TIMESTAMP: חותמת הזמן שבה הקובץ נוצר.
PROCESS_ID: מזהה התהליך של התהליך שכותב את יומן הביקורת.
מערכת Spanner Omni יוצרת קובץ חדש של יומן ביקורת כשהגודל של הקובץ הנוכחי חורג מ-50MiB או כשמתבצעת הפעלה מחדש של תהליך בשרת. בנוסף, הוא יוצר באופן אוטומטי קישור סמלי מ-BASE_DIR/logs/PROCESS/audit.log.BUCKET לקובץ יומן הביקורת שנכתב.
הגישה לקובצי יומן ביקורת מקומיים נשלטת על ידי רשימות בקרת הגישה (ACL) של מערכת הקבצים. כל מי שיש לו הרשאה להיכנס לשרת ולגשת לקבצים האלה יכול לראות את יומני הביקורת.
מומלץ להגביל את הגישה למכונות הווירטואליות של Spanner Omni (לדוגמה, על ידי הגבלת גישת SSH והגדרת ACL של מערכת הקבצים) כדי שרק אנשי צוות מורשים יוכלו לצפות ביומנים. לאחסון לטווח ארוך, לביקורת ולתאימות, משתמשים בסוכן רישום ביומן (כמו Fluentd) כדי לאסוף את יומני הביקורת ולייצא אותם למערכת רישום ביומן חיצונית, כמו AWS CloudWatch, Grafana Loki, Elasticsearch, Datadog, Splunk או Cloud Monitoring.
שמירת קבצים
ב-Spanner Omni נאכפות מדיניות שמירה שמבוססת על גודל ועל גיל של קובצי יומן ביקורת מקומיים:
מגבלת גודל: קבצי יומן ביקורת נשמרים עד שהשימוש הכולל שלהם בדיסק חורג מ-1 GB. אם משתמשים בדיסק נפרד לספריית היומנים, קובצי יומן הביקורת מקבלים הקצאה של 25% מהמכסה של השטח הכולל בדיסק הזה.
מגבלת גיל: קובצי יומן ביקורת נשמרים למשך 14 ימים לכל היותר, בתנאי שלא חורגים ממגבלת הגודל.
כשמגיעים לאחת מהמגבלות, Spanner Omni מוחק קודם את קובצי היומן הכי ישנים. אם אתם צריכים לשמור את יומני הביקורת למשך יותר מ-14 ימים, אתם יכולים לייצא אותם למערכת רישום חיצונית.
המבנה של רשומה ביומן הביקורת
הפורמט של רשומות ביומן הביקורת של Spanner Omni הוא JSON, והן משתמשות באותה הגדרה מבנית כמו Spanner. מידע נוסף זמין במאמר בנושא המבנה של רשומות ביומני הביקורת במאמרי העזרה בנושא יומני ביקורת של Cloud.
שם יומן הביקורת
בניגוד לגרסה המנוהלת של Spanner עם ריבוי דיירים, Spanner Omni פועל כפריסה של דייר יחיד בשרתים ייעודיים. מכיוון שאין דיירים או פרויקטים אחרים בשרתים האלה, כל הרשומות ביומן הביקורת משתמשות במזהה הפרויקט default.
projects/default/logs/cloudaudit.googleapis.com/activity
projects/default/logs/cloudaudit.googleapis.com/data_access
projects/default/logs/cloudaudit.googleapis.com/system_event
זהויות של מתקשרים
ביומני הביקורת נרשם המזהה של המשתמש שביצע את הפעולה שנרשמה ביומן.
הזהות של המתקשרת מאוחסנת בשדה AuthenticationInfo של האובייקט AuditLog.
ב-Spanner Omni, הזהות של המתקשר היא שם המשתמש של המשתמש המאומת שביצע את הקריאה ל-API. מידע על יצירה וניהול של משתמשים זמין במאמר בנושא אימות והרשאה.
כתובת ה-IP של מבצע הקריאה
ב-Spanner Omni אין תמיכה בהקלטה של כתובת ה-IP של המתקשר ביומני ביקורת.
קודי Method לפי סוג ההרשאה
כשקוראים ל-method ב-API, Spanner Omni יוצר יומן ביקורת על סמך סוג ההרשאה שנדרשת לביצוע ה-method. ה-methods שבשבילן צריך הרשאות ADMIN_READ, DATA_READ או DATA_WRITE יוצרות יומני ביקורת של Data Access, וה-methods שבשבילן צריך הרשאות ADMIN_WRITE יוצרות יומני ביקורת של Admin Activity.
Spanner Omni תומך ברוב השיטות של Cloud Spanner API. במאמר בנושא שיטות לפי סוג הרשאה במסמכי Spanner מוסבר איך מתבצעת הסיווג של שיטות שמשותפות על ידי Spanner ו-Spanner Omni לצורך רישום ביומן ביקורת.
ב-Spanner Omni יש גם שיטות API ייחודיות שיוצרות יומני ביקורת. בדרך כלל, ה-methods שמסומנות כפעולות ממושכות (LRO) יוצרות שתי רשומות ביומן הביקורת: אחת כשהפעולה מתחילה ואחת כשהיא מסתיימת. מידע נוסף זמין במאמר בנושא פעולות ממושכות בתיעוד של יומני הביקורת של Cloud.
| סוג ההרשאה | Methods |
|---|---|
ADMIN_READ |
google.spanner.omni.v1.OmniAdmin.GetLocationgoogle.spanner.omni.v1.OmniAdmin.ListLocationgoogle.spanner.omni.v1.OmniAdmin.GetLocationDistancegoogle.spanner.omni.v1.OmniAdmin.ListLocationDistancegoogle.spanner.omni.v1.OmniAdmin.GetZonegoogle.spanner.omni.v1.OmniAdmin.ListZonesgoogle.spanner.omni.v1.OmniAdmin.GetServergoogle.spanner.omni.v1.OmniAdmin.ListServersgoogle.spanner.omni.v1.OmniAdmin.GetDeploymentgoogle.spanner.omni.v1.OmniAdmin.ListBackupDescriptorsgoogle.spanner.omni.v1.OmniAdmin.GetExternalStoragegoogle.spanner.omni.v1.OmniAdmin.ListExternalStoragesgoogle.spanner.omni.v1.OmniAdmin.GetIamPolicygoogle.spanner.omni.v1.UsersService.GetUsergoogle.spanner.omni.v1.UsersService.ListUsersgoogle.spanner.omni.v1.UsersService.GetRolegoogle.spanner.omni.v1.UsersService.ListRoles
|
ADMIN_WRITE |
google.spanner.omni.v1.OmniAdmin.CreateLocationgoogle.spanner.omni.v1.OmniAdmin.DeleteLocationgoogle.spanner.omni.v1.OmniAdmin.CreateLocationDistancegoogle.spanner.omni.v1.OmniAdmin.UpdateLocationDistancegoogle.spanner.omni.v1.OmniAdmin.DeleteLocationDistancegoogle.spanner.omni.v1.OmniAdmin.CreateZonegoogle.spanner.omni.v1.OmniAdmin.DeleteZonegoogle.spanner.omni.v1.OmniAdmin.CreateServergoogle.spanner.omni.v1.OmniAdmin.DeleteServergoogle.spanner.omni.v1.OmniAdmin.CreateExternalStoragegoogle.spanner.omni.v1.OmniAdmin.DeleteExternalStoragegoogle.spanner.omni.v1.OmniAdmin.SetIamPolicygoogle.spanner.omni.v1.OmniAdmin.ImportBackup (LRO)google.spanner.omni.v1.UsersService.CreateUsergoogle.spanner.omni.v1.UsersService.DeleteUsergoogle.spanner.omni.v1.UsersService.UpdateUser
|
DATA_READ |
google.spanner.omni.v1.ImportExportService.ExportDatabase
(LRO)
|
DATA_WRITE |
google.spanner.omni.v1.ImportExportService.ImportDatabase
(LRO)
|
אילו קודי Method לא יוצרים יומני ביקורת
ב-Spanner Omni, אותן שיטות מוחרגות מרישום ביומן הביקורת כמו ב-Spanner. השיטות האלה לא נכללות כי הן שיטות עם נפח גבוה של יומנים, שיצירה שלהם עלולה לגרור עלויות גבוהות של אחסון ויצירה, או כי הערך שלהן לביקורת נמוך, או כי כבר יש יומן ביקורת או יומן פלטפורמה אחרים שמכסים את ה-method. רשימה מלאה של השיטות המוחרגות האלה מופיעה במאמר שיטות שפטורות מתשלום במסמכי Spanner.
בנוסף, ה-method google.spanner.omni.v1.LoginService.Login לא יוצרת יומני ביקורת כי היא קודמת לבדיקות האימות וההרשאה.
משך העיבוד
בשדה של משך העיבוד ביומן הביקורת מתועד משך העיבוד של ה-API, כמו משך ההפעלה של שאילתת SQL, ולא העיכוב בכתיבת יומן הביקורת. מידע נוסף זמין במאמר בנושא משך העיבוד במסמכי Spanner.
השוואה לגרסה המנוהלת של Spanner
רישום ביקורת ב-Spanner Omni מבוסס על אותם מושגים ופורמטים כמו ב-Spanner, אבל יש כמה הבדלים חשובים באופן שבו היומנים מאוחסנים, מוגדרים ומנוהלים.
הבדלים
יעד היומן: Spanner Omni כותב יומני ביקורת ישירות למערכת הקבצים המקומית של שרתי Spanner Omni, במקום לייצא אותם ל-Cloud Logging.
הגדרה: ב-Spanner, מגדירים יומני ביקורת של Data Access ברמת הפרויקט באמצעות מסוף Google Cloud , Google Cloud CLI או Identity and Access Management API. ב-Spanner Omni, אתם מגדירים יומני ביקורת Data Access באמצעות Spanner Omni CLI או Spanner Omni API.
הצפנת TLS ו-mTLS: מערכת Spanner אוכפת הצפנת TLS כברירת מחדל, ואי אפשר להשבית אותה. ב-Spanner Omni, אם בוחרים לפרוס בלי הצפנה באמצעות TLS או mTLS, לא נוצרים יומני ביקורת.
שמירת נתונים: יומני הביקורת של Spanner נשמרים ב-Logging בהתאם להגדרות השמירה שלכם ב-Logging. Spanner Omni שומר קבצים מקומיים של יומני ביקורת למשך עד 14 ימים או עד שמגיעים למגבלות הגודל של הדיסק, ומסתמך על כך שתייצאו את היומנים למערכת חיצונית לאחסון לטווח ארוך.
תכונות דומות
פורמט היומן: שני המוצרים כותבים יומני ביקורת בפורמט JSON לפי המבנה Google Cloud AuditLog.
הגדרת גישה לנתונים: בשני המוצרים אפשר להפעיל יומני ביקורת של גישה לנתונים ברמת גרנולריות לפי סוג הרשאה (
ADMIN_READ,DATA_READ,DATA_WRITE) ולתמוך בהחרגת משתמשים ספציפיים מרישום ביומן.