סקירה כללית של המלצות לתפקידים

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

סקירה כללית של המלצות לתפקידים

ההמלצות לתפקידים נוצרות על ידי שירות ההמלצות של IAM. הכלי להמלצות בנושא IAM הוא אחד מהכלים להמלצות שמוצעים על ידי Recommender.

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

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

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

איך נוצרות תובנות לגבי מדיניות

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

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

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

  • ישירות, על ידי קריאה ל-API שדורש את ההרשאה

    לדוגמה, ה-method‏ roles.list ב-IAM API בארכיטקטורת REST דורשת את ההרשאה iam.roles.list. כשמבצעים קריאה ל-method‏ roles.list, משתמשים בהרשאה iam.roles.list.

    באופן דומה, כשקוראים ל-method ‏testIamPermissions של משאב, משתמשים למעשה בכל ההרשאות שנבדקות.

  • באופן עקיף, באמצעות שימוש במסוף Google Cloud כדי לעבוד עם משאבי Google Cloud

    לדוגמה, במסוף Google Cloud , אפשר לערוך מכונה וירטואלית (VM) של Compute Engine, שנדרשות לה הרשאות שונות בהתאם להגדרות שמשנים. עם זאת, במסוף Google Cloud מוצגות גם ההגדרות הקיימות, ולשם כך נדרשת ההרשאה compute.instances.get.

    כתוצאה מכך, כשעורכים מכונת VM במסוף Google Cloud , משתמשים בהרשאה compute.instances.get.

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

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

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

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

למידת מכונה לקבלת תובנות לגבי מדיניות

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

מודל למידת המכונה הזה מאומן על כמה קבוצות של אותות:

  • דפוסי שכיחות משותפת נפוצים בהיסטוריה שנצפתה: העובדה שמשתמש השתמש בהרשאות א', ב' ו-ג' בעבר מרמזת שאולי יש קשר בין א', ב' ו-ג' ושצריך את כולן כדי לבצע משימה ב- Google Cloud. אם מודל ה-ML יזהה את הדפוס הזה מספיק פעמים, בפעם הבאה שמשתמש אחר ישתמש בהרשאות A ו-B, המודל יציע שייתכן שהמשתמש יזדקק גם להרשאה C.

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

בנוסף לאותות האלה, המודל משתמש גם בהטמעה של מילים כדי לחשב את הדמיון הסמנטי בין ההרשאות. הרשאות שדומות מבחינה סמנטית יהיו קרובות זו לזו אחרי ההטמעה, וסביר יותר שיינתנו יחד. לדוגמה, המילים bigquery.datasets.get ו-bigquery.tables.list יהיו קרובות מאוד זו לזו אחרי ההטמעה.

כל הנתונים שמשמשים בצינור למידת מכונה של הכלי להמלצות בנושא IAM עברו k-אנונימיזציה, כלומר אי אפשר לזהות מחדש אנשים במערך הנתונים שעבר אנונימיזציה. כדי להשיג רמת אנונימיות כזו, אנחנו מסירים את כל הפרטים האישיים המזהים (PII), כמו מזהה המשתמש שקשור לכל דפוס שימוש בהרשאה. לאחר מכן, אנחנו מסירים את כל דפוסי השימוש שלא מופיעים בתדירות מספקת ב- Google Cloud. המודל הגלובלי עובר אימון על הנתונים האנונימיים האלה.

אפשר להתאים אישית את המודל הגלובלי לכל ארגון באמצעות למידה משותפת (Federated), תהליך של למידת מכונה שמאמן מודלים של למידת מכונה בלי לייצא נתונים.

איך נוצרות המלצות לתפקידים

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

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

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

תקופת התצפית

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

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

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

אם עבר יותר זמן מתקופת התצפית המינימלית אבל פחות מ-90 ימים מאז שהתפקיד הוענק, תקופת התצפית היא משך הזמן שעבר מאז שהתפקיד הוענק.

תפקידים חדשים בהתאמה אישית בהמלצות לתפקידים

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

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

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

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

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

בנוסף, שירות המלצות ב-IAM לא ממליץ על תפקידים חדשים בהתאמה אישית במקרים הבאים:

  • בארגון שלכם כבר יש 100 תפקידים מותאמים אישית או יותר.
  • בפרויקט שלכם כבר יש 25 תפקידים בהתאמה אישית או יותר.

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

