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

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

סקירה כללית

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

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

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

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

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

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

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

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

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

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

הגבלת הגישה לשדות ספציפיים ב-LogEntry

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

אי אפשר להגביל שדות בקטגוריה ביומן ששודרגה לשימוש ב-Observability Analytics. באופן דומה, אם קטגוריה ביומן מכילה שדה מוגבל, אי אפשר לשדרג אותה לשימוש ב-Observability Analytics.

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

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

בטבלה הבאה מפורטים התפקידים המוגדרים מראש ב-Logging. בטבלה מופיעים השם והתיאור של כל תפקיד, ההרשאות שכלולות בו וסוג המשאב ברמה הנמוכה ביותר שבו אפשר להעניק את התפקיד. אפשר להעניק את התפקידים המוגדרים מראש ברמת הפרויקט Google Cloud או, ברוב המקרים, בכל סוג גבוה יותר בהיררכיית המשאבים. כדי להגביל את הגישה של התפקיד 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