ההמלצות לתפקידים עוזרות לכם לזהות הרשאות עודפות לחשבונות משתמשים ולהסיר אותן, וכך לשפר את הגדרות האבטחה של המשאבים.
סקירה כללית של המלצות לתפקידים
ההמלצות לתפקידים נוצרות על ידי שירות ההמלצות של IAM. הכלי להמלצות בנושא IAM הוא אחד מהכלים להמלצות שמוצעים ב-Recommender.
כל המלצה לתפקיד מציעה להסיר או להחליף תפקיד שנותן לחשבונות המשתמשים שלכם הרשאות עודפות. ההמלצות האלה עוזרות לכם לאכוף את העיקרון של הרשאות מינימליות, גם כשיש הרבה מהן. לשם כך הוספנו את התכונות הבאות:
כדי לזהות הרשאות עודפות, כלי ההמלצות של IAM משתמש בתובנות לגבי מדיניות. תובנות לגבי מדיניות הן ממצאים שמבוססים על ML בנוגע לשימוש בהרשאות של חשבון משתמש.
חלק מההמלצות משויכות גם לתובנות לגבי תנועה רוחבית. התובנות האלה מזהות תפקידים שמאפשרים לחשבונות שירות בפרויקט אחד להתחזות לחשבונות שירות בפרויקט אחר. מידע נוסף זמין במאמר בנושא איך נוצרות תובנות לגבי תנועה לרוחב.
איך נוצרות תובנות לגבי מדיניות
תובנות לגבי מדיניות מדגישות את ההרשאות בתפקידים של חשבון משתמש, שחשבון המשתמש לא משתמש בהן.
שירות ההמלצות של IAM יוצר תובנות לגבי מדיניות על ידי השוואה בין המספר הכולל של ההרשאות של גורם מרכזי לבין ההרשאות שבהן הגורם המרכזי השתמש ב-90 הימים האחרונים. אם התפקיד הוקצה לפני פחות מ-90 יום, הכלי להמלצות IAM בודק את השימוש בהרשאות של חשבון המשתמש מאז שהוקצה לו התפקיד.
יש כמה דרכים שבהן גורם ראשי יכול להשתמש בהרשאה:
באופן ישיר, על ידי קריאה ל-API שדורש את ההרשאה
לדוגמה, ה-method
roles.listב-IAM API בארכיטקטורת REST דורשת את ההרשאהiam.roles.list. כשמבצעים קריאה ל-methodroles.list, משתמשים בהרשאהiam.roles.list.באופן דומה, כשקוראים ל-method
testIamPermissionsשל משאב, משתמשים למעשה בכל ההרשאות שנבדקות.באופן עקיף, באמצעות מסוף Google Cloud לעבודה עם משאבי Google Cloud
לדוגמה, במסוף Google Cloud , אפשר לערוך מכונה וירטואלית (VM) של Compute Engine, אבל נדרשות הרשאות שונות בהתאם להגדרות שמשנים. עם זאת, במסוף Google Cloud מוצגות גם ההגדרות הקיימות, ולשם כך נדרשת ההרשאה
compute.instances.get.לכן, כשעורכים מופע של מכונה וירטואלית במסוף Google Cloud , משתמשים בהרשאה
compute.instances.get.
כדי לקבוע את ההרשאות שבהן נעשה שימוש בישות המורשית, שירות ההמלצות של IAM משתמש בנתוני גישה מצטברים של IAM. כדי ללמוד איך לייצא את הנתונים שבהם שירות ההמלצות של IAM משתמש כדי לספק את התובנות האלה, ראו ייצוא נתונים של המלצות לתפקידים.
כמו כן, הכלי להמלצות ב-IAM משתמש בלמידת מכונה כדי לזהות הרשאות בתפקיד הנוכחי של חשבון המשתמש, שסביר להניח שהוא יצטרך בעתיד, גם אם הוא לא השתמש בהרשאות האלה לאחרונה. מידע נוסף זמין בקטע תובנות לגבי מדיניות באמצעות למידת מכונה בדף הזה.
תובנות לגבי מדיניות לא נוצרות לכל תפקידי ה-IAM שמוקצים לחשבונות משתמשים. בקטע זמינות בדף הזה מוסבר למה יכול להיות שלתפקיד מסוים אין תובנה לגבי מדיניות.
מידע נוסף על ניהול תובנות לגבי מדיניות זמין במאמרים ניהול תובנות לגבי מדיניות בפרויקטים, בתיקיות ובארגונים וניהול תובנות לגבי מדיניות בקטגוריות של Cloud Storage.
תובנות לגבי מדיניות באמצעות למידת מכונה
במקרים מסוימים, יכול להיות שחשבון משתמש יזדקק להרשאות מסוימות שכלולות בתפקידים הנוכחיים שלו, אבל שהוא לא השתמש בהן לאחרונה. כדי לזהות את ההרשאות האלה, שירות ההמלצות של IAM משתמש במודל של למידת מכונה (ML) כשהוא יוצר תובנות לגבי מדיניות.
מודל למידת המכונה הזה מאומן על כמה קבוצות של אותות:
דפוסי שכיחות משותפת נפוצים בהיסטוריה שנצפתה: העובדה שמשתמש השתמש בעבר בהרשאות א', ב' ו-ג' מרמזת שאולי יש קשר בין א', ב' ו-ג' ושצריך את כולן כדי לבצע משימה ב- Google Cloud. אם מודל ה-ML יזהה את הדפוס הזה מספיק פעמים, בפעם הבאה שמשתמש אחר ישתמש בהרשאות א' וב', המודל יציע שייתכן שהמשתמש יזדקק גם להרשאה ג'.
ידע בתחום כפי שהוא מוצפן בהגדרות התפקידים: ב-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.actAsiam.serviceAccounts.getAccessTokeniam.serviceAccounts.getOpenIdTokeniam.serviceAccounts.implicitDelegationiam.serviceAccounts.signBlobiam.serviceAccounts.signJwt
אם תפקיד עומד בקריטריונים האלה, שירות המלצות ב-IAM יוצר תובנה לגבי תנועה רוחבית עבור התפקיד. התובנה הזו מכילה מידע על יכולות ההתחזות של חשבון השירות, כולל אילו חשבונות שירות הוא יכול להתחזות אליהם והאם הוא השתמש בהרשאות התחזות ב-90 הימים האחרונים.
כלי ההמלצות של IAM לא משתמש בתובנות לגבי תנועה רוחבית כדי ליצור המלצות חדשות לגבי תפקידים. הסיבה לכך היא שאם חשבון שירות משתמש בהרשאות ההתחזות שלו, הכלי להמלצות של IAM לא יכול להציע בבטחה את הסרתן. עם זאת, אם המלצה לתפקיד מציעה להסיר את ההרשאות האלה כי לא נעשה בהן שימוש, הכלי להמלצות IAM יקשר את התובנה לגבי תנועה לרוחב להמלצה הזו. הקישור הזה עוזר לכם לתת עדיפות להמלצות לתפקידים בחשבונות שירות שיש להם הרשאות התחזות חזקות ולא בשימוש בפרויקטים שונים.
מידע נוסף על ניהול תובנות לגבי תנועה רוחבית זמין במאמר ניהול תובנות לגבי תנועה רוחבית.
זמינות
תובנות לגבי מדיניות, תובנות לגבי תנועה רוחבית והמלצות לגבי תפקידים לא נוצרות לכל התפקידים שמוענקים לחשבונות משתמשים. כדאי לקרוא את הקטעים הבאים כדי להבין את התפקידים שעבורם נוצרות תובנות לגבי מדיניות, תובנות לגבי תנועה לרוחב והמלצות.
זמינות התובנות לגבי המדיניות
כדי שהכלי IAM Recommender ייצור תובנה לגבי מדיניות של תפקיד, התנאים הבאים צריכים להתקיים:
מדיניות ההרשאה ב-IAM שמעניקה את התפקיד צריכה להיות מצורפת לאחד מהמשאבים הבאים:
- קטגוריה של Cloud Storage
- מערך נתונים ב-BigQuery
- פרויקט
- תיקייה
- ארגון
כלי ההמלצות של IAM יוצר תובנות לגבי מדיניות רק לתפקידים שניתנו במשאבים האלה.
בקישור התפקיד שמעניק את התפקיד לא יכול להיות תנאי. שירות ההמלצות של IAM לא יוצר תובנות לגבי מדיניות עבור קישורי תפקידים מותנים.
חשבון המשתמש שמקבל את התפקיד צריך להיות אחד מסוגי חשבונות המשתמשים הבאים:
- משתמש
- חשבון שירות
- קבוצה
allUsersallAuthenticatedUsers- ערכי נוחות של Cloud Storage
- חברות בקבוצות מיוחדות ב-BigQuery
אחד מהסוגים הבאים של זהויות מאוחדות:
- כל הזהויות במאגר זהויות של עומסי עבודה
- זהות יחידה במאגר זהויות של עומסי עבודה
- כל הזהויות במאגר זהויות של כוח עבודה
- זהות יחידה במאגר זהויות של כוח עבודה
כל הפודים של Google Kubernetes Engine שמשתמשים בחשבון שירות ספציפי של Kubernetes