Listar atribuições de função do Azure usando o Azure PowerShell

O controle de acesso baseado em função do Azure (Azure RBAC) é o sistema de autorização que você usa para gerenciar o acesso aos recursos do Azure. Para determinar a que recursos os utilizadores, grupos, principais de serviços ou identidades geridas têm acesso, liste as suas atribuições de funções. Este artigo descreve como listar atribuições de função usando o Azure PowerShell.

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Nota

Se sua organização tiver terceirizado funções de gerenciamento para um provedor de serviços que usa o Azure Lighthouse, as atribuições de função autorizadas por esse provedor de serviços não serão mostradas aqui. Da mesma forma, os usuários no locatário do provedor de serviços não verão atribuições de função para usuários no locatário de um cliente, independentemente da função que lhes foi atribuída.

Pré-requisitos

Listar atribuições de função para a assinatura atual

A maneira mais fácil de obter uma lista de todas as atribuições de função na assinatura atual (incluindo atribuições de função herdadas de grupos raiz e de gerenciamento) é usar Get-AzRoleAssignment sem parâmetros.

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

...

Listar atribuições de função para uma assinatura

Para listar todas as atribuições de função em um escopo de assinatura, use Get-AzRoleAssignment. Para obter a ID da assinatura, você pode encontrá-la na folha Assinaturas no portal do Azure ou usar Get-AzSubscription.

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

Listar atribuições de função para um usuário

Para listar todas as funções atribuídas a um usuário especificado, use 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

Listar atribuições de função para um grupo de recursos

Para listar todas as atribuições de função em um escopo de grupo de recursos, use 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

Listar atribuições de função para um grupo de gerenciamento

Para listar todas as atribuições de função em um escopo de grupo de gerenciamento, use Get-AzRoleAssignment. Para obter a ID do grupo de gerenciamento, você pode encontrá-la na folha Grupos de gerenciamento no portal do Azure ou usar Get-AzManagementGroup.

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

Listar atribuições de função para um recurso

Para listar atribuições de função para um recurso específico, use Get-AzRoleAssignment e o -Scope parâmetro. O âmbito será diferente consoante o recurso. Para obter o escopo, você pode executar Get-AzRoleAssignment sem parâmetros para listar todas as atribuições de função e, em seguida, localizar o escopo que deseja listar.

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"}

Listar atribuições de função para administrador de serviço clássico e coadministradores

Para listar atribuições de função para o administrador de assinatura clássico e coadministradores, use Get-AzRoleAssignment.

Get-AzRoleAssignment -IncludeClassicAdministrators

Listar atribuições de função para uma identidade gerenciada

Siga estes passos:

  1. Obtenha o ID do objeto da identidade gerenciada atribuída pelo sistema ou pelo usuário.

    Para obter a ID de objeto de uma identidade gerenciada atribuída pelo usuário, você pode usar Get-AzADServicePrincipal.

    Get-AzADServicePrincipal -DisplayNameBeginsWith "<name> or <vmname>"
    
  2. Para listar as atribuições de função, use Get-AzRoleAssignment.

    Get-AzRoleAssignment -ObjectId <objectid>
    

Próximo passo