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

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

למשימות פשוטות, לרוב יהיה קל למצוא תפקיד מתאים מוגדר מראש. לדוגמה, אם חשבון משתמש צריך להציג אובייקטים בקטגוריה של Cloud Storage, אז התפקיד 'צפייה באובייקט אחסון' (roles/storage.objectViewer) אמור להתאים לו.

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

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

  1. זיהוי ההרשאות הנחוצות.
  2. מציאת תפקידים שמכילים את ההרשאות.
  3. בחירת התפקידים המתאימים ביותר.
  4. החלטה על מיקום הקצאת התפקידים.
  5. הקצאת התפקידים לחשבון משתמש.

זיהוי ההרשאות הנחוצות

כדי לזהות את ההרשאות הנחוצות לחשבון משתמש, כדאי להתחיל ברישום המשימות שהוא צריך לבצע ובשירותים של Google Cloud שבהם החשבון צריך להשתמש בשביל המשימות האלה. לדוגמה, יכול להיות שחשבון משתמש יצטרךCompute Engine כדי ליצור מכונות וירטואליות.

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

  • מעיינים במסמכי העזרה לשירותים של Google Cloud.

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

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

  • מאתרים את השיטות של API ל-REST או ל-RPC שישמשו להשלמת המשימות, ומעיניים במסמכי העזרה של ה-API כדי לגלות את ההרשאות הנחוצות ל-IAM.

    לשירותים מסוימים, מסמכי העזרה של API ל-REST ול-RPC מפרטים את ההרשאות הנחוצות לכל שיטה. לדוגמה, אפשר לעיין במסמכי העזרה של Compute Engine בשביל השיטה instances.get.

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

    ברוב המקרים, השם של כל הרשאה גם מתאר מה ההרשאה מאפשרת לכם לעשות איתה. לדוגמה, ההרשאה ליצירת מכונה וירטואלית של Compute Engine נקראת compute.instances.create.

    כדי לעזור בהבנת כל שם הרשאה, כדאי לזכור ששמות ההרשאות מופיעים בפורמט SERVICE.RESOURCE_TYPE.ACTION.

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

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

לדוגמה, סוגי ההרשאות הבאים חזקים במיוחד:

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

לעומת זאת, סוגי ההרשאות הבאים פחות חזקים:

  • הרשאות לרישום משאבים
  • הרשאות גישה לנתונים שאינם רגישים
  • הרשאות לעדכון הגדרות שיש בהן סיכון מוגבל, כמו הפלטפורמה המינימלית של המעבד (CPU) למכונות הווירטואליות של Compute Engine

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

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

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

בחירת התפקידים המתאימים ביותר

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

כדי להתחיל, אפשר להסיר את סוגי התפקידים הבאים:

  • לסביבות ייצור: תפקידים בסיסיים, כולל 'בעלים' (roles/owner), 'עריכה' (roles/editor) ו'צפייה' (roles/viewer).

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

  • תפקידים של סוכני שירות, שבדרך כלל כוללים שמות עם הסיומת 'סוכן שירות' ושמות שמסתיימים ב-serviceAgent.

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

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

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

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

כשאתם מקצים תפקיד, אתם תמיד מקצים אותו במשאב ספציפי של Google Cloud, ששייך להיררכיית משאבים. משאבים ברמה נמוכה יותר, כמו מכונות וירטואליות של Compute Engine, יורשים את התפקידים שהוקצו במשאבים ברמה גבוהה יותר, כמו פרויקטים, תיקיות וארגונים.

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

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

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

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

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

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

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

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

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

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