איך נוצרות תובנות לגבי תנועה רוחבית

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

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

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

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

    • iam.serviceAccounts.actAs
    • iam.serviceAccounts.getAccessToken
    • iam.serviceAccounts.getOpenIdToken
    • iam.serviceAccounts.implicitDelegation
    • iam.serviceAccounts.signBlob
    • iam.serviceAccounts.signJwt

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

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

מידע נוסף על ניהול תובנות לגבי תנועה רוחבית זמין במאמר ניהול תובנות לגבי תנועה רוחבית.

זמינות

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

זמינות התובנות לגבי המדיניות

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

  • מדיניות ההרשאה ב-IAM שמעניקה את התפקיד צריכה להיות מצורפת לאחד מהמשאבים הבאים:

    • קטגוריה של Cloud Storage
    • מערך נתונים ב-BigQuery
    • פרויקט
    • תיקייה
    • ארגון

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

  • בקישור התפקיד שמעניק את התפקיד לא יכול להיות תנאי. שירות ההמלצות של IAM לא יוצר תובנות לגבי מדיניות עבור קישורי תפקידים מותנים.

  • חשבון המשתמש שמקבל את התפקיד צריך להיות אחד מסוגי חשבונות המשתמשים הבאים:

    • משתמש
    • חשבון שירות
    • קבוצה
    • allUsers
    • allAuthenticatedUsers
    • ערכי נוחות של Cloud Storage
    • חברות בקבוצות מיוחדות ב-BigQuery
    • אחד מהסוגים הבאים של זהויות מאוחדות:

      • כל הזהויות במאגר זהויות של עומסי עבודה
      • זהות יחידה במאגר זהויות של עומסי עבודה
      • כל הזהויות במאגר זהויות של כוח עבודה
      • זהות יחידה במאגר זהויות של כוח עבודה
      • כל ה-Pods ב-Google Kubernetes Engine שמשתמשים בחשבון שירות ספציפי של Kubernetes

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

יכול להיות שיחלפו עד 15 ימים עד שכלי ההמלצות של IAM יפיק תובנות לגבי מדיניות עבור תפקיד חדש שהוקצה.

זמינות של תובנות לגבי תנועה רוחבית

תובנות לגבי תנועה רוחבית נוצרות עבור תפקידים שמוקצים במשאבים הבאים:

  • ארגונים
  • תיקיות
  • פרויקטים
  • חשבונות שירות

זמינות של המלצות לתפקידים

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

  • לתפקיד צריך להיות משויך תובנה לגבי מדיניות. התובנה הזו לגבי המדיניות משמשת כבסיס להמלצה.
  • צריך לעבור יותר זמן מתקופת ההמתנה המינימלית מאז שהתפקיד הוענק. כך אפשר לוודא שלכלי להמלצות בנושא IAM יהיו מספיק נתוני שימוש כדי להציג המלצה. כברירת מחדל, תקופת התצפית המינימלית היא 90 ימים, אבל אפשר להגדיר אותה באופן ידני ל-30 או ל-60 ימים. פרטים נוספים מופיעים במאמר בנושא הגדרת יצירת המלצות לתפקידים.
  • אם הגורם המקבל (principal) שאליו מוקצה התפקיד הוא סוכן שירות, התפקיד חייב להיות בעלים, עריכה או צפייה. כלי ההמלצות של IAM לא יוצר המלצות לתפקידים עבור סוכני שירות עם תפקידים אחרים. פרטים נוספים זמינים במאמר המלצות לגבי תפקידים לסוכני שירות.

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

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

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

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

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

  • אף חשבון משתמש אחר לא קיבל את התפקיד הבסיסי 'בעלים' בפרויקט. לפחות חשבון משתמש אחד צריך לקבל את התפקיד 'בעלים' (roles/owner) בכל פרויקט. אם רק לישות מורשית אחת יש את התפקיד הזה, שירות המלצות IAM לא ימליץ לבטל או להחליף את התפקיד.

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

עדיפות וחומרה

