בקרת גישה באמצעות IAM

במסמך הזה מוסבר איך Cloud Logging משתמש בתפקידים ובהרשאות של ניהול הזהויות והרשאות הגישה (IAM) כדי לשלוט בגישה למשאבי Logging. תפקידי ה-IAM שלכם קובעים אם אתם יכולים לבצע פעולות כמו יצירת אובייקטים מסוג sink ביומן או קטגוריות ביומן, לקרוא נתונים של יומנים שמאוחסנים בקטגוריה ביומן או לגשת לדפים כמו Logs Explorer. אם מריצים פקודה של Logging API או של Google Cloud CLI, תפקידי ה-IAM קובעים אם יש לכם הרשאה להריץ את הפקודה.

סקירה כללית

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

תפקידי IAM מוענקים במשאב, כמו Cloud de Confiance פרויקט, תיקייה, מאגר או ארגון. לדוגמה, אפשר לתת לישות מורשית את התפקיד מציג היומנים (roles/logging.viewer) בפרויקט Cloud de Confiance מסוים.

בקטעים תפקידים מוגדרים מראש ותפקידים ב-Logging בדף הזה מופיע מידע מקיף על תפקידים והרשאות ב-Logging. בקטעים אחרים בדף הזה מופיע מידע על תפקידים או הרשאות לתרחישי שימוש ספציפיים.

בהמשך הקטע הזה מוסבר איך אפשר להעניק לישות מורשית גישה לקטגוריות ביומן, או גישה רק לחלק מהרשומות ביומן בקטגוריה ביומן.

הענקת גישה למאגרי יומנים

התפקיד 'צפייה ביומנים' (roles/logging.viewer) מאפשר לישות ראשית לגשת לכל נתוני היומנים שמאוחסנים בקטגוריות היומנים _Required ו-_Default, למעט יומני גישה לנתונים. אם לחשבון משתמש מסוים נדרשת גישה ליומני גישה לנתונים, צריך להעניק לו את התפקיד 'צפייה ביומנים פרטיים' (roles/logging.privateLogViewer).

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

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

הענקת גישה לחלק מהרשומות ביומן בקטגוריית יומנים

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

תפקידים מוגדרים מראש

ב-IAM יש תפקידים מוגדרים מראש שמאפשרים לתת גישה פרטנית למשאבים ספציפיים ב- Cloud de Confiance ולמנוע גישה לא רצויה למשאבים אחרים.‏ Cloud de Confiance by S3NS יוצרת את התפקידים האלה ומעדכנת אוטומטית את ההרשאות שלהם לפי הצורך, למשל כשנוספות ל-Logging תכונות חדשות.

בטבלה הבאה מפורטים התפקידים המוגדרים מראש ב-Logging. בטבלה מופיעים השם והתיאור של כל תפקיד, ההרשאות שכלולות בו וסוג המשאב ברמה הנמוכה ביותר שבה אפשר להעניק את התפקיד. אפשר לתת את התפקידים המוגדרים מראש Cloud de Confiance ברמת הפרויקט או, ברוב המקרים, בכל סוג גבוה יותר בהיררכיית המשאבים. כדי להגביל את הגישה של תפקיד Logs View Accessor לתצוגת יומן בקטגוריה, משתמשים במאפייני משאבים לתנאי IAM.

במאמר הצגת המטא-נתונים של התפקיד תוכלו לראות את רשימת ההרשאות שכל תפקיד מכיל.

Role Permissions

(roles/logging.admin)

Provides all permissions necessary to use all features of Cloud Logging.

Lowest-level resources where you can grant this role:

  • View

logging.buckets.copyLogEntries

logging.buckets.create

logging.buckets.createTagBinding

logging.buckets.delete

logging.buckets.deleteTagBinding

logging.buckets.get

logging.buckets.list

logging.buckets.listEffectiveTags

logging.buckets.listTagBindings

logging.buckets.undelete

logging.buckets.update

logging.exclusions.*

  • logging.exclusions.create
  • logging.exclusions.delete
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.exclusions.update

