מהו RBAC?
בקרת גישה מבוססת תפקידים (RBAC) היא מערכת למתן הרשאות הבנויה על עקרון פשוט שמטרתו הקצאת ההרשאה המינימלית ביותר לכל משתמש לצורך ביצוע תפקידו. בAzure רמת ההרשאה יכולה להיות מדוייקת מאוד לכל צורך של משתמש ארגוני. מייקרוסופט מציעה עשרות רבות של סוגי הרשאות שונות, ואף ניתן ליצור רמת הרשאה מותאמת אישית.
כשמדובר בזהות וגישה, רוב הארגונים שוקלים באמצעות ענן ציבורי מודאגים משני דברים עיקריים:
- שלילת גישה למשאבים ארגוניים כאשר עובד/ת עוזבים את הארגון
- מציאת האיזון הנכון בין מתן הרשאות למשתמש יחיד לצורך ביצוע תפקידו, לבין ניהול מרכזי ובקרה על פעולות המשתמשים. לדוגמא: מתן גישה למחלקת הכספים לבקר את פירוט צריכת הענן של שרתים ווירטואלים בענן, לעומת מתן הרשאה לאיש IT ליצור שרתים ווירטואליים חדשים.
Azure Active Directory ובקרת גישה מבוססת תפקיד (RBAC) עובדים יחד על מנת להשיג את מטרות אלו.
מנויי Azure
מייקרוסופט בנתה היררכיה של הרשאות בסדר ספציפי על מנת להקל ולשמור על מבנה נוח. כל מנוי Azure שייך לAzure AD Directory יחיד בלבד. משתמשים, קבוצות ויישומים בDirectory זה יכולים לנהל משאבים במנוי Azure.
להלן כמה תרחישים אתה יכול ליישם עם RBAC:
- אפשר למשתמש אחד לנהל מכונות וירטואליות במנוי ולמשתמש אחר לנהל רשתות וירטואליות.
- אפשר לקבוצת משתמשים כדי לנהל SQL DBs
- אפשר ליישום לגשת לכל המשאבים בקבוצת משאבים (Resource Group)
- אפשר למשתמש/קבוצה לצפות בנתוני הצריכה והחיובים בAzure Cost Management
היכן מגדירים RBAC?
ברחבי פורטל Azure תיתקלו באופציה בשם “Access control (IAM)”. באזור זה תוכלו לראות למי יש גישה לאותו המשאב בAzure. כמו כן מאותו החלון, ניתן להעניק או להסיר הרשאות למשתמשים/קבוצות.
בדוגמא הבאה ניתן לראות איך למשתמש “Dean O.” ניתנה גישת “Owner” על קבוצת המשאבים “WVD”:
איך RBAC עובד?
באמצעות RBAC ניתן לשלוט בגישה למשאבים ע”י הקצאת תפקידים (Role assignment), אשר קובעים כיצד נאכפות הראשות.כדי להקצות תפקיד, יש לשים לב לשלושה אלמנטים: אובייקט לקבלת ההרשאה (Security principal) , הגדרת תפקיד (Role definition) והיקף (Scope). אפשר להתחייס לשלושה אלמנטים אלה כמו “מי”, “מה”, “איפה”.
- אובייקט לקבלת ההרשאה (Security principal) – מי:
מנהל אבטחה הוא רק שם מפואר עבור משתמש, קבוצה או יישום שברצונך להעניק גישה אליו.
- הגדרת תפקיד (Role definition) – מה ניתן לעשות:
הגדרת תפקיד היא אוסף של הרשאות. הגדרת תפקידים מפרטת את ההרשאות שניתן לבצע, כגון קריאה, כתיבה ומחיקה. תפקידים יכולים להיות ברמה גבוהה, כמו בעלים (Owner), או ספציפי, כמו צופה בנתוני חיוב וצריכה.
Azure כולל כמה תפקידים מובנים שאתה יכול להשתמש. הבא רשימות ארבעה תפקידים מובנים בסיסיים:
- Owner – יש גישה מלאה לכל המשאבים, כולל הזכות להעניק גישה לאחרים.
- Contributor – יכול ליצור ולנהל את כל סוגי משאבי Azure, אך לא יכול להעניק גישה לאחרים.
- Reader – יכול לצפות במשאבי Azure קיימים.
- User Access Administrator – מאפשר לך לנהל גישה למשתמש למשאבי Azure.
במידה וההתפקידים המובנים אינם עונים לצרכים הספציפיים של הארגון שלך, ניתן ליצור תפקידים מותאמים אישית.
- היקף (Scope) – איפה:
ב- Azure, ניתן להעניק הרשאות בהיקפים שונים: קבוצת ניהול, מנוי, קבוצת משאבים או משאב בודד. ההרשאות בנויות על עיקרון של “הורה-ילד”. כאשר מעניקים הרשאה בהיקף “הורה”, הרשאות אלה יועברו בירושה ל”ילד”. לדוגמה, אם ניתן הרשאת Owner לקבוצת “IT” בהיקף המנוי (Subscription), תפקיד יוענק בירושה לכל קבוצות המשאבים והמשאבים במנוי, לכל חברי קבוצת “IT”.
הקצאת תפקיד
לאחר שקבענו מי רשאי לבצע מה והיכן, ניתן לשלב החלטות אלה כדי להעניק גישה מבוססת תפקיד. כדי להעניק גישה, יש להקצות תפקידים (Role assignment). כדי לבטל גישה, יש להסיר את תפקיד מהמשתמש.
הדוגמה הבאה מראה כיצד קבוצת השיווק הוקצה את תפקיד ה”תורם” (Contributor) בהיקף קבוצת המשאבים בשם “Marketing”:
RBAC הינו מודל הבנוי על עקרון מתיר
בשימוש במודל RBAC אנו מחליטים איזה פעולות (כגון קריאה, כתיבה, עריכה, מחיקה) מותרות. לדוגמא אם למשתמש יש שתי הרשאות שונות מתוקף תפקידים שונים על אותו המשאב, למשתמש יהיה את כל ההרשאות ששני התפקדיים הקנו לו. לדוגמא: למשתמש יש גישת “קורא” (Reader) על קבוצת משאבים בשם “CMS”. ולאותו המשתמש יש גם הגדרת תפקיד “תורם” (Contributor) על אותה קבוצת המשאבים, המשתמש רשאי לבצע פעולות גם כReader וגם כ Contributor.
סיכום
RBAC מהווה עקרון בסיסי ויש לתת לו חשיבות רבה ותשומת לב. לעיתים תכופות ארגונים עשויים להעניק הרשאות יתר במקרה ה”טוב” ובמקרה רע אף יותר להעניק הרשאות אדמין למשתמשים שלא זקוקים לכך. כמו כן, לעיתים עובדים בארגון משנים תפקיד, ועלולים לגרור עמם הרשאות מהעבר. ככלל, מומלץ לבצע סקירה מקיפה ומדוייקת של כלל ההרשאות הניתנות על המשאבים השונים של הארגון באופן תקופתי קבוע. ניתן ללמוד עוד על סוגי התפקידים השונים וRBAC בלינק הבא: https://docs.microsoft.com/en-us/azure/role-based-access-control/overview