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

O RBAC (controle de acesso baseado em função) do Azure é o sistema de autorização usado para gerenciar o acesso aos recursos no Azure. Para determinar a quais recursos os usuários, grupos, entidades de serviço ou identidades gerenciadas têm acesso, liste as atribuições das funções. Este artigo descreve como listar atribuições de função usando o Azure PowerShell.

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Observação

Se sua organização tiver funções de gerenciamento terceirizadas 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 atribuída.

Pré-requisitos

Listar atribuições de função de uma 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 de um usuário

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

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

Listar as atribuições de função de 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 as atribuições para um grupo de recursos

Para listar todas as atribuições de negaçã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 as 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 recursos, 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 pode usar Get-AzManagementGroup.

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

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

Para listar atribuições de função para um recurso específico, use Get-AzRoleAssignment e o parâmetro -Scope. O escopo será diferente dependendo do recurso. Para obter o escopo, você pode executar Get-AzRoleAssignment sem qualquer parâmetros para listar todas as atribuições de função e, em seguida, encontrar o escopo que você 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 administradores e coadministradores de serviços clássicos

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

Get-AzRoleAssignment -IncludeClassicAdministrators

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

Siga estas etapas:

  1. Obtenha a 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óxima etapa