העדיפות של ההמלצה והחומרה של התובנה עוזרות לכם להבין את הדחיפות של ההמלצה או התובנה ולתעדף אותן בהתאם.

העדיפות של המלצות לתפקידים

להמלצות מוקצות רמות עדיפות על סמך הדחיפות שלהן. רמות העדיפות נעות בין P1 (העדיפות הגבוהה ביותר) לבין P4 (העדיפות הנמוכה ביותר).

העדיפות של המלצה על תפקיד תלויה בתפקיד שההמלצה מתייחסת אליו:

פרטי ההמלצה עדיפות הסבר
המלצות לתפקידים שמעניקים גישה ציבורית לקטגוריות של Cloud Storage P1 כל משתמש באינטרנט יכול לגשת לקטגוריות שגלויות לכולם. הסרת הגישה הציבורית מאפשרת לכם יותר שליטה בנתונים.
המלצות לתפקידים שמעניקים גישה ציבורית למערכי נתונים ב-BigQuery P1 כל אחד באינטרנט יכול לגשת למערכי נתונים שזמינים לכולם. הסרת הגישה הציבורית מאפשרת לכם יותר שליטה בנתונים.
המלצות לתפקידים בסיסיים (בעלים, עריכה וצפייה) שניתנים בפרויקט, בתיקייה או בארגון P2 לתפקידים בסיסיים יש הרבה הרשאות, והחלת המלצות על התפקידים האלה יכולה לצמצם באופן משמעותי את ההרשאות המיותרות.
המלצות שלא מעניקות גישה ציבורית או תפקידים בסיסיים P4 ההמלצות האלה עוזרות לצמצם את ההרשאות המיותרות, אבל הן לא מסירות גישה ציבורית או תפקידים בסיסיים עם הרשאות רחבות מדי, ולכן הן בעדיפות נמוכה יותר.

חומרת התובנה

לתובנות מוקצים רמות חומרה על סמך הדחיפות שלהן. רמות החומרה יכולות להיות LOW, MEDIUM, HIGH או CRITICAL.

מידת החומרה של תובנה לגבי מדיניות תלויה בתפקיד שאליו מתייחסת התובנה:

פרטי התובנה חוּמרה הסבר
תובנות לגבי תפקידים שמעניקים גישה ציבורית לקטגוריות של Cloud Storage CRITICAL כל משתמש באינטרנט יכול לגשת לקטגוריות שגלויות לכולם. הסרת הגישה הציבורית מאפשרת לכם יותר שליטה בנתונים.
תובנות לגבי תפקידים שמעניקים גישה ציבורית למערכי נתונים של BigQuery CRITICAL כל אחד באינטרנט יכול לגשת למערכי נתונים שזמינים לכולם. הסרת הגישה הציבורית מאפשרת לכם יותר שליטה בנתונים.
תובנות לגבי תפקידים בסיסיים (בעלים, עריכה וצפייה) שמוקצים בפרויקט, בתיקייה או בארגון HIGH לתפקידים בסיסיים יש הרבה הרשאות, והתובנות לגבי התפקידים האלה יכולות לעזור לכם לצמצם באופן משמעותי את ההרשאות המיותרות.
תובנות שלא מעניקות גישה ציבורית או תפקידים בסיסיים LOW התובנות האלה אמנם מדגישות הרשאות עודפות, אבל הן לא קשורות לגישה ציבורית או לתפקידים בסיסיים עם הרשאות רחבות מאוד, ולכן הן בעדיפות נמוכה יותר.

כל התובנות לגבי תנועה רוחבית הן ברמת חומרה LOW.

איך מיישמים המלצות לגבי תפקידים

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

יש כמה דרכים לפעול לפי ההמלצות:

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

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

סוגי משנה של המלצות לתפקידים

ההמלצות לתפקידים מחולקות לכמה סוגי משנה שונים על סמך הפעולה שהן ממליצות עליה. אם אתם משתמשים ב-CLI של gcloud או ב-REST API, אתם יכולים להשתמש בסוגי המשנה האלה כדי לסנן את ההמלצות.

