البرنامج التعليمي: منح وصول جماعي إلى موارد 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، لمنح الوصول، يمكنك إنشاء تعيين دور. يتكون تعيين الدور من ثلاثة عناصر، هي: أساس الأمان، وتعريف الدور، والنطاق. فيما يلي تكليفات الأدوار التي ستؤديها في هذا البرنامج التعليمي:
أساس الأمان | تعريف قاعدة | النطاق |
---|---|---|
Group (المجموعة) (مجموعة دروس RBAC) |
القارئ | الوصف |
Group (المجموعة) (مجموعة دروس RBAC) |
المساهم | مجموعة الموارد ( rbac -مجموعة-الموارد التعليمية) |
إنشاء مجموعة
لتعيين دور، تحتاج إلى مستخدم أو مجموعة أو مدير خدمة. إذا لم يكن لديك مجموعة بالفعل، يمكنك إنشاء واحدة.
في Azure Cloud Shell، أنشئ مجموعة جديدة باستخدام الأمر New-MgGroup .
New-MgGroup -DisplayName "RBAC Tutorial Group" -MailEnabled:$false ` -SecurityEnabled:$true -MailNickName "NotSet"
DisplayName Id MailNickname Description GroupTypes ----------- -- ------------ ----------- ---------- RBAC Tutorial Group 11111111-1111-1111-1111-111111111111 NotSet {}
إذا لم تكن لديك أذونات لإنشاء مجموعات، فيمكنك تجربة البرنامج التعليمي: منح المستخدم حق الوصول إلى موارد Azure باستخدام Azure PowerShell بدلاً من ذلك.
إنشاء مجموعة موارد
يمكنك استخدام مجموعة موارد لإظهار كيفية تعيين دور في نطاق مجموعة موارد.
احصل على قائمة بمواقع المنطقة باستخدام الأمر 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-MgGroup .
Get-MgGroup -Filter "DisplayName eq 'RBAC Tutorial Group'"
DisplayName Id MailNickname Description GroupTypes ----------- -- ------------ ----------- ---------- RBAC Tutorial Group 11111111-1111-1111-1111-111111111111 NotSet {}
احفظ معرف كائن المجموعة في متغير.
$groupId = "11111111-1111-1111-1111-111111111111"
الحصول على مُعَرِّف اشتراكك، باستخدام الأمر 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 -ObjectId $groupId ` -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 Group SignInName : RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : Group CanDelegate : False
عيّن دور المساهم للمجموعة في نطاق مجموعة الموارد.
New-AzRoleAssignment -ObjectId $groupId ` -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 Group SignInName : RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : Group CanDelegate : False
الوصول إلى القائمة
للتحقق من الوصول للاشتراك، استخدم الأمر Get- AzRoleAssignment لسرد تعيينات الدور.
Get-AzRoleAssignment -ObjectId $groupId -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 Group SignInName : RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : Group CanDelegate : False
في الإخراج، يمكنك أن ترى أنه تم تعيين دور القارئ إلى مجموعة برامج RBAC التعليمية في نطاق الاشتراك.
للتحقق من الوصول لمجموعة الموارد، استخدم الأمر Get- AzRoleAssignment لسرد تعيينات الدور.
Get-AzRoleAssignment -ObjectId $groupId -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 Group SignInName : RoleDefinitionName : Contributor RoleDefinitionId : b24988ac-6180-42a0-ab88-20f7382dd24c ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : Group 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 Group SignInName : RoleDefinitionName : Reader RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7 ObjectId : 11111111-1111-1111-1111-111111111111 ObjectType : Group CanDelegate : False
في الإخراج، يمكنك أن ترى أنه تم تعيين دور كل من المساهم والقارئ لمجموعة برامج RBAC التعليمية. يقع دور المساهم في نطاق rbac -tutorial-Resource-group ويتم توريث دور القارئ في نطاق الاشتراك.
(اختياري) سرد الوصول باستخدام مدخل Microsoft Azure
لمشاهدة كيف تبدو تعيينات الأدوار في مدخل Microsoft Azure، اعرض شفرة التحكم في الوصول (IAM) للاشتراك.
اعرض شفرة التحكم في الوصول (IAM) لمجموعة الموارد.
إزالة الوصول
لإزالة وصول المستخدمين والمجموعات والتطبيقات، استخدم Remove- AzRoleAssignment لإزالة تعيين دور.
استخدم الأمر التالي لإزالة تعيين دور المساهم للمجموعة في نطاق مجموعة الموارد.
Remove-AzRoleAssignment -ObjectId $groupId ` -RoleDefinitionName "Contributor" ` -ResourceGroupName "rbac-tutorial-resource-group"
استخدم الأمر التالي لإزالة تعيين دور القارئ للمجموعة في نطاق الاشتراك.
Remove-AzRoleAssignment -ObjectId $groupId ` -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-MgGroup .
Remove-MgGroup -GroupID $groupId
إذا تلقيت خطأً عند محاولة حذف المجموعة، يمكنك أيضاً حذف المجموعة في المدخل.