ניהול תפקידים והרשאות ב-Azure AD עם PowerShell

ניהול תפקידים והרשאות של Azure AD באמצעות PowerShell. האם את/ה זקוק/ה לעזרה בניהול ואוטומציה של תפקידים והרשאות של Azure AD בעזרת Windows PowerShell? מאמר זה מסביר את התרחישים הנפוצים לאוטומציה של בקרת גישה מבוססת תפקיד ב-Azure (RBAC) בעזרת PowerShell.

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

קיימת גם סעיף המסביר את הדרישות המקדימות לניהול תפקידים והרשאות של Azure AD באמצעות Windows PowerShell.

הסעיפים הבאים מוקדשים להסבר של השלבים להקצאת תפקידי Azure AD בעזרת PowerShell. 

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

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

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

כמו כן, RBAC שולט ברמת הגישה למשאבים ב-Azure. 

בלב ה-RBAC נמצאות משמעויות תפקיד. יש מאות תפקידים בנויים מראש ב-Azure עם הרשאות מוגדרות מראש שמוקצות למשתמשים, קבוצות או פרימספים שירות

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

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

מאמר זה מכסה את השלבים להקצאת תפקידים קיימים וגם ליצירת תפקידים מותאמים אישית ב-Azure AD והקצאתם. 

אלמנטים של משמעות תפקיד ב-Azure

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

מצד שני, הגדרת התפקיד היא התפקיד הבנוי מראש או המותאם אישית ב-Azure AD שמוקצה בעוד היקף הוא רמת ההקצאה של התפקיד. יש ארבעה תחומים שבהם מוקצים תפקידים ב-Azure.

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

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

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

לבסוף, תפקידים מוקצים בטווח קבוצת ניהול שדורשת את שם קבוצת הניהול. כדי לקבל את שם קבוצת הניהול, רוץ את הפקודה Get-AzManagementGroup.

הבנת הרכיבים הללו חשובה לניהול תפקידי Azure AD והרשאות עם PowerShell. בחלקו הנותר של המאמר, אנו בוחנים כיצד הגורם האבטחתי, הגדרת התפקיד והטווח משמשים להקצאה וניהול תפקידים ב-Azure AD באמצעות PowerShell.

דרישות מוקדמות לניהול תפקידי Azure AD והרשאות עם PowerShell

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

  1. יש להקצות למשתמש את התפקידים עם ההרשאות Microsoft.Authorization/roleAssignments/write. תפקידים יחידים עם הרשאה זו הם User Access Administrator, Owner או Global Administrator.
  2. בנוסף, נדרש גישה ל- Azure Cloud Shell או Azure PowerShell.
  3. חשבון המשתמש שמפעיל את פקודות הפאוורשל חייב לקבל את הרשאת ה- Microsoft Graph Directory.Read.All.
  4. לבצע חלק מהמשימות במאמר זה, נדרש חשבון שלך עם רישיון Azure AD Premium P1 מינימלי.

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

שלבים להקצאת תפקידים מובנים של Azure AD באמצעות PowerShell

I’ll be running the PowerShell commands in this and subsequent sections from Azure Cloud Shell, a browser-based shell that allows running Azure CLI or PowerShell commands. However, I’ll be running the commands from my computer. 

אם תלחץ על קישור Azure Cloud Shell למעלה ותכנס לחשבון ה- Azure שלך, הוא יציג מסך כמו בצילום המסך למטה. היתרון של Azure Cloud Shell הוא שאינך צריך להתקין מודולי PowerShell כלשהם על המחשב האישי שלך.

שלב 1: קביעת מזהה האובייקט

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

1. פתח את Azure Cloud Shell – shell.azure.com והכנס באמצעות חשבון ה- Azure שלך.

אם אתה פותח את Azure Cloud Shell בפעם הראשונה, הוא ידרוש ממך ליצור חשבון אחסון.

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

$userid = (Get-AzADUser -UserPrincipalName AnthonyRa@corp.itechguides.com).id
$groupid = (Get-AzADGroup -DisplayName "Helpdesk Admins (AAD)").id

הפקודה הראשונה שומרת את ה- ID של המשתמש במשתנה userid, בעוד שהשנייה שומרת את ה- ID של הקבוצה למשתנה groupid. לפני שאתה מריץ את הפקודות, זכור לשנות את UserPrincipalName ואת DisplayName.

שלב 2: קבלת התפקיד שיש להקצות

השלב הבא לניהול Azure AD תפקידים והרשאות באמצעות PowerShell הוא לקבוע את התפקיד שיש להקצות. התחל ברשימת כל התפקידים הזמינים בשוכר Azure AD שלך באמצעות הפקודה הבאה.

Get-AzRoleDefinition | Format-Table -Property Name, IsCustom, Id

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

כדי להדגים, אני רוצה להקצות את התפקיד מנהל אבטחה למשתמש ולקבוצה שקבעתי בשלב 1. כדי להציג את שם התפקיד, אני מפנה את תוצאת הפקודה Get-AzRoleDefinition ל-Where-Object כפי שמוצג בפקודה זו. 

$roleassignmentname = (Get-AzRoleDefinition | where-object {$_.name -eq "Security Admin"}).Name

שלב 3: זהה את תחום ההקצאת התפקיד

הפקודה למטה מחזירה את ResourceID של חשבון אחסון (תחום המשאב) ושומרת אותו במשתנה ResourceID. 

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

$scoperesourceID = (Get-AzResource | Where-object {$_.name -eq "veeambackup21"}).ResourceID

שלב 4: הקצה את התפקיד ב-Azure

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

הפקודה הראשונה מקצה את התפקיד "מנהל אבטחה" למשתמש שנשמר במשתנה $userid. כך גם הפקודה השנייה מקצה את אותו תפקיד לקבוצה שנשמרת במשתנה $groupid. 

New-AzRoleAssignment -ObjectId $userid -RoleDefinitionName $roleassignmentname -Scope $scoperesourceID
New-AzRoleAssignment -ObjectId $groupid -RoleDefinitionName $roleassignmentname -Scope $scoperesourceID

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

הצג הקצאת תפקיד Azure AD באמצעות PowerShell

מוקדם יותר, הקצאתי את התפקיד "מנהל אבטחה" למשתמש עם UPN, [email protected]. אם אתה זוכר, מזהה המשתמש של המשתמש נשמר במשתנה $userid. 

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

get-AzRoleAssignment -scope $scoperesourceID -ObjectId $userid

הפקודה מציגה את פרטי ההקצאה לתפקיד, כולל שם ההקצאה לתפקיד והיקף. 

אתה מציג את אותם פרטים עבור הקבוצה על ידי ריצת פקודה זו.

get-AzRoleAssignment -scope $scoperesourceID -ObjectId $groupid

ניהול תפקידים והרשאות Azure AD עם PowerShell סיכום

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

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

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

Source:
https://infrasos.com/managing-azure-ad-roles-and-permissions-with-powershell/