סוג משנה תיאור
REMOVE_ROLE המלצה להסרת התפקיד של החשבון הראשי ברמת הפרויקט, התיקייה או הארגון.
REMOVE_ROLE_BIGQUERY_DATASET המלצה להסרת התפקיד ברמת מערך הנתונים של החשבון הראשי.
REMOVE_ROLE_STORAGE_BUCKET המלצה להסרת התפקיד של החשבון הראשי ברמת הקטגוריה.
REPLACE_ROLE המלצה להחליף את התפקיד של חשבון המשתמש ברמת הפרויקט, התיקייה או הארגון בתפקיד עם פחות הרשאות. התחליף המומלץ יכול להיות תפקיד קיים בהתאמה אישית או תפקיד מוגדר מראש אחד או יותר.
REPLACE_ROLE_CUSTOMIZABLE המלצה להחליף את התפקיד של חשבון המשתמש בתפקיד חדש בהתאמה אישית עם פחות הרשאות מהתפקיד הנוכחי.
REPLACE_ROLE_BIGQUERY_DATASET המלצה להחליף את התפקיד של החשבון הראשי ברמת מערך הנתונים בתפקיד עם פחות הרשאות. התפקיד המומלץ יכול להיות תפקיד קיים בהתאמה אישית או תפקיד מוגדר מראש אחד או יותר.
REPLACE_ROLE_STORAGE_BUCKET המלצה להחליף את התפקיד של החשבון הראשי ברמת הדלי בתפקיד עם פחות הרשאות. התפקיד המומלץ להחלפה יכול להיות תפקיד קיים בהתאמה אישית או תפקיד מוגדר מראש אחד או יותר.
SERVICE_AGENT_WITH_DEFAULT_ROLE המלצה להחליף את התפקיד 'בעלים', 'עריכה' או 'צפייה' של סוכן שירות בתפקיד שהוקצה אוטומטית לחשבון השירות כשהוא נוצר. מידע נוסף זמין במאמר בנושא המלצות לתפקידים של סוכני שירות.
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE המלצה להחליף את התפקיד 'בעלים', 'עריכה' או 'צפייה' של סוכן שירות בתפקיד עם פחות הרשאות. מידע נוסף זמין במאמר בנושא המלצות לתפקידים של סוכני שירות.

המלצות לגבי תפקידים לסוכני שירות

לגבי סוכני שירות, שירות ההמלצות של IAM מספק המלצות רק לגבי תפקידים בסיסיים (בעלים, עריכה או צפייה).

ההמלצות לסוכני שירות מחולקות לשני סוגי משנה של המלצות.

SERVICE_AGENT_WITH_DEFAULT_ROLE

כשיוצרים סוכני שירות מסוימים, הם מקבלים באופן אוטומטי תפקיד של סוכן שירות כדי להבטיח שהשירותים שלכם ב- Google Cloud יפעלו כמו שצריך. אם תחליפו את התפקיד הזה בתפקיד בסיסי (בעלים, עריכה או צפייה), יכול להיות שתקבלו המלצה לשחזר את התפקיד המקורי של סוכן השירות כדי להסיר הרשאות מיותרות, גם אם לתפקיד של סוכן השירות יש הרשאות שלא כלולות בתפקיד הבסיסי. ההמלצות האלה הן מסוג משנה SERVICE_AGENT_WITH_DEFAULT_ROLE. הם עוזרים לכם להסיר בבטחה הרשאות מיותרות, תוך הקפדה על כך שכל Google Cloud השירותים יפעלו בצורה תקינה.

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

SERVICE_AGENT_WITHOUT_DEFAULT_ROLE

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

המלצות לתפקידים ב-Security Command Center

אם יש לכם את מהדורת Premium או Enterprise של Security Command Center, תוכלו לראות חלק מסוגי המשנה של המלצות לתפקידים כממצאים ב-Security Command Center. כל סוג משנה משויך לגלאי:

סוג משנה של המלצה קטגוריית התוצאות
REMOVE_ROLE Unused IAM role
REPLACE_ROLE IAM role has excessive permissions
SERVICE_AGENT_WITH_DEFAULT_ROLE Service agent role replaced with basic role
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE Service agent granted basic role

מידע נוסף על צפייה בהמלצות לתפקידים ב-Security Command Center זמין במאמר IAM recommender במסמכי התיעוד של Security Command Center.

תמחור

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

