כאן מוסבר על תפקידים – אוספים של הרשאות במערכת לניהול הזהויות והרשאות הגישה (IAM).
כל תפקיד מכיל קבוצה של הרשאות שמאפשרות לבצע פעולות ספציפיות במשאבים שלGoogle Cloud . כדי לתת הרשאות לחשבונות – כולל של משתמשים, קבוצות ושירותים – צריך לתת להם תפקידים.
לפני שמתחילים
- כדאי לקרוא ולהבין את המושגים הבסיסיים של IAM.
סוגי התפקידים
התפקידים ב-IAM מחולקים לשלושה סוגים:
- תפקידים בסיסיים, שמאפשרים גישה רחבה למשאבי Google Cloud .
- תפקידים מוגדרים מראש, שמאפשרים גישה פרטנית לשירותים ספציפיים ומנוהלים ב- Google Cloud.
- תפקידים בהתאמה אישית, שמאפשרים גישה פרטנית בהתאם לרשימת ההרשאות שנבחרו.
כדי לבדוק אם תפקיד בסיסי, מוגדר מראש או בהתאמה אישית כולל הרשאה מסוימת, תוכלו לבצע אחת מהפעולות הבאות:
להציג את התפקיד במסוף Google Cloud .
להריץ את הפקודה
gcloud iam roles describe.לקבל את התפקיד באמצעות ה-method המתאים ב-API בארכיטקטורת REST:
- לתפקידים מוגדרים מראש:
roles.get() - לתפקידים בהתאמה אישית ברמת הפרויקט:
projects.roles.get() - לתפקידים בהתאמה אישית ברמת הארגון:
organizations.roles.get()
- לתפקידים מוגדרים מראש:
לתפקידים בסיסיים או מוגדרים מראש בלבד: אפשר לחפש במאמרי העזרה בנושא הרשאות אם התפקיד כולל את ההרשאה.
לתפקידים מוגדרים מראש בלבד: אפשר לחפש בתיאור התפקיד שמוגדר מראש אילו הרשאות הוא כולל.
במאמר בחירת סוג התפקיד מוסבר מתי כדאי להשתמש בסוגי תפקידים ספציפיים.
חלקי התפקידים
כל תפקיד מכיל את החלקים הבאים:
- כותרת: שם של התפקיד שקריא לבני-אדם. שם התפקיד משמש לזיהוי שלו במסוף Google Cloud .
Name: שם התפקיד באחד מהפורמטים הבאים:
- תפקידים מוגדרים מראש:
roles/SERVICE.IDENTIFIER - תפקידים בהתאמה אישית ברמת הפרויקט:
projects/PROJECT_ID/roles/IDENTIFIER - תפקידים בהתאמה אישית ברמת הארגון:
organizations/ORG_ID/roles/IDENTIFIER
שם התפקיד משמש לזיהוי שלו במדיניות ההרשאות.
- תפקידים מוגדרים מראש:
ID: מזהה ייחודי של התפקיד. בתפקידים בסיסיים ומוגדרים מראש, המזהה זהה לשם התפקיד. בתפקידים בהתאמה אישית, המזהה הוא כל מה שמופיע אחרי
roles/בשם התפקיד.Description: תיאור של התפקיד שכתוב בצורה שקריאה לאנשים.
Stage: שלב התפקיד במחזור החיים של ההשקה, למשל
ALPHA, BETAאוGA. במאמר בדיקה ופריסה תוכלו לקרוא מידע נוסף על שלבי ההשקה.הרשאות: ההרשאות שכלולות בתפקיד. ההרשאות מאפשרות לחשבונות משתמשים לבצע פעולות ספציפיות במשאבי Google Cloud . כשנותנים תפקיד לחשבון משתמש, החשבון מקבל את כל ההרשאות שהתפקיד מכיל.
ההרשאות נראות כך:
SERVICE.RESOURCE.VERB
לדוגמה, ההרשאה
compute.instances.listמאפשרת למשתמש לרשום מכונות ב-Compute Engine שנמצאות בבעלותו, וההרשאהcompute.instances.stopמאפשרת למשתמש להפסיק מכונות וירטואליות.ברוב המקרים ההרשאות זהות לחלוטין ל-methods ב-REST, אבל לא תמיד. כלומר, לכל שירות ב- Google Cloud משויכת קבוצת הרשאות לכל method של REST שיש לו. כדי להפעיל method, צריך את ההרשאה המתאימה. לדוגמה, כדי להפעיל את
projects.topics.publishב-Pub/Sub API, צריך את ההרשאהpubsub.topics.publish.ETag: מזהה של גרסת התפקיד, שעוזר למנוע מצב שבו עדכונים שקורים במקביל יחליפו אחד את השני. לתפקידים בסיסיים ומוגדרים מראש תמיד יש את ה-ETag
AA==. ה-ETag של תפקידים בהתאמה אישית משתנה בכל פעם שמעדכנים את התפקיד.
תפקידים בסיסיים
תפקידים בסיסיים הם תפקידים עם הרשאות רבות שנותנים גישה רחבה למשאביGoogle Cloud .
התפקידים הבסיסיים ב-IAM הם אדמין (roles/admin), כתיבה (roles/writer) וקריאה (roles/reader). ב-IAM יש גם שלושה תפקידים בסיסיים מדור קודם שהיו קיימים לפני שהיה את IAM: בעלים (roles/owner), עריכה (roles/editor) וצפייה (roles/viewer). מידע נוסף על התפקידים האלה מופיע בקטע תפקידים בסיסיים מדור קודם שבהמשך הדף.
התפקידים הבסיסיים כוללים אלפי הרשאות בכל השירותים של Google Cloud . בסביבות ייצור לא נותנים תפקידים בסיסיים, אלא אם אין ברירה. צריך לתת את התפקידים המוגדרים מראש המוגבלים ביותר, או תפקידים בהתאמה אישית שעונים לצרכים שלכם.
בסביבות Staging או בדיקה, עדיף להשתמש בתפקידים "אדמין", "כתיבה" ו"קריאה" במקום בתפקידים הבסיסיים מהדור הקודם. למרות ששתי קבוצות התפקידים מתוחזקות באופן פעיל, התפקידים "אדמין", "כותב" ו"קורא" תומכים בתכונות נוספות, כמו שימוש בתנאי IAM.
בטבלה הבאה מופיע סיכום של ההרשאות שהתפקידים "אדמין", "כתיבה" ו"קריאה" נותנים לחשבונות המשתמשים בכל שירותי Google Cloud :
| תפקיד בסיסי | הרשאות |
|---|---|
קורא (roles/reader) |
הרשאות לקריאה בלבד בלי לבצע שינויים, כמו הצגת המשאבים או הנתונים הקיימים (בלי לשנות אותם). בפרטי התפקיד "קריאה" במסוף Google Cloud תוכלו לראות את כל ההרשאות שהתפקיד מכיל: |
כתיבה (roles/writer) |
כל ההרשאות של התפקיד "קריאה", וגם הרשאות מסוימות לביצוע שינויים, כמו שינוי המשאבים הקיימים. למשל, משתמשים עם התפקיד "כתיבה" יכולים ליצור משאבים ולמחוק אותם ברוב שירותי Google Cloud . אבל אין להם הרשאות לכל הפעולות שאפשר לבצע בכל השירותים. בחלק סוגי התפקידים במאמר הזה מוסבר איך לבדוק אם לתפקיד יש את ההרשאות הנדרשות. בפרטי התפקיד "כתיבה" במסוף Google Cloud תוכלו לראות את כל ההרשאות שהתפקיד מכיל: |
אדמין (roles/admin) |
כל ההרשאות של התפקיד "כתיבה", וגם הרשאות לפעולות כמו:
תפקיד האדמין לא כולל את כל ההרשאות לכל המשאבים של Google Cloud . לדוגמה, הוא לא מכיל הרשאות לשינוי פרטי התשלום בחיוב ב-Cloud או ליצירת כללי מדיניות דחייה ב-IAM. בפרטי התפקיד "אדמין" במסוף Google Cloud תוכלו לראות את כל ההרשאות שהתפקיד מכיל: |
אפשר להשתמש במסוף Google Cloud , ב-API או ב-CLI של gcloud כדי להקצות את התפקידים "קורא", "כותב" או "אדמין". איך נותנים, משנים ומבטלים הרשאות גישה?
אתם יכולים גם ליצור הרשאות לתפקידים האלה באמצעות Privileged Access Manager.
תפקידים בסיסיים מדור קודם
תפקידים בסיסיים מדור קודם היו קיימים לפני שהיה את IAM. במקור הם נקראו תפקידים פרימיטיביים. בניגוד לתפקידים בסיסיים אחרים, אי אפשר להוסיף תנאים לקישורי תפקידים של תפקידים בסיסיים מדור קודם.
התפקידים הבסיסיים מדור קודם הם בעלים (roles/owner), עריכה (roles/editor) וצפייה (roles/viewer).
התפקידים הבסיסיים הקודמים עדיין מתוחזקים באופן פעיל וזמינים לשימוש. הם משמשים גם בתהליכי עבודה אוטומטיים מסוימים. לדוגמה, כשמשתמש יוצר פרויקט, הוא מקבל באופן אוטומטי את התפקיד "בעלים" בפרויקט הזה. עם זאת, אם אתם צריכים להקצות תפקיד בסיסי, מומלץ להקצות את התפקיד Admin, Writer או Reader במקום תפקיד בסיסי מדור קודם. הסיבה לכך היא שהתפקידים החדשים יותר תומכים בתכונות נוספות, כמו שימוש בתנאי IAM.
כשנותנים תפקיד בסיסי מדור קודם לחשבון משתמש, החשבון מקבל את כל ההרשאות שהתפקיד מכיל. החשבון גם מקבל את ההרשאות ששירותים מספקים לחשבונות משתמשים עם תפקידים בסיסיים מדור קודם, למשל הרשאות שמתקבלות דרך ערכי הנוחות של Cloud Storage או חברות בקבוצה מיוחדת של BigQuery.
בטבלה הבאה מופיע סיכום של ההרשאות שהתפקידים הבסיסיים הקודמים מכילים, שהחשבונות הראשיים יקבלו בכל שירותי Google Cloud :
| תפקיד בסיסי מדור קודם | הרשאות |
|---|---|
צפייה (roles/viewer) |
הרשאות לקריאה בלבד בלי לבצע שינויים, כמו הצגת המשאבים או הנתונים הקיימים (בלי לשנות אותם). בפרטי התפקיד "צפייה" במסוף Google Cloud תוכלו לראות את כל ההרשאות שהתפקיד מכיל: |
עריכה (roles/editor) |
כל ההרשאות של התפקיד 'צפייה', וגם הרשאות מסוימות לביצוע שינויים, כמו שינוי המשאבים הקיימים. למשל, משתמשים עם התפקיד "עריכה" יכולים ליצור משאבים ולמחוק אותם ברוב שירותי Google Cloud , אבל אין להם הרשאות לכל הפעולות שאפשר לבצע בכל השירותים. בחלק סוגי התפקידים במאמר הזה מוסבר איך לבדוק אם לתפקיד יש את ההרשאות הנדרשות. בפרטי התפקיד "עריכה" במסוף Google Cloud תוכלו לראות את כל ההרשאות שהתפקיד מכיל: |
בעלים (roles/owner) |
כל ההרשאות של התפקיד "עריכה", וגם הרשאות לבצע פעולות כמו:
תפקיד הבעלים לא כולל את כל ההרשאות לכל המשאבים של Google Cloud . לדוגמה, הוא לא מכיל הרשאות לשינוי פרטי התשלום בחיוב ב-Cloud או ליצירת כללי מדיניות דחייה ב-IAM. בפרטי התפקיד "בעלים" במסוף Google Cloud תוכלו לראות את כל ההרשאות שהתפקיד מכיל: |
באופן כללי, אפשר להקצות תפקידים בסיסיים מדור קודם באמצעות מסוף Google Cloud , ה-API או ה-CLI של gcloud. עם זאת, צריך להשתמש במסוףGoogle Cloud כדי להקצות את התפקיד "בעלים" במצבים הבאים:
- המשתמש שאתם מקצים לו את התפקיד "בעלים" לא שייך לארגון שלכם.
- הפרויקט שבו אתם מקצים את התפקיד "בעלים" לא שייך לאף ארגון.
בנוסף, אתם יכולים להקצות את התפקיד "בעלים" רק לסוגים הבאים של חשבונות משתמשים:
- חשבונות Google
- חשבונות שירות בארגון
- קבוצות Google בארגון שלכם
איך נותנים, משנים ומבטלים הרשאות גישה?
תפקידים מוגדרים מראש
בנוסף לתפקידים הבסיסיים, ב-IAM יש תפקידים מוגדרים מראש שנותנים גישה פרטנית יותר למשאבים ספציפיים ב- Google Cloud. Google היא זו שיוצרת את התפקידים האלה ומעדכנת אותם. Google מעדכנת אוטומטית את ההרשאות שלהם לפי הצורך, למשל כשנוספים ל-Google Cloud תכונות או שירותים חדשים.
אפשר לתת לאותו המשתמש מספר תפקידים בכל רמה בהיררכיית המשאבים. לדוגמה, יכולים להיות לו התפקידים Compute Network Admin ומציג היומנים בפרויקט, וגם את התפקיד Pub/Sub Publisher בנושא ב-Pub/Sub באותו פרויקט. במאמר הצגת המטא-נתונים של התפקיד תוכלו לראות את רשימת ההרשאות שכל תפקיד מכיל.
לא בטוחים איזה תפקיד מוגדר מראש לתת? תוכלו להיעזר במאמר בחירת תפקידים מוגדרים מראש.
במאמרי העזרה בנושא תפקידים תוכלו לראות את רשימת התפקידים המוגדרים מראש.
תפקידים בהתאמה אישית
אתם יכולים ליצור ב-IAM גם תפקידים בהתאמה אישית, כדי לתת לחשבונות של המשתמשים בארגון רק את ההרשאות שהם צריכים, וכך לאכוף את העקרון של הרשאות מינימלית.
אתם אלה שמגדירים את התפקידים בהתאמה אישית, ותוכלו להשתמש בהם כדי לתת את ההרשאות הנדרשות בהתאם לצרכים האישיים שלכם. כשיוצרים תפקיד בהתאמה אישית, צריך לבחור באיזה ארגון או פרויקט ליצור אותו. אחרי שתיצרו את התפקיד בהתאמה אישית, תוכלו לתת אותו ברמת הארגון, הפרויקט או כל משאב באותו ארגון או פרויקט. אפשר ליצור רק 300 לכל ארגון ו-300 לכל פרויקט.
תוכלו להקצות תפקיד בהתאמה אישית רק בתוך הפרויקט או הארגון שבו יצרתם אותו. לא ניתן להקצות תפקידים בהתאמה אישית בפרויקטים או בארגונים אחרים, או על משאבים בתוך פרויקטים או ארגונים אחרים.
כדי ליצור תפקיד בהתאמה אישית, משלבים בין ההרשאות הנתמכות ב-IAM. במאמר יצירה וניהול של תפקידים בהתאמה אישית מוסבר איך יוצרים תפקיד בהתאמה אישית.
ההרשאות הנתמכות
אתם יכולים לתת לתפקידים בהתאמה אישית הרבה הרשאות ב-IAM, אבל לא את כולן. על סמך רמת התמיכה של ההרשאה תוכלו לדעת אם אפשר לתת אותה בתפקידים בהתאמה אישית.
| רמת תמיכה | תיאור |
|---|---|
SUPPORTED |
אפשר לתת את ההרשאה בתפקידים בהתאמה אישית. |
TESTING |
Google בודקת אם אפשר לתת את ההרשאה בתפקידים בהתאמה אישית. תוכלו לתת אותה בתפקידים בהתאמה אישית, אבל יכול להיות שתהיה התנהגות לא צפויה. לא מומלץ לתת את ההרשאה הזו בסביבות ייצור. |
NOT_SUPPORTED |
אי אפשר לתת את ההרשאה בתפקידים בהתאמה אישית. |
ברשימת רמות התמיכה להרשאות בתפקידים בהתאמה אישית תוכלו לבדוק אילו הרשאות אפשר להוסיף לתפקידים בהתאמה אישית.
לכל תפקיד בהתאמה אישית ברמת הארגון תוכלו לתת את כל ההרשאות הנתמכות ב-IAM. לכל תפקיד בהתאמה אישית ברמת הפרויקט תוכלו לתת את ההרשאות הנתמכות, חוץ מהרשאות שאפשר לתת רק ברמת הארגון או התיקייה.
הסיבה לכך שבתפקידים ברמת הפרויקט לא ניתן לכלול הרשאות ספציפיות לתיקייה או ספציפיות לארגון, כי הן לא עושות כלום כשמעניקים אותן ברמת הפרויקט. הסיבה לכך היא שהמשאבים ב- Google Cloud מסודרים בהיררכיה. ההרשאות עוברות בירושה בהיררכיית המשאבים, כלומר הן חלות על המשאב ועל כל הצאצאים שלו. הארגון והתיקייה תמיד נמצאים מעל הפרויקט בGoogle Cloud , כך שמצד אחד כל ההרשאות שיש ברמת הארגון והתיקייה חלות גם ברמת הפרויקט, ומצד שני אי אפשר להשתמש בהרשאות שניתנו ברמת הפרויקט כדי לגשת לתיקיות או לארגונים. לכן, אי אפשר להשתמש בהרשאות שניתנו ברמת הפרויקט כדי לגשת לתיקיות או לארגונים. לכן, הרשאות לתיקיות ספציפיות או לארגונים ספציפיים, למשל resourcemanager.folders.list, לא חלות על תפקידים בהתאמה אישית ברמת הפרויקט.
תלות בין הרשאות
חלק מההרשאות יעילות רק כשהן ניתנות ביחד. לדוגמה, כדי לעדכן את מדיניות ההרשאות (לשנות אותה ולכתוב בה), צריך גם הרשאה לקרוא אותה. לכן, כדי לעדכן את מדיניות ההרשאות כמעט תמיד צריך את ההרשאה getIamPolicy לאותו שירות ולסוג המשאב וגם את ההרשאה setIamPolicy.
כדי ליצור נכון תפקידים בהתאמה אישית, תוכלו להתבסס על תפקידים מוגדרים מראש עם הרשאות דומות. התפקידים המוגדרים מראש מתוכננים לביצוע מטלות ספציפיות, והם כוללים את כל ההרשאות הנדרשות. בעזרת התפקידים האלה תוכלו לראות אילו הרשאות ניתנות בדרך כלל ביחד. בעזרת התפקידים האלה תוכלו לתכנן נכון יותר את התפקידים בהתאמה אישית.
במאמר יצירה וניהול של תפקידים בהתאמה אישית מוסבר איך יוצרים תפקיד בהתאמה אישית בהתאם לתפקיד מוגדר מראש.
מחזור החיים של תפקידים בהתאמה אישית
בחלקים הבאים מפורטים השיקולים העיקריים בכל שלב במחזור החיים של תפקיד בהתאמה אישית. תוכלו להיעזר במידע הזה כשאתם יוצרים ומנהלים תפקידים בהתאמה אישית.
יצירה
כשיוצרים תפקיד בהתאמה אישית, מומלץ לבחור מזהה, שם ותיאור שיעזרו לכם לזהות אותו בקלות:
Role ID הוא מזהה ייחודי של התפקיד. הוא יכול להכיל תווים אלפאנומריים, אותיות קטנות וגדולות, קווים תחתונים ונקודות (אורך מקסימלי: 64 בייטים). אי אפשר להשתמש באותו מזהה למספר תפקידים בארגון או בפרויקט.
אי אפשר לשנות מזהי תפקידים, לכן חשוב לבחור אותם בקפידה. אפשר למחוק תפקידים בהתאמה אישית, אבל לא ליצור תפקיד חדש בהתאמה אישית עם אותו מזהה באותו ארגון או באותו פרויקט, עד שתהליך המחיקה יסתיים (תוך 44 ימים). איך מוחקים תפקידים בהתאמה אישית?
Role title: השם שמופיע ברשימת התפקידים במסוףGoogle Cloud . השם לא חייב להיות ייחודי, אבל מומלץ להשתמש בשמות ייחודיים ותיאוריים כדי שיהיה לכם קל להבדיל בין התפקידים השונים. כמו כן, כדאי לציין בשם התפקיד אם הוא נוצר ברמת הארגון או הפרויקט.
שמות התפקידים יכולים להכיל תווים אלפאנומריים, אותיות גדולות וקטנות וסמלים (אורך מקסימלי: 100 בייטים). אפשר לשנות את שמות התפקידים בכל שלב.
Role description: שדה אופציונלי שבו אפשר לספק מידע נוסף על התפקיד. לדוגמה, תוכלו לתאר את מטרת התפקיד, התאריך שבו הוא נוצר או שונה, ואת התפקידים המוגדרים מראש שעליהם הוא מבוסס. תיאורי התפקידים יכולים להכיל תווים אלפאנומריים, אותיות גדולות וקטנות וסמלים (אורך מקסימלי: 300 בייטים).
חשוב לזכור גם את התלות בין הרשאות כשיוצרים תפקידים בהתאמה אישית.
במאמר יצירה וניהול של תפקידים בהתאמה אישית מוסבר איך יוצרים תפקיד בהתאמה אישית בהתאם לתפקיד מוגדר מראש.
השקה
תפקידים בהתאמה אישית כוללים שלב השקה כחלק מהמטא-נתונים של התפקיד. שלבי ההשקה הנפוצים ביותר לתפקידים בהתאמה אישית הם ALPHA, BETA ו-GA. שלבי ההשקה השונים עוזרים לבדוק אם כל תפקיד מוכן לשימוש רחב. שלב השקה נפוץ נוסף הוא DISABLED. שלב ההשקה הזה מאפשר להשבית תפקיד בהתאמה אישית.
מומלץ להשתמש בשלבי ההשקה כדי למסור את המידע הבא על התפקיד:
-
EAPאוALPHA: התפקיד עדיין בתהליך פיתוח או בדיקה, או כולל הרשאות לשירותים או לתכונות של Google Cloud שעדיין לא זמינים לכולם. התפקיד לא מוכן לשימוש רחב. -
BETA: התפקיד נבדק בצורה מוגבלת או כולל הרשאות לשירותים או לתכונות ב- Google Cloud שלא זמינים לכלל המשתמשים. -
GA: התפקיד נבדק בצורה נרחבת, וכל ההרשאות שלו נועדו לשירותים או לתכונות שלGoogle Cloud שזמינים לכלל המשתמשים. -
DEPRECATED: התפקיד כבר לא בשימוש.
במאמר עריכת תפקידים בהתאמה אישית מוסבר איך משנים את שלבי ההשקה.
ניהול
הניהול השוטף של התפקידים בהתאמה אישית הוא באחריותכם, כולל עדכון התפקידים בהתאם לשינויים בתחומי האחריות של המשתמשים או כדי לאפשר למשתמשים לקבל גישה לתכונות חדשות שדורשות הרשאות נוספות.
אם אתם מבססים את התפקיד שלכם על תפקידים מוגדרים מראש, מומלץ לבדוק באופן קבוע את התפקידים המוגדרים מראש כדי לראות את השינויים בהרשאות. מעקב אחרי השינויים האלה יכול לעזור לכם להחליט מתי ואיך לעדכן את התפקיד בהתאמה אישית. לדוגמה, יכול להיות שתראו שתפקיד מוגדר מראש עודכן וקיבל הרשאות לשימוש בתכונה חדשה בגרסת טרום-השקה (Preview), ובהתאם תחליטו להוסיף את ההרשאות האלה גם לתפקיד בהתאמה אישית.
כדי שיהיה לכם קל יותר לדעת אחרי אילו תפקידים מוגדרים מראש לעקוב, מומלץ לציין בשדה התיאור של התפקיד בהתאמה אישית על אילו תפקידים הוא מבוסס. הדבר הזה נעשה אוטומטית כשמשתמשים במסוף Google Cloud ליצירת תפקיד בהתאמה אישית בהתאם לתפקידים מוגדרים מראש ב- Google Cloud .
במאמר עריכת תפקידים בהתאמה אישית מוסבר איך מעדכנים את ההרשאות והתיאור.
תוכלו להיעזר גם ביומן השינויים בהרשאות כדי לראות אילו תפקידים והרשאות השתנו לאחרונה.
השבתה
אם אתם לא רוצים יותר שחשבונות משתמשים בארגון יוכלו להשתמש בתפקיד בהתאמה אישית, תוכלו לשנות את שלב ההשקה שלו ל-DISABLED כדי להשבית אותו.
תפקידים מושבתים עדיין מופיעים במדיניות ב-IAM ואפשר לתת אותם לחשבונות משתמשים, אבל אין להם השפעה.
איך משביתים תפקידים בהתאמה אישית?