הסבר על יומני הביקורת

בדף הזה מתוארים בפירוט רשומות ביומני הביקורת של Cloud: המבנה שלהן, איך לקרוא אותן ואיך לפרש אותן.

יומני הביקורת של Cloud מספקים את יומני הביקורת הבאים לכל Cloud de Confiance פרויקט, תיקייה וארגון:

  • יומני הביקורת Admin Activity
  • יומני הביקורת Data Access
  • יומני הביקורת System Event
  • יומני הביקורת Policy Denied

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

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

רשומה ביומן ביקורת היא סוג של רשומה ביומן Cloud Logging. בדומה לכל הרשומות ביומן של Logging, רשומה ביומן הביקורת מאוחסנת באובייקט LogEntry. מה שמבדיל בין רשומה ביומן ביקורת לבין רשומות אחרות ביומן הוא השדה protoPayload. ברשומות ביומן הביקורת, השדה protoPayload של הרשומה מכיל אובייקט מסוג AuditLog שבו מאוחסנים נתוני יומן הביקורת.

בקיצור, כל רשומה ביומן הביקורת מאופיינת בפרטים הבאים:

  • הפרויקט, התיקייה או הארגון שבבעלותם רשומת היומן.
  • המשאב שהרשומה ביומן חלה עליו. המידע הזה כולל סוג משאב מרשימת המשאבים במעקב וערכים נוספים שמציינים מופע ספציפי. לדוגמה, אתם יכולים לראות את הרשומות ביומן הביקורת ממכונה וירטואלית אחת של Compute Engine או מכל המכונות הווירטואליות.
  • חותמת זמן.
  • שירות: שירותים הם מוצרים נפרדים של Cloud de Confiance , כמו Compute Engine,‏ Cloud SQL או Pub/Sub. כל שירות מזוהה לפי שם: Compute Engine הוא compute.googleapis.com,‏ Cloud SQL הוא cloudsql.googleapis.com וכן הלאה. המידע הזה מופיע בשדה protoPayload.serviceName של הרשומה ביומן הביקורת.

    סוגי משאבים שייכים לשירות אחד, אבל שירות יכול לכלול כמה סוגי משאבים. רשימה של שירותים ומשאבים זמינה במאמר מיפוי של השירותים למשאבים.

  • מטען ייעודי (payload), שהוא מסוג protoPayload. המטען הייעודי (Payload) של כל רשומה ביומן הביקורת הוא אובייקט מסוג AuditLog, שמגדיר קבוצה של שדות שספציפיים ליומני ביקורת ב-Cloud, כמו serviceName ו-authenticationInfo. יש גם שדה אופציונלי, metadata, ששירותים Cloud de Confiance by S3NS משתמשים בו כדי לפרט מידע ספציפי לשירות ברשומה ביומן הביקורת. בחלק מהשירותים עדיין נעשה שימוש בשדה הישן יותר serviceData כדי להציג מידע ספציפי לשירות. Cloud de Confiance by S3NS רשימה של שירותים שמשתמשים בשדה serviceData זמינה במאמר נתוני ביקורת שספציפיים לשירות.

  • שם יומן: הרשומות ביומן הביקורת שייכות ליומנים בחשבונות לחיוב, בפרויקטים, בתיקיות ובארגונים. בטבלה הבאה מפורטים שמות היומנים:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

בתוך חשבון לחיוב, פרויקט, תיקייה או ארגון, השמות של היומנים האלה בדרך כלל מקוצרים ל-activity,‏ data_access,‏ system_event ו-policy.

דוגמה לרשומה ביומן ביקורת

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

בדוגמה הבאה מוצג רשומה ביומן הביקורת של פעילות האדמין שמתעדת שינוי במדיניות של ניהול הזהויות והרשאות הגישה (IAM) עם PROJECT_ID my-gcp-project-id. השדה serviceName מזהה את השירות שכתב את יומן הביקורת. כדי שהרישום יהיה קצר יותר, השמטנו חלקים מ<b>רשומה ביומן</b> והדגשנו חלק מהשדות:

    {
      protoPayload: {
        @type: "type.googleapis.com/google.cloud.audit.AuditLog",
        status: {},
        authenticationInfo: {
          principalEmail: "user@example.com"
        },
        serviceName: "appengine.googleapis.com",
        methodName: "SetIamPolicy",
        authorizationInfo: [...],
        serviceData: {
          @type: "type.googleapis.com/google.appengine.legacy.AuditData",
          policyDelta: { bindingDeltas: [
              action: "ADD",
              role: "roles/logging.privateLogViewer",
              member: "user:user@example.com"
          ], }
        },
        request: {
          resource: "my-gcp-project-id",
          policy: { bindings: [...], }
        },
        response: {
          bindings: [
            {
              role: "roles/logging.privateLogViewer",
              members: [ "user:user@example.com" ]
            }
          ],
        }
      },
      insertId: "53179D9A9B559.AD6ACC7.B40604EF",
      resource: {
        type: "gae_app",
        labels: { project_id: "my-gcp-project-id" }
      },
      timestamp: "2019-05-27T16:24:56.135Z",
      severity: "NOTICE",
      logName: "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity",
    }

