Вывод списка назначений ролей 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 role assignment list.

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. Идентификатор подписки можно найти в колонке Подписки на портале Azure. Также его можно получить с помощью команды az account list.

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. Идентификатор группы управления можно найти в колонке Группы управления на портале 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}
    

Следующий шаг