logging.fields.access

logging.links.*

  • logging.links.create
  • logging.links.delete
  • logging.links.get
  • logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.*

  • logging.logEntries.create
  • logging.logEntries.download
  • logging.logEntries.list
  • logging.logEntries.route

logging.logMetrics.*

  • logging.logMetrics.create
  • logging.logMetrics.delete
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logMetrics.update

logging.logScopes.*

  • logging.logScopes.create
  • logging.logScopes.delete
  • logging.logScopes.get
  • logging.logScopes.list
  • logging.logScopes.update

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.*

  • logging.logs.delete
  • logging.logs.list

logging.notificationRules.*

  • logging.notificationRules.create
  • logging.notificationRules.delete
  • logging.notificationRules.get
  • logging.notificationRules.list
  • logging.notificationRules.update

logging.operations.*

  • logging.operations.cancel
  • logging.operations.get
  • logging.operations.list

logging.privateLogEntries.list

logging.queries.*

  • logging.queries.deleteShared
  • logging.queries.getShared
  • logging.queries.listShared
  • logging.queries.share
  • logging.queries.updateShared
  • logging.queries.usePrivate

logging.settings.*

  • logging.settings.get
  • logging.settings.update

logging.sinks.*

  • logging.sinks.create
  • logging.sinks.delete
  • logging.sinks.get
  • logging.sinks.list
  • logging.sinks.update

logging.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.update

logging.usage.get

logging.views.*

  • logging.views.access
  • logging.views.create
  • logging.views.delete
  • logging.views.get
  • logging.views.getIamPolicy
  • logging.views.list
  • logging.views.listLogs
  • logging.views.listResourceKeys
  • logging.views.listResourceValues
  • logging.views.setIamPolicy
  • logging.views.update

observability.scopes.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.bucketWriter)

Ability to write logs to a log bucket.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.write

(roles/logging.configWriter)

Provides permissions to read and write the configurations of logs-based metrics and sinks for exporting logs.

Lowest-level resources where you can grant this role:

  • View

logging.buckets.create

logging.buckets.createTagBinding

logging.buckets.delete

logging.buckets.deleteTagBinding

logging.buckets.get

logging.buckets.list

logging.buckets.listEffectiveTags

logging.buckets.listTagBindings

logging.buckets.undelete

logging.buckets.update

logging.exclusions.*

  • logging.exclusions.create
  • logging.exclusions.delete
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.exclusions.update

logging.links.*

  • logging.links.create
  • logging.links.delete
  • logging.links.get
  • logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logMetrics.*

  • logging.logMetrics.create
  • logging.logMetrics.delete
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logMetrics.update

logging.logScopes.*

  • logging.logScopes.create
  • logging.logScopes.delete
  • logging.logScopes.get
  • logging.logScopes.list
  • logging.logScopes.update

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.notificationRules.*

  • logging.notificationRules.create
  • logging.notificationRules.delete
  • logging.notificationRules.get
  • logging.notificationRules.list
  • logging.notificationRules.update

logging.operations.*

  • logging.operations.cancel
  • logging.operations.get
  • logging.operations.list

logging.settings.*

  • logging.settings.get
  • logging.settings.update

logging.sinks.*

  • logging.sinks.create
  • logging.sinks.delete
  • logging.sinks.get
  • logging.sinks.list
  • logging.sinks.update

logging.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.update

logging.views.create

logging.views.delete

logging.views.get

logging.views.getIamPolicy

logging.views.list

logging.views.update

observability.scopes.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.fieldAccessor)

Ability to read restricted fields in a log bucket.

Lowest-level resources where you can grant this role:

  • Project

logging.fields.access

(roles/logging.linkViewer)

Ability to see links for a bucket.

logging.links.get

logging.links.list

(roles/logging.logWriter)

Provides the permissions to write log entries.

Lowest-level resources where you can grant this role:

  • Project

logging.logEntries.create

logging.logEntries.route

(roles/logging.privateLogViewer)

