سرد تعيينات دور Azure باستخدام Azure PowerShell

التحكم في الوصول المستند إلى الدور Azure (Azure RBAC) هو نظام التخويل الذي تستخدمه لإدارة الوصول إلى موارد Azure. لتحديد الموارد التي يمكن للمستخدمين أو المجموعات أو أساسيات الخدمة أو الهويات المدارة الوصول إليها، يمكنك سرد تعيينات الأدوار الخاصة بهم. توضح هذه المقالة كيفية سرد تعيينات الأدوار باستخدام Azure PowerShell.

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

إشعار

إذا كانت مؤسستك قد قامت بإسناد وظائف الإدارة إلى موفر خدمة خارجي يستخدم Azure Lighthouse، فلن يتم عرض تعيينات الأدوار المسموح بها من قبل موفر الخدمة هذا هنا. وبالمثل، لن يرى المستخدمون في مستأجر موفر الخدمة تعيينات الأدوار للمستخدمين في مستأجر العميل، بغض النظر عن الدور الذي تم تعيينه لهم.

المتطلبات الأساسية

سرد تعيينات الأدوار للاشتراك الحالي

أسهل طريقة للحصول على قائمة بجميع تعيينات الأدوار في الاشتراك الحالي (بما في ذلك تعيينات الأدوار الموروثة من مجموعات الجذر والإدارة) هي استخدام Get-AzRoleAssignment دون أي معلمات.

Get-AzRoleAssignment
PS C:\> Get-AzRoleAssignment

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
DisplayName        : Alain
SignInName         : alain@example.com
RoleDefinitionName : Storage Blob Data Reader
RoleDefinitionId   : 2a2b9908-6ea1-4ae2-8e65-a410df84e7d1
ObjectId           : 44444444-4444-4444-4444-444444444444
ObjectType         : User
CanDelegate        : False

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/providers/Microsoft.Authorization/roleAssignments/33333333-3333-3333-3333-333333333333
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName        : Marketing
SignInName         :
RoleDefinitionName : Contributor
RoleDefinitionId   : b24988ac-6180-42a0-ab88-20f7382dd24c
ObjectId           : 22222222-2222-2222-2222-222222222222
ObjectType         : Group
CanDelegate        : False

...

سرد تعيينات الأدوار للاشتراك

لسرد كافة تعيينات الأدوار في نطاق اشتراك، استخدم Get-AzRoleAssignment. للحصول على معرف الاشتراك، يمكنك العثور عليه على جزء الاشتراكات في مدخل Microsoft Azure أو يمكنك استخدام Get-AzSubscription.

Get-AzRoleAssignment -Scope /subscriptions/<subscription_id>
PS C:\> Get-AzRoleAssignment -Scope /subscriptions/00000000-0000-0000-0000-000000000000

سرد تعيينات الأدوار لمستخدم

لسرد جميع الأدوار التي تم تعيينها لمستخدم محدد، استخدم Get-AzRoleAssignment.

Get-AzRoleAssignment -SignInName <email_or_userprincipalname>
PS C:\> Get-AzRoleAssignment -SignInName isabella@example.com | FL DisplayName, RoleDefinitionName, Scope

DisplayName        : Isabella Simonsen
RoleDefinitionName : BizTalk Contributor
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

To list all the roles that are assigned to a specified user and the roles that are assigned to the groups to which the user belongs, use Get-AzRoleAssignment.

Get-AzRoleAssignment -SignInName <email_or_userprincipalname> -ExpandPrincipalGroups
Get-AzRoleAssignment -SignInName isabella@example.com -ExpandPrincipalGroups | FL DisplayName, RoleDefinitionName, Scope

سرد تعيينات الأدوار لمجموعة موارد

لسرد كافة تعيينات الأدوار في نطاق مجموعة موارد، استخدم Get-AzRoleAssignment.

Get-AzRoleAssignment -ResourceGroupName <resource_group_name>
PS C:\> Get-AzRoleAssignment -ResourceGroupName pharma-sales | FL DisplayName, RoleDefinitionName, Scope

DisplayName        : Alain Charon
RoleDefinitionName : Backup Operator
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

DisplayName        : Isabella Simonsen
RoleDefinitionName : BizTalk Contributor
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

DisplayName        : Alain Charon
RoleDefinitionName : Virtual Machine Contributor
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

سرد تعيينات الأدوار لمجموعة إدارة

لسرد كافة تعيينات الأدوار في نطاق مجموعة إدارة، استخدم Get-AzRoleAssignment. للحصول على معرف مجموعة الإدارة، يمكنك العثور عليه على شفرة مجموعات الإدارة في مدخل Microsoft Azure أو يمكنك استخدام Get-AzManagementGroup.

Get-AzRoleAssignment -Scope /providers/Microsoft.Management/managementGroups/<group_id>
PS C:\> Get-AzRoleAssignment -Scope /providers/Microsoft.Management/managementGroups/marketing-group

سرد تعيينات الأدوار لمورد

لسرد تعيينات الأدوار لمورد معين، استخدم Get-AzRoleAssignment والمعلمة-Scope. سيكون النطاق مختلفا اعتمادا على المورد. للحصول على النطاق، يمكنك التشغيل Get-AzRoleAssignment بدون أي معلمات لسرد كافة تعيينات الدور ثم العثور على النطاق الذي تريد إدراجه.

Get-AzRoleAssignment -Scope "/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/<provider_name>/<resource_type>/<resource>

This following example shows how to list the role assignments for a storage account. Note that this command also lists role assignments at higher scopes, such as resource groups and subscriptions, that apply to this storage account.

PS C:\> Get-AzRoleAssignment -Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/storage-test-rg/providers/Microsoft.Storage/storageAccounts/storagetest0122"

If you want to just list role assignments that are assigned directly on a resource, you can use the Where-Object command to filter the list.

PS C:\> Get-AzRoleAssignment | Where-Object {$_.Scope -eq "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/storage-test-rg/providers/Microsoft.Storage/storageAccounts/storagetest0122"}

سرد تعيينات الأدوار لمسؤول الخدمة الكلاسيكية والمسؤولين المشاركين

لسرد تعيينات الأدوار لمسؤول الاشتراك الكلاسيكي والمسؤولين المشاركين، استخدم Get-AzRoleAssignment.

Get-AzRoleAssignment -IncludeClassicAdministrators

سرد تعيينات الأدوار لهوية مدارة

اتبع الخطوات التالية:

  1. احصل على معرف الكائن للهوية المدارة المعينة من قبل النظام أو المعينة من قبل المستخدم.

    للحصول على معرف الكائن لهوية مدارة معينة من قبل المستخدم، يمكنك استخدام Get-AzADServicePrincipal.

    Get-AzADServicePrincipal -DisplayNameBeginsWith "<name> or <vmname>"
    
  2. لسرد تعيينات الأدوار، استخدم Get-AzRoleAssignment.

    Get-AzRoleAssignment -ObjectId <objectid>
    

الخطوة التالية