Поделиться через


Вывод списка назначений ролей Azure с помощью Azure CLI

Управление доступом на основе ролей Azure (Azure RBAC) — это система авторизации, используемая для управления доступом к ресурсам в Azure. Чтобы определить, к каким ресурсам пользователи, группы, субъекты-службы или управляемые удостоверения имеют доступ, необходимо просмотреть их назначения ролей. В этой статье описывается, как перечислить назначения ролей с помощью Azure CLI.

Замечание

Если ваша организация передала функции управления поставщику услуг, который использует службу Azure Lighthouse, то назначения ролей, предоставленные этим поставщиком услуг, здесь отображаться не будут. Аналогичным образом пользователи в клиенте поставщика услуг не будут видеть назначения ролей для пользователей в клиенте клиента независимо от назначенной им роли.

Предпосылки

Вывод списка назначений ролей для пользователя

Чтобы получить список назначений ролей для конкретного пользователя, используйте az role assignment list:

az role assignment list --assignee {assignee}

По умолчанию отображаются только назначения ролей для текущей подписки. Чтобы просмотреть назначения ролей для текущей подписки и её дочерних уровней, добавьте параметр --all. Чтобы включить назначения ролей в родительские области, добавьте --include-inherited. Чтобы включить назначения ролей для групп, в которых пользователь является участником транзитивно, добавьте этот параметр --include-groups.

В следующем примере перечислены назначения ролей, которые напрямую предоставлены пользователю [email protected].

az role assignment list --all --assignee [email protected] --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "[email protected]",
    "roleDefinitionName": "Backup Operator",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  },
  {
    "principalName": "[email protected]",
    "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}

В следующем примере перечислены назначения ролей для группы ресурсов pharma-sales :

az role assignment list --resource-group pharma-sales --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "[email protected]",
    "roleDefinitionName": "Backup Operator",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
  },
  {
    "principalName": "[email protected]",
    "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}"

Пример:

az role assignment list --scope "/subscriptions/00000000-0000-0000-0000-000000000000" --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "[email protected]",
    "roleDefinitionName": "Owner",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
  },
  {
    "principalName": "Subscription Admins",
    "roleDefinitionName": "Owner",
    "scope": "/subscriptions/00000000-0000-0000-0000-000000000000"
  },
  {
    "principalName": "[email protected]",
    "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}

Пример:

az role assignment list --scope /providers/Microsoft.Management/managementGroups/sales-group --output json --query '[].{principalName:principalName, roleDefinitionName:roleDefinitionName, scope:scope}'
[
  {
    "principalName": "[email protected]",
    "roleDefinitionName": "Owner",
    "scope": "/providers/Microsoft.Management/managementGroups/sales-group"
  },
  {
    "principalName": "[email protected]",
    "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}
    

Дальнейшие шаги

Назначение ролей Azure с помощью Azure CLI