البرنامج التعليمي: منح وصول جماعي إلى موارد Azure باستخدام Azure PowerShell
يساعدك التحكم في الوصول المستند إلى الدور Azure (Azure RBAC) على إدارة من لديه حق الوصول إلى موارد Azure. في هذا البرنامج التعليمي، أنت تمنح حق الوصول الجماعي لعرض كل شيء في الاشتراك وإدارة كل شيء في مجموعة موارد باستخدام Azure PowerShell.
في هذا البرنامج التعليمي، تتعلم كيفية:
- منح الوصول لمجموعة في نطاقات مختلفة
- الوصول إلى القائمة
- إزالة الوصول
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
إشعار
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
المتطلبات الأساسية
لإكمال هذا البرنامج التعليمي، ستحتاج إلى:
- أذونات إنشاء مستخدمين في معرف Microsoft Entra (أو لديك مستخدم موجود)
- Azure Cloud Shell
- Microsoft Graph PowerShell SDK
تعيينات الأدوار
في Azure RBAC، لمنح الوصول، يمكنك إنشاء تعيين دور. يتكون تعيين الدور من ثلاثة عناصر، هي: أساس الأمان، وتعريف الدور، والنطاق. فيما يلي تكليفات الأدوار التي ستؤديها في هذا البرنامج التعليمي:
أساس الأمان | تعريف قاعدة | النطاق |
---|---|---|
المستخدم (مجموعة دروس RBAC) |
القارئ | الوصف |
المستخدم (مجموعة دروس RBAC) |
المساهم | مجموعة الموارد ( rbac -مجموعة-الموارد التعليمية) |
أنشئ مجموعة
لتعيين دور، تحتاج إلى مستخدم أو مجموعة أو مدير خدمة. إذا لم تكن لديك مجموعة بالفعل، يمكنك إنشاء واحدة.
في Azure Cloud Shell، أنشئ كلمة مرور تتوافق مع متطلبات تعقيد كلمة المرور الخاصة بك.
$PasswordProfile = @{ Password = "<Password>" }
إنشاء مستخدم جديد لمجالك باستخدام الأمر New-MgUser .
New-MgUser -DisplayName "RBAC Tutorial User" -PasswordProfile $PasswordProfile ` -UserPrincipalName "rbacuser@example.com" -AccountEnabled:$true -MailNickName "rbacuser"
DisplayName Id Mail UserPrincipalName ----------- -- ---- ----------------- RBAC Tutorial User 11111111-1111-1111-1111-111111111111 rbacuser@example.com
إنشاء مجموعة موارد
يمكنك استخدام مجموعة موارد لإظهار كيفية تعيين دور في نطاق مجموعة موارد.
احصل على قائمة بمواقع المنطقة باستخدام الأمر Get- AzLocation.
Get-AzLocation | select Location
حدد موقعاً بالقرب منك وقم بتعيينه لمتغير.
$location = "westus"
قم بإنشاء مجموعة موارد جديدة باستخدام الأمر New- AzResourceGroup.
New-AzResourceGroup -Name "rbac-tutorial-resource-group" -Location $location
ResourceGroupName : rbac-tutorial-resource-group Location : westus ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group
منح حق الوصول
لمنح الوصول للمجموعة، يمكنك استخدام الأمر New- AzRoleAssignment لتعيين دور. يجب عليك تحديد أساس الأمان وتعريف الدور والنطاق.
الحصول على مُعَرِّف اشتراكك، باستخدام الأمر Get-AzSubscription.
Get-AzSubscription
Name : Pay-As-You-Go Id : 00000000-0000-0000-0000-000000000000 TenantId : 22222222-2222-2222-2222-222222222222 State : Enabled
احفظ نطاق الاشتراك في متغير.
$subScope = "/subscriptions/00000000-0000-0000-0000-000000000000"
عيّن دور القارئ للمجموعة في نطاق الاشتراك.
New-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Reader" ` -Scope $subScope
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/44444444-4444-4444-4444-444444444444 Scope : /subscriptions/00000000-0000-0000-0000-000000000000 DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
عيّن دور المساهم للمجموعة في نطاق مجموعة الموارد.
New-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333 Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
الوصول إلى القائمة
للتحقق من الوصول للاشتراك، استخدم الأمر Get- AzRoleAssignment لسرد تعيينات الدور.
Get-AzRoleAssignment -SignInName rbacuser@example.com -Scope $subScope
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222 Scope : /subscriptions/00000000-0000-0000-0000-000000000000 DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
في الإخراج، يمكنك أن ترى أنه تم تعيين دور القارئ إلى مجموعة برامج RBAC التعليمية في نطاق الاشتراك.
للتحقق من الوصول لمجموعة الموارد، استخدم الأمر Get- AzRoleAssignment لسرد تعيينات الدور.
Get-AzRoleAssignment -SignInName rbacuser@example.com -ResourceGroupName "rbac-tutorial-resource-group"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333 Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rbac-tutorial-resource-group DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222 Scope : /subscriptions/00000000-0000-0000-0000-000000000000 DisplayName : RBAC Tutorial User SignInName : rbacuser@example.com RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : User CanDelegate : False
في الإخراج، يمكنك أن ترى أنه تم تعيين دور كل من المساهم والقارئ لمستخدم البرنامج التعليمي لـ RBAC . يقع دور المساهم في نطاق rbac -tutorial-Resource-group ويتم توريث دور القارئ في نطاق الاشتراك.
(اختياري) سرد الوصول باستخدام مدخل Microsoft Azure
لمشاهدة كيف تبدو تعيينات الأدوار في مدخل Microsoft Azure، اعرض شفرة التحكم في الوصول (IAM) للاشتراك.
اعرض شفرة التحكم في الوصول (IAM) لمجموعة الموارد.
إزالة الوصول
لإزالة وصول المستخدمين والمجموعات والتطبيقات، استخدم Remove- AzRoleAssignment لإزالة تعيين دور.
استخدم الأمر التالي لإزالة تعيين دور المساهم للمجموعة في نطاق مجموعة الموارد.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
استخدم الأمر التالي لإزالة تعيين دور القارئ للمجموعة في نطاق الاشتراك.
Remove-AzRoleAssignment -SignInName rbacuser@example.com ` -RoleDefinitionName "Reader" ` -Scope $subScope
تنظيف الموارد
لتنظيف الموارد التي تم إنشاؤها بواسطة هذا البرنامج التعليمي، احذف مجموعة الموارد والمستخدم.
احذف مجموعة الموارد باستخدام الأمر Remove- AzResourceGroup.
Remove-AzResourceGroup -Name "rbac-tutorial-resource-group"
Confirm Are you sure you want to remove resource group 'rbac-tutorial-resource-group' [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
عندما يُطلب منك التأكيد، اكتب Y. سيستغرق الحذف بضع ثوان.
احذف المستخدم باستخدام الأمر Remove-MgUser .
$User = Get-MgUser -Filter "DisplayName eq 'RBAC Tutorial User'" Remove-MgUser -UserId $User.Id