זוהי השאילתה ששימשה לבחירת הדוגמה הקודמת של רשומה ביומן הביקורת. אפשר להשתמש בשאילתה ב-Logs Explorer, ב-Logging API או ב-Google Cloud CLI. מזהה הפרויקט מופיע בשם היומן:

    resource.type = "gae_app"
    logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"

אם אתם מחפשים יומני ביקורת ממופע יחיד של סוג משאב, כמו gce_instance, מוסיפים מזהה מופע:

    resource.type = "gce_instance"
    resource.instance_id = "INSTANCE_ID"
    logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"

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

בדוגמה הקודמת של רשומה ביומן ביקורת, השדות protoPayload,‏ insertId,‏ resource, ‏ timestamp, ‏ severity ו-logName שמוצגים הם חלק מהאובייקט LogEntry. הערך של השדה protoPayload הוא אובייקט AuditLog. הוא מכיל את נתוני יומני הביקורת.

כשמסתכלים על דוגמה של רשומה ביומן הביקורת, יכולות לעלות כמה שאלות:

  • האם מדובר ברשומה ביומן הביקורת? כן, אפשר לדעת את זה בשתי דרכים:

    • השדה protoPayload.@type הוא type.googleapis.com/google.cloud.audit.AuditLog.

    • השדה logName כולל את הדומיין cloudaudit.googleapis.com.

  • איזה שירות כתב את יומן הביקורת? היומן נכתב על ידי App Engine. המידע הזה מופיע בשדה protoPayload.serviceName של הרשומה ביומן הביקורת.

  • איזו פעולה נבדקת? מתבצעת ביקורת של SetIamPolicy, כפי שצוין בשדה protoPayload.methodName. מידע נוסף על הפעולה שנבדקה מופיע באובייקט AuditData ב-protoPayload.serviceData.

  • איזה משאב עובר ביקורת? מתבצעת ביקורת על אפליקציה שפועלת ב-App Engine ומשויכת ל Cloud de Confiance פרויקטmy-gcp-project-id. אפשר לברר את זה בשדה resource, שבו מצוין סוג המשאב gae_app ומזהה הפרויקט my-gcp-project-id. בדוגמה הזו, תוכלו למצוא פרטים על סוג המשאב ברשימת סוגי המשאבים במעקב.

מידע נוסף זמין במאמרים על סוג LogEntry, סוג AuditLog וסוג IAM AuditData.

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

ממשקי API שהם פעולות ממושכות פולטים שני יומני ביקורת: אחד כשקוראים ל-API והפעולה מתחילה, ואחד כשהפעולה מסתיימת.

במקרה הזה, האובייקט LogEntry מכיל שדה operation. לרשומות ביומן של אותה פעולה יש אותו ערך גם ב-LogEntry.operation.id וגם ב-LogEntry.operation.producer. רשומת היומן הראשונה שנכתבה היא LogEntry.operation.first=true, ורשומת היומן של ההשלמה היא LogEntry.operation.last=true.

במקרים שבהם הפעולה מסתיימת באופן מיידי או נכשלת, יש רק רשומה אחת ביומן שמכילה את LogEntry.operation.first=true וגם את LogEntry.operation.last=true.

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

ממשקי ה-API האלה מטמיעים את שירות הפעולות. בדרך כלל, השירות הזה פולט רשומות ביומן הביקורת כשהוא נקרא. בהתאם ל-API שנקרא, protoPayload.methodName הוא אחד מהערכים הבאים:

  • google.longrunning.Operations.ListOperations
  • google.longrunning.Operations.GetOperation
  • google.longrunning.Operations.CancelOperation
  • google.longrunning.Operations.WaitOperation
  • google.longrunning.Operations.DeleteOperation

הפרמטר LogEntry.operation לא מצוין במקרה הזה, כי ה-API הזה מחזיר מטא-נתונים על פעולות ממושכות, אבל הוא עצמו לא פעולה ממושכת.

במאמר Cloud de Confiance by S3NS שירותים עם יומני ביקורת מפורט אילו ממשקי API נבדקים, כי זה משתנה בהתאם לשירות.

יומני ביקורת של ממשקי API להזרמה

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

במקרה הזה, האובייקט LogEntry מכיל שדה operation, ולרשומות ביומן של אותה פעולה יש ערך זהה בשדות LogEntry.operation.id ו-LogEntry.operation.producer. היומן הראשון שנכתב הוא LogEntry.operation.first=true, והיומן של ההשלמה הוא LogEntry.operation.last=true.

יכול להיות ש-API הזה יפיק גם רשומות המשך ביומן שבהן לא מוגדרים הערכים של LogEntry.operation.first ושל LogEntry.operation.last, כדי לציין שהסטרים נשאר פתוח.