התכונות המתקדמות הבאות של הכלי להמלצות בנושא IAM זמינות בהפעלות ברמת הפרויקט או ברמת הארגון של מסלול Premium או Enterprise של Security Command Center:

  • המלצות לתפקידים שאינם בסיסיים
  • המלצות לתפקידים שניתנו במשאבים שאינם ארגונים, תיקיות ופרויקטים – לדוגמה, המלצות לתפקידים שניתנו בקטגוריות של Cloud Storage
  • המלצות ליצירת תפקידים בהתאמה אישית
  • תובנות לגבי מדיניות
  • תובנות לגבי תנועה רוחבית

מידע נוסף זמין במאמר שאלות בנושא חיוב.

דוגמאות להמלצות על תפקידים

בדוגמאות הבאות מוצגים סוגי ההמלצות שאתם יכולים לקבל.

ביטול תפקיד קיים

למשתמש my-user@example.com הוענק התפקיד Browser בפרויקט. התפקיד 'דפדפן' כולל שש הרשאות שמאפשרות למשתמש לראות משאבים בפרויקט. עם זאת, ב-90 הימים האחרונים, המשתמש my-user@example.com לא צפה באף משאב.

לכן, הכלי להמלצות IAM יוצר המלצה לביטול התפקיד Browser מהמשתמש my-user@example.com:

המסוף

gcloud

{
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
    }
  ],
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "remove",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/browser"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    ],
    "overview": {
      "member": "user:my-user@example.com",
      "removedRole": "roles/browser",
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012"
    }
  },
  "description": "This role has not been used during the observation window.",
  "etag": "\"9fc3241da8bfab51\"",
  "lastRefreshTime": "2022-05-20T07:00:00Z",
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {
        "revokedIamPermissionsCount": 6
      }
    }
  },
  "priority": "P4",
  "recommenderSubtype": "REMOVE_ROLE",
  "stateInfo": {
    "state": "ACTIVE"
  }
}

REST

{
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fe512038-5455-49g1-8f9c-752e31c8c154",
  "description": "This role has not been used during the observation window.",
  "lastRefreshTime": "2022-05-20T07:00:00Z",
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {
        "revokedIamPermissionsCount": 6
      }
    }
  },
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "remove",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/browser"
            }
          }
        ]
      }
    ],
    "overview": {
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
      "member": "user:my-user@example.com",
      "removedRole": "roles/browser"
    }
  },
  "stateInfo": {
    "state": "ACTIVE"
  },
  "etag": "\"9fc3241da8bfab51\"",
  "recommenderSubtype": "REMOVE_ROLE",
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/86c14538-dcfd-4326-afe5-ee8ac921e06a"
    }
  ],
  "priority": "P4"
}

החלפת תפקיד קיים

לחשבון שירות הוקצה התפקיד 'עריכה' (roles/editor) בפרויקט. התפקיד הבסיסי הזה כולל יותר מ-3,000 הרשאות ומעניק גישה נרחבת לפרויקט. עם זאת, במהלך 90 הימים האחרונים, חשבון השירות השתמש רק בחלק מההרשאות האלה.

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

המסוף

gcloud

{
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/3d4ef3d6-bdf0-4330-975d-c65cb929c44d"
    }
  ],
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "add",
            "path": "/iamPolicy/bindings/*/members/-",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/iam.serviceAccountUser"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "value": "user:my-user@example.com"
          },
          {
            "action": "add",
            "path": "/iamPolicy/bindings/*/members/-",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "value": "user:my-user@example.com"
          },
          {
            "action": "remove",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/editor"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    ],
    "overview": {
      "addedRoles": [
        "roles/iam.serviceAccountUser",
        "roles/storage.objectAdmin"
      ],
      "member": "user:my-user@example.com",
      "minimumObservationPeriodInDays": "0",
      "removedRole": "roles/editor",
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012"
    }
  },
  "description": "Replace the current role with smaller predefined roles to cover the permissions needed.",
  "etag": "\"0da9a354c2a83d96\"",
  "lastRefreshTime": "2022-06-22T07:00:00Z",
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/4637db3d-dba5-45eb-95ac-b4ee4b4cd14e",
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {
        "revokedIamPermissionsCount": 2998
      }
    }
  },
  "priority": "P2",
  "recommenderSubtype": "REPLACE_ROLE",
  "stateInfo": {
    "state": "ACTIVE"
  }
}