Provides permissions of the Logs Viewer role and in addition, provides read-only access to log entries in private logs.

Lowest-level resources where you can grant this role:

  • View

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.list

logging.logMetrics.get

logging.logMetrics.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.operations.get

logging.operations.list

logging.privateLogEntries.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.access

logging.views.get

logging.views.list

observability.scopes.get

resourcemanager.projects.get

(roles/logging.serviceAgent)

Grants a Cloud Logging Service Account the ability to create and link datasets.

bigquery.datasets.create

bigquery.datasets.get

bigquery.datasets.link

(roles/logging.sqlAlertWriter)

Ability to write SQL Alerts.

logging.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.update

(roles/logging.viewAccessor)

Ability to read logs in a view.

Lowest-level resources where you can grant this role:

  • View

logging.logEntries.download

logging.views.access

logging.views.listLogs

logging.views.listResourceKeys

logging.views.listResourceValues

(roles/logging.viewer)

Provides access to view logs.

Lowest-level resources where you can grant this role:

  • View

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.list

logging.logMetrics.get

logging.logMetrics.list

logging.logScopes.get

logging.logScopes.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.operations.get

logging.operations.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.get

logging.views.list

observability.scopes.get

resourcemanager.projects.get

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

רישום תפקידים ביומן

  • כדי לאפשר למשתמש לבצע את כל הפעולות ב-Logging, צריך להעניק לו את התפקיד Logging Admin (אדמין של Logging) ‏(roles/logging.admin).

  • כדי לאפשר למשתמש ליצור ולשנות הגדרות של רישום ביומן, צריך להעניק לו את התפקיד 'בעל הרשאת כתיבה של רישום ביומן' (roles/logging.configWriter). התפקיד הזה מאפשר ליצור או לשנות את כל אחד מהפריטים הבאים:

  • כדי לאפשר למשתמש לקרוא יומנים בדלי _Required ו-_Default או להשתמש בדף Logs Explorer, צריך להעניק לו אחד מהתפקידים הבאים:

    • כדי לקבל גישה לכל היומנים בקטגוריה _Required וגישה לתצוגה _Default בקטגוריה _Default, צריך להקצות את התפקיד 'צפייה ביומנים' (roles/logging.viewer).
    • כדי לקבל גישה לכל היומנים בקטגוריות _Required ו-_Default, כולל יומני גישה לנתונים, צריך להעניק את התפקיד 'צפייה ביומנים פרטיים' (roles/logging.privateLogViewer).
  • כדי לאפשר למשתמש לקרוא יומנים בכל תצוגות היומנים שנמצאות בפרויקט, צריך להקצות לו את תפקיד ה-IAM‏ roles/logging.viewAccessor בפרויקט.

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

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

    • מקצים לחשבון המשתמש את תפקיד ה-IAM‏ roles/logging.viewAccessor בפרויקט שמכיל את תצוגת היומן, אבל מצרפים תנאי IAM כדי להגביל את ההקצאה לתצוגת היומן הספציפית.

    מידע על יצירת תצוגות יומנים והענקת גישה מופיע במאמר הגדרת תצוגות יומנים בקטגוריה ביומן.

  • כדי לאפשר למשתמש לכתוב יומנים באמצעות Logging API, צריך להעניק לו את התפקיד Logs Writer (כותב יומנים) (roles/logging.logWriter). התפקיד הזה לא מעניק הרשאות צפייה.

  • כדי לאפשר לחשבון השירות של sink להפניית יומנים להעביר יומנים לקטגוריה ביומן בפרויקט Cloud de Confiance אחר, צריך להקצות לחשבון השירות את התפקיד 'כתיבה לקטגוריית יומנים' (roles/logging.bucketWriter). הוראות להענקת הרשאות לחשבון שירות מפורטות במאמר הגדרת הרשאות יעד.