נתוני ביקורת ספציפיים לשירות

שירותים מסוימים מרחיבים את המידע שמאוחסן ב-AuditLog שלהם על ידי הצבת מבנה נתונים משלים בשדה serviceData של רשומת יומן הביקורת. בטבלה הבאה מפורטים השירותים שמשתמשים בשדה serviceData, ומופיע קישור לסוג AuditData שלהם.

שירותסוג נתוני השירות
BigQuery type.googleapis.com/google.cloud.bigquery.logging.v1.AuditData
IAM type.googleapis.com/google.iam.v1.logging.AuditData

צפייה ביומני ביקורת

תוכלו לשלוח שאילתה על כל יומני הביקורת, או לשלוח שאילתה על יומנים מסוימים לפי שם יומן הביקורת שלהם. השם של יומן הביקורת כולל את מזהה המשאב של Cloud de Confiance הפרויקט, התיקייה, החשבון לחיוב או הארגון שבמידע של יומני הביקורת שלהם רוצים לצפות. תוכלו להוסיף לשאילתות שדות LogEntry שנוספו לאינדקס. למידע נוסף על שליחת שאילתות על היומנים, ראו את המאמר בנושא יצירת שאילתות ב-Logs Explorer.

אפשר לצפות ברוב יומני הביקורת ב-Cloud Logging באמצעותCloud de Confiance המסוף, Google Cloud CLI או Logging API. עם זאת, כדי לצפות ביומני ביקורת שקשורים לחיוב, אפשר להשתמש רק ב-Google Cloud CLI או ב-Logging API.

המסוף

ב Cloud de Confiance מסוף, תוכלו להשתמש ב-Logs Explorer כדי לאחזר את הרשומות ביומן הביקורת של Cloud de Confiance הפרויקט, התיקייה או הארגון:

  1. במסוף Cloud de Confiance , נכנסים לדף Logs Explorer:

    כניסה אל Logs Explorer

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.

  2. בוחרים פרויקט, תיקייה או ארגון קיימים ב- Cloud de Confiance .

  3. כדי להציג את כל יומני הביקורת, מזינים אחת מהשאילתות הבאות בשדה עורך השאילתות ולוחצים על Run query:

    logName:"cloudaudit.googleapis.com"
    
    protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
    
  4. כדי להציג את יומני הביקורת למשאב וסוג יומן ביקורת ספציפיים, בחלונית Query builder, מבצעים את הפעולות הבאות:

    • בקטע Resource Type, בוחרים את המשאב שרוצים לראות את יומני הביקורת שלו. Cloud de Confiance

    • בקטע Log name, בוחרים את סוג יומן הביקורת שרוצים לראות:

      • ליומני הביקורת Admin Activity בוחרים באפשרות activity.
      • ליומני הביקורת Data Access בוחרים באפשרות data_access.
      • ליומני הביקורת System Event בוחרים באפשרות system_event.
      • ליומני הביקורת Policy Denied בוחרים באפשרות policy.
    • לוחצים על Run query.

    אם האפשרויות האלה לא מוצגות, המשמעות היא שאין יומני ביקורת מאותו סוג ב Cloud de Confiance פרויקט, בתיקייה או בארגון.

    לא הצלחתם לצפות ביומנים ב-Logs Explorer? פתרון בעיות

    מידע נוסף על שליחת שאילתות באמצעות Logs Explorer מופיע במאמר יצירת שאילתות ב-Logs Explorer.

gcloud

הכלי Google Cloud CLI מספק גישה ל-Logging API באמצעות ממשק שורת הפקודה (CLI). חשוב לציין מזהה משאב תקין בכל אחד משמות היומנים. לדוגמה, אם שאילתה כוללת את השדה PROJECT_ID, מזהה הפרויקט שאתם מציינים חייב להתייחס לפרויקט ב-Cloud de Confiance שבחרתם.

כדי לקרוא את הרשומות ביומן הביקורת ברמת הפרויקט Cloud de Confiance , מריצים את הפקודה הבאה:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \
    --project=PROJECT_ID

כדי לקרוא את הרשומות ביומן הביקורת ברמת התיקייה, מריצים את הפקודה הבאה:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \
    --folder=FOLDER_ID

כדי לקרוא את הרשומות ביומן הביקורת ברמת הארגון, מריצים את הפקודה הבאה:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \
    --organization=ORGANIZATION_ID

כדי לקרוא את הרשומות ביומן הביקורת ברמת החשבון לחיוב ב-Cloud, מריצים את הפקודה הבאה:

gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \
    --billing-account=BILLING_ACCOUNT_ID

כדי לקרוא את הרשומות ביומן שנרשמו לפני יותר מיום אחד, מוסיפים לפקודה את הדגל --freshness.

למידע נוסף על השימוש ב-CLI של gcloud:‏ gcloud logging read.

REST

כדי לשלוח שאילתות לנתוני היומנים באמצעות Cloud Logging API, משתמשים בשיטה entries.list.