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


Вывод списка назначений ролей 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         : [email protected]
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. Чтобы получить идентификатор подписки, его можно найти в колонке "Подписки " на портале 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 [email protected] | FL DisplayName, RoleDefinitionName, Scope

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

Чтобы перечислить все роли, назначенные указанному пользователю, и роли, назначенные группам, которым принадлежит пользователь, используйте Get-AzRoleAssignment.

Get-AzRoleAssignment -SignInName <email_or_userprincipalname> -ExpandPrincipalGroups
Get-AzRoleAssignment -SignInName [email protected] -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. Чтобы получить идентификатор группы управления, его можно найти в колонке "Группы управления " на портале 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>

В следующем примере показано, как перечислить назначения ролей для учетной записи хранения. Обратите внимание, что эта команда также содержит список назначений ролей в более высоких областях, таких как группы ресурсов и подписки, которые применяются к этой учетной записи хранения.

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

Если вы хотите просто перечислить назначения ролей, назначенные непосредственно в ресурсе, можно использовать команду Where-Object для фильтрации списка.

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>
    

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

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