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

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

إشعار

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

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

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

لسرد تعيينات الدور لمستخدم معين، استخدم az role assignment list:

az role assignment list --assignee {assignee}

By default, only role assignments for the current subscription will be displayed. To view role assignments for the current subscription and below, add the --all parameter. To include role assignments at parent scopes, add the --include-inherited parameter. To include role assignments for groups of which the user is a member transitively, add the --include-groups parameter.

The following example lists the role assignments that are assigned directly to the patlong@contoso.com user:

az role assignment list --all --assignee patlong@contoso.com --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Backup Operator",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  },
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Virtual Machine Contributor",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  }
]

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

لسرد تعيينات الدور الموجودة في نطاق مجموعة موارد، استخدم قائمة تعيين الدور az:

az role assignment list --resource-group {resourceGroup}

The following example lists the role assignments for the pharma-sales resource group:

az role assignment list --resource-group pharma-sales --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Backup Operator",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  },
  {
    "principalName": "patlong@contoso.com",
    "roleDefinitionName": "Virtual Machine Contributor",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  },
  
  ...

]

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

لسرد كافة تعيينات الأدوار في نطاق اشتراك، استخدم az role assignment list. للحصول على معرف الاشتراك، يمكنك العثور عليه على جزء الاشتراكات في مدخل Microsoft Azure أو يمكنك استخدام قائمة حسابات az.

az role assignment list --scope "/subscriptions/{subscriptionId}"

Example:

az role assignment list --scope "/subscriptions/00000000-0000-0000-0000-000000000000" --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "admin@contoso.com",
    "roleDefinitionName": "Owner",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
  },
  {
    "principalName": "Subscription Admins",
    "roleDefinitionName": "Owner",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
  },
  {
    "principalName": "alain@contoso.com",
    "roleDefinitionName": "Reader",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
  },

  ...

]

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

لسرد كافة تعيينات الأدوار في نطاق مجموعة إدارة، استخدم az role assignment list. للحصول على معرف مجموعة الإدارة، يمكنك العثور عليه في شفرة مجموعات الإدارة في مدخل Microsoft Azure أو يمكنك استخدام az account management-group list.

az role assignment list --scope /providers/Microsoft.Management/managementGroups/{groupId}

Example:

az role assignment list --scope /providers/Microsoft.Management/managementGroups/sales-group --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "admin@contoso.com",
    "roleDefinitionName": "Owner",
    "scope": "/providers/Microsoft.Management/managementGroups/sales-group"
  },
  {
    "principalName": "alain@contoso.com",
    "roleDefinitionName": "Reader",
    "scope": "/providers/Microsoft.Management/managementGroups/sales-group"
  }
]

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

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

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

    للحصول على المعرف الأساسي للهوية المدارة المعينة من قبل المستخدم، يمكنك استخدام az ad sp list أو az identity list.

    az ad sp list --display-name "{name}" --query [].id --output tsv
    

    للحصول على المعرف الأساسي للهوية المدارة المعينة من قبل النظام، يمكنك استخدام az ad sp list.

    az ad sp list --display-name "{vmname}" --query [].id --output tsv
    
  2. لسرد تعيينات الأدوار، استخدم az role assignment list.

    بشكل افتراضي، سيتم عرض تعيينات الأدوار للاشتراك الحالي فقط. لعرض تعيينات الأدوار للاشتراك الحالي وما يلي، أضف المعلمة --all . لعرض تعيينات الأدوار الموروثة، أضف المعلمة --include-inherited .

    az role assignment list --assignee {objectId}
    

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