בקרת גישה לתיקיות באמצעות IAM

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

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

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

סקירה כללית של תפקידי IAM לתיקיות

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

  • סוג הפעולות שרוצים להפעיל.
  • התפקידים שנדרשים לביצוע הפעולות האלה.
  • רמת המשאב שבה צריך להחיל את התפקידים האלה.
סוגי פעולות התפקידים הנדרשים רמת המשאב
ניהול תיקיות במשאב הארגון Folder Admin משאב הארגון
ניהול תיקייה וכל הפרויקטים והתיקיות שהיא מכילה Folder Admin תיקייה ספציפית
גישה לכללי מדיניות ההרשאות של תיקייה וניהול שלהם אדמין IAM של תיקייה תיקייה ספציפית
יצירת תיקיות חדשות Folder Creator משאב האב למיקום של התיקיות החדשות
העברת תיקיות ופרויקטים העברת תיקיות משאב האב של מיקום התיקייה המקורי ושל מיקום התיקייה החדש
העברת פרויקט לתיקייה חדשה עורך הפרויקט או Project Owner משאב האב של המיקום המקורי של הפרויקט ושל המיקום החדש של הפרויקט
מחיקת תיקייה עורך תיקייה או Folder Admin תיקייה ספציפית

שיטות מומלצות לשימוש בתפקידים ובהרשאות של IAM עם תיקיות

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

  • כדאי להשתמש בקבוצות ככל האפשר כדי לנהל חשבונות משתמשים.
  • מומלץ לצמצם את השימוש בתפקידים בסיסיים, כמו בעלים, עריכה וצפייה. במקום זאת, כדאי להשתמש בתפקידים מוגדרים מראש כדי להקפיד על העקרון של הרשאות מינימליות.
  • לניהול ברמת התיקייה, מקצים הרשאות ברמת התיקייה והפרויקטים מקבלים אותן בירושה באופן אוטומטי. לדוגמה, אפשר להקצות לקבוצת אדמינים של מחלקה את התפקיד Folder Admin בתיקייה. אדמינים של רשתות שצריכים הרשאות ברמת המחלקה יכולים לקבל את התפקיד אדמין רשת לתיקייה.
  • לפני שמעבירים משאב מתיקייה, חשוב לחשוב אילו הרשאות עשויות להשתנות. אחרת, אתם עלולים לגרום לשיבוש באפליקציות או בתהליכי עבודה קיימים שנדרשות להם הרשאות כאלה במשאב הזה.
  • חשוב לתכנן ולבדוק בקפידה את היררכיית המשאבים לפני שמעבירים פרויקטים של סביבת ייצור לתיקיות. אחת הדרכים לעשות את זה היא ליצור תיקיית בדיקה מתחת למשאב הארגון וליצור מראש אב טיפוס של ההיררכיה הרצויה.
  • אם מקצים תפקיד למשתמש ברמת התיקייה, המשתמש מקבל את התפקיד הזה גם לכל משאב שמתחת לתיקייה הזו. לדוגמה, אם נותנים למשתמש את התפקיד 'אדמין Compute'‏ (roles/compute.admin) בתיקייה, למשתמש תהיה שליטה מלאה בכל משאבי Compute Engine בכל פרויקט בתיקייה הזו.

הסבר על תפקידים והרשאות בתיקיות

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

תפקידי ברירת מחדל

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

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

תפקיד הרשאות

(roles/resourcemanager.folderAdmin)

ההרשאה הזו מאפשרת לבצע את כל הפעולות האפשריות בתיקיות.

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

  • תיקייה

essentialcontacts.*

  • essentialcontacts.contacts.create
  • essentialcontacts.contacts.delete
  • essentialcontacts.contacts.get
  • essentialcontacts.contacts.list
  • essentialcontacts.contacts.send
  • essentialcontacts.contacts.update

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.*

  • resourcemanager.folders.create
  • resourcemanager.folders.createPolicyBinding
  • resourcemanager.folders.delete
  • resourcemanager.folders.deletePolicyBinding
  • resourcemanager.folders.get
  • resourcemanager.folders.getIamPolicy
  • resourcemanager.folders.list
  • resourcemanager.folders.move
  • resourcemanager.folders.searchPolicyBindings
  • resourcemanager.folders.setIamPolicy
  • resourcemanager.folders.undelete
  • resourcemanager.folders.update
  • resourcemanager.folders.updatePolicyBinding