תפקידים ברמת הפרויקט

  • כדי לתת גישת צפייה לרוב השירותים Cloud de Confiance by S3NS , צריך להקצות את התפקיד 'צפייה' (roles/viewer).

    התפקיד הזה כולל את כל ההרשאות שמוענקות על ידי התפקיד 'צפייה ביומנים' (roles/logging.viewer).

  • כדי לתת גישת עריכה לרוב השירותים של Cloud de Confiance by S3NS , צריך להקצות את התפקיד 'עריכה' (roles/editor).

    התפקיד הזה כולל את כל ההרשאות שמוענקות על ידי התפקיד 'צפייה ביומנים' (roles/logging.viewer), ואת ההרשאות לכתוב רשומות ביומן ולמחוק יומנים. עם זאת, התפקיד הזה לא מאפשר למשתמשים ליצור sink, לקרוא יומני ביקורת של Data Access שנמצאים בקטגוריה _Default או לקרוא יומנים שנמצאים בקטגוריות של יומנים שהוגדרו על ידי משתמשים.

  • כדי לתת גישה מלאה לרוב השירותים של Cloud de Confiance by S3NS , צריך להקצות את התפקיד 'בעלים' (roles/owner).

הקצאת תפקידים

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

אפשר להקצות כמה תפקידים לאותו משתמש. במאמר הצגת המטא-נתונים של התפקיד תוכלו לראות את רשימת ההרשאות שכל תפקיד מכיל.

אם אתם מנסים לגשת ל Cloud de Confiance משאב ואין לכם את ההרשאות הנדרשות, עליכם לפנות לחשבון המשתמש שמופיע כבעלים של המשאב.

תפקידים בהתאמה אישית

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

מידע נוסף על תפקידים בהתאמה אישית זמין במאמר הסבר על תפקידים בהתאמה אישית ב-IAM.

הרשאות ב-Cloud Logging

בטבלה הבאה מפורטות חלק מההרשאות שנדרשות לתכונות ספציפיות של Cloud Logging. הטבלה הזו יכולה לעזור לכם לזהות את ההרשאות שאתם צריכים כדי להשתמש בדפים כמו Logs Explorer.

בטבלה, a.b.{x,y} מייצג את a.b.x ואת a.b.y.

פעילות במסוף ההרשאות הנדרשות
הרשאת קריאה בלבד מינימלית logging.logEntries.list
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
resourcemanager.projects.get
צפייה ביומני ביקורת של גישה לנתונים logging.privateLogEntries.list
הצגת מקורות logging.sinks.{list, get}
צפייה בנתוני השימוש ביומנים logging.usage.get
הורדת היומנים logging.logEntries.{list, download}

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

הצגה של היקפי היומן logging.logScopes.{get, list}
צפייה באוסף תצוגות יומן (log scope) ברירת המחדל observability.scopes.get
החרגת יומנים logging.exclusions.{list, create, get, update, delete}

כשיוצרים תפקיד בהתאמה אישית שכולל הרשאות לניהול מסנני החרגה, מוסיפים לתפקיד את ההרשאות logging.sinks.* במקום את ההרשאות logging.exclusions.*.

יצירה של sinks ושימוש בהם logging.sinks.{list, create, get, update, delete}

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

אחרי שהרשומות ביומן מנותבות ליעד נתמך, הגישה לרשומות ביומן נשלטת באופן מלא על ידי ההרשאות והתפקידים ב-IAM ביעד.

שמירה ושימוש בשאילתות פרטיות logging.queries.usePrivate
logging.queries.{listShared,getShared}
שמירה ושימוש בשאילתות משותפות logging.queries.{share, getShared, updateShared, deleteShared, listShared}
שימוש בשאילתות מהזמן האחרון logging.queries.{create, list}
יצירה וניהול של היקפי יומנים logging.logScopes.{create, delete, get, list, update}
הגדרה וניהול של אוסף תצוגות יומן (log scope) ברירת המחדל observability.scopes.{get, update}

הרשאות לשורת הפקודה

הפקודות של gcloud logging נשלטות על ידי הרשאות IAM.

כדי להשתמש בפקודות gcloud logging, למשתמשים צריכה להיות הרשאת serviceusage.services.use.

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