REST

{
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/4637db3d-dba5-45eb-95ac-b4ee4b4cd14e",
  "description": "Replace the current role with smaller predefined roles to cover the permissions needed.",
  "lastRefreshTime": "2022-06-22T07:00:00Z",
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {
        "revokedIamPermissionsCount": 2998
      }
    }
  },
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "add",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/-",
            "value": "user:my-user@example.com",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/iam.serviceAccountOwner"
            }
          },
          {
            "action": "add",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/-",
            "value": "user:my-user@example.com",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/storage.objectAdmin"
            }
          },
          {
            "action": "remove",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/editor"
            }
          }
        ]
      }
    ],
    "overview": {
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
      "member": "user:my-user@example.com",
      "removedRole": "roles/editor",
      "addedRoles": [
        "roles/iam.serviceAccountUser",
        "roles/storage.objectAdmin"
      ],
      "minimumObservationPeriodInDays": "0"
    }
  },
  "stateInfo": {
    "state": "ACTIVE"
  },
  "etag": "\"0da9a354c2a83d96\"",
  "recommenderSubtype": "REPLACE_ROLE",
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/3d4ef3d6-bdf0-4330-975d-c65cb929c44d"
    }
  ],
  "priority": "P2"
}

יצירת תפקיד בהתאמה אישית

למשתמש my-user@example.com הוענק התפקיד Cloud Trace Admin ‏(roles/cloudtrace.admin) בפרויקט. התפקיד כולל יותר מ-10 הרשאות, אבל תובנה לגבי מדיניות מציינת שבמהלך 90 הימים האחרונים, my-user@example.com השתמש רק ב-4 מתוך ההרשאות האלה.

לכן, הכלי להמלצות ב-IAM יוצר המלצה לתפקיד ומציע ליצור תפקיד בהתאמה אישית שכולל רק את ההרשאות שmy-user@example.com השתמש בהן בפועל:

המסוף

gcloud

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

{
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
    }
  ],
  "associatedResourceNames": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "add",
            "path": "/iamPolicy/bindings/*/members/-",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "value": "user:my-user@example.com"
          },
          {
            "action": "remove",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
            },
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    ],
    "overview": {
      "minimumObservationPeriodInDays": "0"
    }
  },
  "description": "Replace the current role with a smaller role to cover the permissions needed.",
  "etag": "\"c7f57a4725d32d66\"",
  "lastRefreshTime": "2022-06-22T07:00:00Z",
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
  "originalContent": {},
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {},
      "revokedIamPermissionsCount": 1
    }
  },
  "priority": "P4",
  "recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ]
}

REST

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

{
  "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/ba1fc977-fddd-3856-a829-f69649ae8075",
  "description": "Replace the current role with a smaller role to cover the permissions needed.",
  "lastRefreshTime": "2022-06-22T07:00:00Z",
  "primaryImpact": {
    "category": "SECURITY",
    "securityProjection": {
      "details": {
        "revokedIamPermissionsCount": 1
      }
    }
  },
  "content": {
    "operationGroups": [
      {
        "operations": [
          {
            "action": "add",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/-",
            "value": "user:my-user@example.com",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/role": "roles/cloudtrace.user"
            }
          },
          {
            "action": "remove",
            "resourceType": "cloudresourcemanager.googleapis.com/Project",
            "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
            "path": "/iamPolicy/bindings/*/members/*",
            "pathFilters": {
              "/iamPolicy/bindings/*/condition/expression": "",
              "/iamPolicy/bindings/*/members/*": "user:my-user@example.com",
              "/iamPolicy/bindings/*/role": "roles/cloudtrace.admin"
            }
          }
        ]
      }
    ],
    "overview": {
      "minimumObservationPeriodInDays": "0"
    }
  },
  "stateInfo": {
    "state": "ACTIVE"
  },
  "etag": "\"c7f57a4725d32d66\"",
  "recommenderSubtype": "REPLACE_ROLE_CUSTOMIZABLE",
  "associatedInsights": [
    {
      "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/2799dc04-b12e-4cf6-86aa-d81907d31f58"
    }
  ],
  "priority": "P4"
}

