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

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

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

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

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

  • סוג הפעולות שרוצים להפעיל.
  • התפקידים שנדרשים כדי לבצע את הפעולות האלה.
  • רמת המשאב שבה צריך להחיל את התפקידים האלה.
סוגי הפעולות התפקידים הנדרשים רמת המשאב
ניהול תיקיות במשאב הארגון Folder Admin משאב הארגון
ניהול תיקייה וכל הפרויקטים והתיקיות שהיא מכילה Folder Admin תיקייה ספציפית
גישה לכללי מדיניות ההרשאה של תיקייה וניהול שלהם אדמין IAM של תיקיות תיקייה ספציפית
יצירת תיקיות חדשות יוצר התיקייה משאב ההורה של המיקום של התיקיות החדשות
העברת תיקיות ופרויקטים העברת תיקיות משאב ההורה של מיקום התיקייה המקורי ושל מיקום התיקייה החדש
העברת פרויקט לתיקייה חדשה עורך הפרויקט או 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, שמאפשרת למשתמשים לעיין בפרויקטים במשאב או בתיקייה של הארגון. התפקיד Organization Administrator מאותחל עם שתי ההרשאות האלה. למשתמשים שלא הוקצה להם התפקיד Organization Administrator:

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. מקצים למשתמש את התפקיד צפייה בארגון ברמת משאב הארגון (לדוגמה, domain.com). במסוף Google Cloud , בוחרים את משאב הארגון מהבורר של הפרויקטים והארגונים בחלק העליון של הדף, או לוחצים על הדומיין בעמודה Inheritance בדף IAM.
  2. יוצרים תיקייה חדשה.
  3. מוסיפים את המשתמש ל-IAM ברמת התיקייה ומקצים לו את התפקידים צפייה בתיקיות ויצירת פרויקטים.

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