במסמך הזה מוסבר איך 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, ואז להעניק לאדמינים גישה לשדה הזה. מידע נוסף זמין במאמר הגדרת אמצעי בקרת גישה ברמת השדה.
אי אפשר להגביל שדות בקטגוריה ביומן ששודרגה לשימוש ב-Log Analytics. באופן דומה, אם קטגוריה ביומן מכילה שדה מוגבל, אי אפשר לשדרג אותה לשימוש ב-Log Analytics.
תפקידים מוגדרים מראש
ב-IAM יש תפקידים מוגדרים מראש שמאפשרים לתת גישה פרטנית למשאבים ספציפיים ב- Google Cloud ולמנוע גישה לא רצויה למשאבים אחרים. Google Cloud יוצרת את התפקידים האלה ומעדכנת אוטומטית את ההרשאות שלהם לפי הצורך, למשל כשנוספות ל-Logging תכונות חדשות.
בטבלה הבאה מפורטים התפקידים המוגדרים מראש ב-Logging. בטבלה מופיעים השם והתיאור של כל תפקיד, ההרשאות שכלולות בו וסוג המשאב ברמה הנמוכה ביותר שבה אפשר להעניק את התפקיד. אפשר לתת את התפקידים המוגדרים מראש Google Cloud ברמת הפרויקט או, ברוב המקרים, בכל סוג גבוה יותר בהיררכיית המשאבים. כדי להגביל את הגישה של תפקיד Logs View Accessor לתצוגת יומן בקטגוריה, משתמשים במאפייני משאבים לתנאי IAM.
במאמר הצגת המטא-נתונים של התפקיד תוכלו לראות את רשימת ההרשאות שכל תפקיד מכיל.
| Role | Permissions |
|---|---|
Logging Admin( Provides all permissions necessary to use all features of Cloud Logging. Lowest-level resources where you can grant this role:
|
|
Logs Bucket Writer( Ability to write logs to a log bucket. Lowest-level resources where you can grant this role:
|
|
Logs Configuration Writer( 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:
|
|
Log Field Accessor( Ability to read restricted fields in a log bucket. Lowest-level resources where you can grant this role:
|
|
Log Link Accessor( Ability to see links for a bucket. |
|
Logs Writer( Provides the permissions to write log entries. Lowest-level resources where you can grant this role:
|
|
Private Logs Viewer( 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:
|
|
Cloud Logging Service Agent( Grants a Cloud Logging Service Account the ability to create and link datasets. |
|
SQL Alert Writer Beta( Ability to write SQL Alerts. |
|
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
|
Logs Viewer( Provides access to view logs. Lowest-level resources where you can grant this role:
|
|
בקטעים הבאים מופיע מידע נוסף שיעזור לכם להחליט אילו תפקידים מתאימים לתרחישי השימוש של הגורמים המורשים שלכם.
רישום תפקידים ביומן
כדי לאפשר למשתמש לבצע את כל הפעולות ב-Logging, צריך להעניק לו את התפקיד Logging Admin (אדמין של Logging) (
roles/logging.admin).כדי לאפשר למשתמש ליצור ולשנות הגדרות של רישום ביומן, צריך להעניק לו את התפקיד 'בעל הרשאת כתיבה של רישום ביומן' (
roles/logging.configWriter). התפקיד הזה מאפשר ליצור או לשנות את כל אחד מהפריטים הבאים:התפקיד הזה לא מספיק כדי ליצור מדדים מבוססי-יומנים או כללי מדיניות להתראות מבוססות-יומנים. מידע על התפקידים שנדרשים לביצוע המשימות האלה זמין במאמרים הרשאות למדדים מבוססי-יומן והרשאות למדיניות התראות מבוססת-יומן.
כדי לאפשר למשתמש לקרוא יומנים בדלי
_Requiredו_Defaultאו להשתמש בדפים Logs Explorer ו-Log Analytics, צריך להעניק לו אחד מהתפקידים הבאים:- כדי לקבל גישה לכל היומנים בקטגוריה
_Requiredוגישה לתצוגה_Defaultבקטגוריה_Default, צריך להקצות את התפקיד 'צפייה ביומנים' (roles/logging.viewer). - כדי לקבל גישה לכל היומנים בקטגוריות
_Requiredו-_Default, כולל יומני גישה לנתונים, צריך להעניק את התפקיד 'צפייה ביומנים פרטיים' (roles/logging.privateLogViewer).
- כדי לקבל גישה לכל היומנים בקטגוריה
כדי לאפשר למשתמש לקרוא יומנים בכל תצוגות היומנים שנמצאות בפרויקט, צריך להקצות לו את תפקיד ה-IAM
roles/logging.viewAccessorבפרויקט.כדי לאפשר למשתמש לקרוא רישומים רק בתצוגת יומן ספציפית, יש שתי אפשרויות:
יוצרים מדיניות IAM לתצוגת היומן, ואז מוסיפים קישור IAM למדיניות הזו שמעניק לחשבון הראשי גישה לתצוגת היומן.
מקצים לחשבון המשתמש את תפקיד ה-IAM
roles/logging.viewAccessorבפרויקט שמכיל את תצוגת היומן, אבל מצרפים תנאי IAM כדי להגביל את ההקצאה לתצוגת היומן הספציפית.
מידע על יצירת תצוגות יומנים והענקת גישה מופיע במאמר הגדרת תצוגות יומנים בקטגוריה ביומן.
- כדי לתת למשתמש גישה לשדות מוגבלים של
LogEntry, אם יש כאלה, בקטגוריית יומנים נתונה, צריך להעניק את התפקיד Logs Field Accessor (roles/logging.fieldAccessor). מידע נוסף זמין במאמר בנושא הגדרת גישה ברמת השדה.
כדי לאפשר למשתמש לכתוב יומנים באמצעות Logging API, צריך להעניק לו את התפקיד Logs Writer (כותב יומנים) (
roles/logging.logWriter). התפקיד הזה לא מעניק הרשאות צפייה.כדי לאפשר לחשבון השירות של sink להפניית יומנים להעביר יומנים לקטגוריה ביומן בפרויקט Google Cloud אחר, צריך להקצות לחשבון השירות את התפקיד 'כתיבה לקטגוריית יומנים' (
roles/logging.bucketWriter). הוראות להענקת הרשאות לחשבון שירות מפורטות במאמר הגדרת הרשאות יעד.
תפקידים ברמת הפרויקט
כדי לתת גישת צפייה לרוב השירותים Google Cloud , צריך להקצות את התפקיד 'צפייה' (
roles/viewer).התפקיד הזה כולל את כל ההרשאות שמוענקות על ידי התפקיד 'צפייה ביומנים' (
roles/logging.viewer).כדי לתת גישת עריכה לרוב השירותים של Google Cloud , צריך להקצות את התפקיד 'עריכה' (
roles/editor).התפקיד הזה כולל את כל ההרשאות שמוענקות בתפקיד 'צפייה ביומנים' (
roles/logging.viewer), וגם את ההרשאות לכתוב רשומות ביומן, למחוק יומנים וליצור מדדים מבוססי-יומנים. עם זאת, התפקיד הזה לא מאפשר למשתמשים ליצור sink, לקרוא יומני ביקורת של Data Access שנמצאים בקטגוריה_Defaultאו לקרוא יומנים שנמצאים בקטגוריות של יומנים שהוגדרו על ידי משתמשים.כדי לתת גישה מלאה לרוב השירותים של Google Cloud , צריך להקצות את התפקיד 'בעלים' (
roles/owner).
הקצאת תפקידים
במאמר הענקה, שינוי וביטול גישה מוסבר איך נותנים תפקידים לחשבונות משתמשים.
אפשר להקצות כמה תפקידים לאותו משתמש. במאמר הצגת המטא-נתונים של התפקיד תוכלו לראות את רשימת ההרשאות שכל תפקיד מכיל.
אם אתם מנסים לגשת ל Google Cloud משאב ואין לכם את ההרשאות הנדרשות, עליכם לפנות לחשבון המשתמש שמופיע כבעלים של המשאב.
תפקידים בהתאמה אישית
כדי ליצור תפקיד בהתאמה אישית עם הרשאות לרישום ביומן, מבצעים את הפעולות הבאות:
כדי להקצות תפקיד עם הרשאות ל-Logging API, בוחרים הרשאות מתוך API permissions ופועלים לפי ההוראות ליצירת תפקיד בהתאמה אישית.
כדי להעניק הרשאה להשתמש בכלי Logs Explorer, בוחרים מתוך קבוצות ההרשאות בהרשאות במסוף ופועלים לפי ההוראות ליצירת תפקיד בהתאמה אישית.
כדי להקצות תפקיד עם הרשאות לשימוש ב-
gcloud logging, אפשר לעיין בקטע הרשאות של שורת הפקודה בדף הזה, ואז לפעול לפי ההוראות ליצירת תפקיד בהתאמה אישית.
מידע נוסף על תפקידים בהתאמה אישית זמין במאמר הסבר על תפקידים בהתאמה אישית ב-IAM.
הרשאות ב-Cloud Logging
בטבלה הבאה מפורטות חלק מההרשאות שנדרשות לתכונות ספציפיות של Cloud Logging. הטבלה הזו יכולה לעזור לכם לזהות את ההרשאות שאתם צריכים כדי להשתמש בדפים כמו Logs Explorer.
בטבלה, a.b.{x,y} מייצג את a.b.x ואת a.b.y.
| פעילות במסוף | ההרשאות הנדרשות |
|---|---|
| הרשאת קריאה בלבד מינימלית | logging.logEntries.list |
| צפייה ביומני ביקורת של גישה לנתונים | logging.privateLogEntries.list |
| הצגת מדדים מבוססי-יומנים | logging.logMetrics.{list, get} |
| הצגת מקורות | 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}
כשיוצרים תפקיד בהתאמה אישית שכולל הרשאות לניהול מסנני החרגה, מוסיפים לתפקיד את ההרשאות |
| יצירה של sinks ושימוש בהם | logging.sinks.{list, create, get, update, delete}
כשיוצרים יעד, צריך גם להקצות לחשבון השירות תפקיד ב-IAM שמאפשר לו לכתוב רשומות ביומן ליעד. מידע נוסף מופיע במאמר בנושא הגדרת הרשאות ליעד. אחרי שהרשומות ביומן מנותבות ליעד נתמך, הגישה לרשומות ביומן נשלטת באופן מלא על ידי ההרשאות והתפקידים ב-IAM ביעד. |
| יצירת התראות שמבוססות על יומנים | ראו תפקידים שנדרשים כדי ליצור מדיניות התראות מבוססת-יומן ולהשתמש בה. |
| יצירת מדדים מבוססי-יומנים | logging.logMetrics.{list, create, get, update, delete}
מידע על תפקידי IAM אחרים שצריך ליצור ולהשתמש בהם במדדים מבוססי-יומן זמין במאמר תפקידים שנדרשים ליצירה ולשימוש במדדים מבוססי-יומן. |
| שמירה ושימוש בשאילתות פרטיות | logging.queries.usePrivatelogging.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} |
| יצירה וניהול של תצוגות מפורטות של נתוני ניתוח | observability.analyticsViews.{create, delete, get, list, update} |
| יצירה וניהול של מערכי נתונים מקושרים | logging.links.{create, delete, get, list}
יכול להיות שתצטרכו תפקידי IAM נוספים כדי לשלוח שאילתות לקבוצת הנתונים המקושרת. לדוגמה, ההרשאות האלה לא מעניקות לכם גישה לממשק של BigQuery. מידע נוסף זמין במאמר BigQuery: בקרת גישה באמצעות IAM. |
הרשאות לשורת הפקודה
הפקודות של gcloud logging נשלטות על ידי הרשאות IAM.
כדי להשתמש בפקודות gcloud logging, למשתמשים צריכה להיות הרשאת serviceusage.services.use.
בנוסף, לחשבון הראשי צריכה להיות הרשאת IAM שמתאימה למשאב של היומן ולתרחיש השימוש. פרטים נוספים מופיעים במאמר בנושא הרשאות לממשק שורת הפקודה.
תפקידים שנדרשים כדי ליצור מדדים מבוססי-יומן ולהשתמש בהם
בטבלה הבאה מפורטים התפקידים וההרשאות הנפוצים שנדרשים לחשבון משתמש כדי לגשת למדדים מבוססי-יומן:
התפקיד Logs Configuration Writer (
roles/logging.configWriter) מאפשר לחשבונות ראשיים להציג ברשימה, ליצור, לקבל, לעדכן ולמחוק מדדים מבוססי-יומן.התפקיד צפייה ביומנים (
roles/logging.viewer) כולל הרשאות לצפייה במדדים קיימים. בפרט, נדרשות ההרשאותlogging.logMetrics.getו-logging.logMetrics.listכדי להציג מדדים קיימים.התפקיד צפייה בנתוני מעקב (
roles/monitoring.viewer) כולל את ההרשאות לקריאת נתונים מסוג TimeSeries. באופן ספציפי, לחשבון המשתמש צריכה להיות הרשאתmonitoring.timeSeries.listכדי לקרוא נתונים של סדרות זמן.התפקידים אדמין של Logging (
roles/logging.admin), עריכת פרויקט (roles/editor) ובעלי הפרויקט (roles/owner) כוללים את ההרשאות ליצירת מדדים מבוססי-יומן. באופן ספציפי, כדי ליצור מדדים מבוססי-יומן, למשתמש הראשי צריכה להיות הרשאתlogging.logMetrics.create.
התפקידים שנדרשים כדי ליצור כללי מדיניות התראות שמבוססים על יומנים ולהשתמש בהם
בקטע הזה מתוארים התפקידים שנדרשים כדי ליצור כללי מדיניות התראות שמבוססים על יומנים, ערוצי התראות וכללי התראות. ערוצי התראות מציינים איך Cloud Monitoring שולח לכם התראות. כלל התראה מתאר איך להתאים רשומות יומן נכנסות לכלל מדיניות ההתראות.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירה של כללי מדיניות להתראות שמבוססים על יומנים, ליצירה של ערוצי התראות וליצירה של כללי ההתראות המשויכים ב-Logging, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
עורך מדיניות ההתראות של Monitoring (
roles/monitoring.alertPolicyEditor) -
עריכת ערוץ התראות של מעקב (
roles/monitoring.notificationChannelEditor) -
Logs Configuration Writer (
roles/logging.configWriter)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות ליצירת כללי מדיניות להתראות שמבוססים על יומנים, ליצירת ערוצי התראות וליצירת כללי ההתראות המשויכים ב-Logging. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור מדיניות התראות שמבוססת על יומנים, ליצור ערוצי התראות וליצור את כללי ההתראות המשויכים ב-Logging, נדרשות ההרשאות הבאות:
-
monitoring.alertPolicies.create -
monitoring.notificationChannels.create -
logging.notificationRules.create
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
תפקידים נוספים שנדרשים למשתמשים ב-Google Cloud CLI
כדי לקבל את ההרשאה שנדרשת ליצירת מדיניות התראות באמצעות Google Cloud CLI, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Service Usage Consumer (roles/serviceusage.serviceUsageConsumer) בפרויקט.
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד שמוגדר מראש מכיל את ההרשאה serviceusage.services.use, שנדרשת כדי ליצור מדיניות התראות באמצעות Google Cloud CLI.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
הרשאות למדיניות התראות שמבוססת על SQL
מדיניות התראות מבוססת-SQL מעריכה את התוצאות של שאילתת SQL שמופעלת על נתונים מקבוצות של רשומות ביומן. למידע על התפקידים שנדרשים כדי ליצור ולנהל מדיניות התראות מבוססת-SQL, אפשר לעיין בקטע לפני שמתחילים במאמר מעקב אחרי תוצאות של שאילתות SQL באמצעות מדיניות התראות.
רישום היקפי גישה ביומן
היקפי גישה הם השיטה הקודמת להגדרת הרשאות לחשבונות השירות במכונות הווירטואליות של Compute Engine.
היקפי הגישה הבאים חלים על Logging API:
| היקף גישה | הרשאות שהוענקו |
|---|---|
| https://www.googleapis.com/auth/logging.read | roles/logging.viewer |
| https://www.googleapis.com/auth/logging.write | roles/logging.logWriter |
| https://www.googleapis.com/auth/logging.admin | גישה מלאה ל-Logging API. |
| https://www.googleapis.com/auth/cloud-platform | גישה מלאה ל-Logging API ולכל ממשקי ה-API האחרים המופעלים. Google Cloud |
למידע על שימוש בשיטה מדור קודם להגדרת רמות הגישה של חשבונות השירות, ראו היקפי גישה.