ההמלצה לתפקיד מציעה גם אפשרות אחרת: להחליף את התפקיד הקיים בתפקיד Cloud Trace User ‏(roles/cloudtrace.user). התפקיד המוגדר מראש הזה כולל קצת פחות הרשאות מהתפקיד Cloud Trace Admin.

החלפת תפקיד בהרשאות שמוצעות על ידי למידת מכונה

לחשבון שירות הוקצה התפקיד 'עריכה' (roles/editor) בפרויקט. התפקיד הבסיסי הזה כולל יותר מ-3,000 הרשאות ומעניק גישה נרחבת לפרויקט. עם זאת, תובנה לגבי מדיניות מציינת שבמהלך 90 הימים האחרונים, חשבון השירות השתמש בפחות מ-10 הרשאות.

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

שירות ההמלצות של IAM יוצר המלצה לתפקיד, ומציע לבטל את התפקיד Editor ולהחליף אותו בתפקיד Storage Object Admin‏ (roles/storage.objectAdmin), שמעניק שליטה מלאה באובייקטים בקטגוריה של Cloud Storage. השינוי הזה מסיר אלפי הרשאות מיותרות, אבל עדיין כולל את ההרשאות שחשבון השירות השתמש בהן ואת ההרשאות שסביר שחשבון השירות יזדקק להן בעתיד:

המסוף

כדי לזהות הרשאות שנוספו על סמך למידת המכונה של הכלי להמלצות IAM ולא על סמך השימוש בהרשאות, הכלי להמלצות IAM משתמש בסמל של למידת מכונה בדוגמה הזו, ההרשאה resourcemanager.projects.get הומלצה על סמך למידת מכונה:

gcloud

הרשאות שנוספו על סמך למידת מכונה של הכלי להמלצות IAM ולא על סמך שימוש בהרשאות לא מופיעות בהמלצה עצמה. במקום זאת, הן מפורטות בתובנות לגבי המדיניות שמשויכות להמלצה. כל ההרשאות שמבוססות על ML מפורטות בשדה inferredPermissions של התובנה. בדוגמה הזו, ההרשאה resourcemanager.projects.get הומלצה על סמך למידת מכונה:

associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  currentTotalPermissionsCount: '5069'
  exercisedPermissions:
  - permission: storage.objects.create
  - permission: storage.objects.delete
  - permission: storage.objects.get
  - permission: storage.objects.list
  inferredPermissions:
  - permission: resourcemanager.projects.get
  member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com
  role: roles/editor
description: 4 of the permissions in this role binding were used in the past 90 days.
etag: '"d3cdec23cc712bd0"'
insightSubtype: PERMISSIONS_USAGE
lastRefreshTime: '2020-07-11T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040
observationPeriod: 7776000s
stateInfo:
  state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012
severity: HIGH

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

REST

הרשאות שנוספו על סמך למידת מכונה של הכלי להמלצות IAM ולא על סמך שימוש בהרשאות לא מופיעות בהמלצה עצמה. במקום זאת, הן מפורטות בתובנות לגבי המדיניות שמשויכות להמלצה. כל ההרשאות שמבוססות על ML מפורטות בשדה inferredPermissions של התובנה. בדוגמה הזו, ההרשאה resourcemanager.projects.get הומלצה על סמך למידת מכונה:

{
  "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568",
  "description": "4 of the permissions in this role binding were used in the past 90 days.",
  "content": {
    "role": "roles/editor",
    "member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [
      {
        "permission": "storage.objects.create"
      },
      {
        "permission": "storage.objects.delete"
      },
      {
        "permission": "storage.objects.get"
      },
      {
        "permission": "storage.objects.list"
      }
    ],
    "inferredPermissions": [
      {
        "permission": "resourcemanager.projects.get"
      }
    ],
    "currentTotalPermissionsCount": "5069"
  },
  "lastRefreshTime": "2020-07-12T07:00:00Z",
  "observationPeriod": "7776000s",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656"
    }
  ],
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "insightSubtype": "PERMISSIONS_USAGE",
  "etag": "\"d3cdec23cc712bd0\"",
  "severity": "HIGH"
}

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

המאמרים הבאים