resourcemanager.hierarchyNodes.*

  • resourcemanager.hierarchyNodes.createTagBinding
  • resourcemanager.hierarchyNodes.deleteTagBinding
  • resourcemanager.hierarchyNodes.listEffectiveTags
  • resourcemanager.hierarchyNodes.listTagBindings

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

resourcemanager.projects.move

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/resourcemanager.folderIamAdmin)

ההרשאה מאפשרת לנהל מדיניות הרשאה בתיקיות.

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

  • תיקייה

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

resourcemanager.folders.createPolicyBinding

resourcemanager.folders.deletePolicyBinding

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.setIamPolicy

resourcemanager.folders.updatePolicyBinding

(roles/resourcemanager.folderCreator)

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

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

  • תיקייה

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.get

resourcemanager.folders.create

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderEditor)

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

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

  • תיקייה

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.delete

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.list

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.undelete

resourcemanager.folders.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderMover)

ההרשאה מאפשרת להעביר פרויקטים ותיקיות אל תיקיית הורה או ארגון הורה וממנו.

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

  • תיקייה

resourcemanager.folders.move

resourcemanager.projects.move

(roles/resourcemanager.folderViewer)

ההרשאה מאפשרת לקבל תיקייה ולרשום את התיקיות והפרויקטים שמתחת למשאב.

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

  • תיקייה

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.get

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

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

בנוסף לתפקידים המוגדרים מראש שמתוארים בנושא הזה, אפשר גם ליצור תפקידים בהתאמה אישית שהם אוספים של הרשאות שמותאמות לצרכים שלכם. כשיוצרים תפקיד בהתאמה אישית לשימוש ב-מנהל המשאבים, חשוב לשים לב לנקודות הבאות:
  • הרשאות כמו resourcemanager.projects.get/list, צריך תמיד לתת כזוג.
  • אם התפקיד בהתאמה אישית כולל את ההרשאות folders.list ו-folders.get, הוא צריך לכלול גם את ההרשאות projects.list ו-projects.get.
  • חשוב לדעת שההרשאה setIamPolicy למשאבי ארגון, תיקייה ופרויקט מאפשרת למשתמש להעניק את כל ההרשאות האחרות, ולכן צריך להקצות אותה בזהירות.

הענקת תפקידים כדי לאפשר עיון בתיקיות

הרשאות הגישה מאפשרות עיון בתיקיות. שני סוגי ההרשאות שצריך להעניק בדרך כלל הם resourcemanager.folders.list, שמאפשרת למשתמשים להציג רשימה של תיקיות מתחת למשאב, ו-resourcemanager.projects.list, שמאפשרת למשתמשים לעיין בפרויקטים מתחת למשאב ארגון או תיקייה. ההרשאות האלה מוגדרות כברירת מחדל לאדמין של הארגון. למשתמשים שלא הוקצה להם התפקיד אדמין ארגוני:

  • אפשר להעניק את ההרשאה הזו באמצעות התפקידים צפייה בתיקייה ועריכת תיקייה.resourcemanager.folders.list
  • אפשר להעניק את ההרשאה resourcemanager.projects.list באמצעות התפקידים צפייה או דפדפן.

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

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

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

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

הענקת תפקידים כדי לאפשר העברת תיקיות

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

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

כדי להעביר פרויקט לתיקייה, המשתמשים צריכים לקבל את התפקידים עורך פרויקטים או Project Owner בפרויקט, ואת התפקיד מעביר פרויקטים במשאבי ההורה של המקור ושל היעד.

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

הענקת תפקידים ספציפיים לתיקייה כדי לאפשר יצירת פרויקט

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

כדי להעניק הרשאות ספציפיות לתיקייה:

  1. מקצים למשתמש את התפקיד צפייה בארגון ברמת צומת הארגון (לדוגמה, domain.com).
  2. יוצרים תיקייה חדשה.
  3. מוסיפים את המשתמש ל-IAM ברמת התיקייה ומקצים לו את התפקידים Folder Viewer ו-Project Creator.

כך המשתמש יכול ליצור פרויקטים בתיקייה שלו בלי לקבל גישה לכל הפרויקטים במשאב הארגון.