Partilhar via


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

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 a CLI do Azure.

Observação

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 um usuário

Para listar as atribuições de função para um usuário específico, use az role assignment list:

az role assignment list --assignee {assignee}

Por padrão, somente as atribuições de função para a assinatura atual serão exibidas. Para exibir atribuições de função para a assinatura atual e abaixo, adicione o --all parâmetro. Para incluir atribuições de função em escopos pai, adicione o parâmetro --include-inherited. Para incluir atribuições de função para grupos dos quais o usuário é membro transitivamente, adicione o --include-groups parâmetro.

O exemplo a seguir lista as atribuições de função atribuídas diretamente ao patlong@contoso.com usuário:

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

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

Para listar as atribuições de função que existem em um escopo de grupo de recursos, use az role assignment list:

az role assignment list --resource-group {resourceGroup}

O exemplo a seguir lista as atribuições de função para o grupo de recursos de vendas farmacêuticas :

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

]

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

Para listar todas as atribuições de função no escopo de uma assinatura, use az role assignment list. Para obter o ID de assinatura, pode encontrá-lo na folha Assinaturas no portal do Azure ou pode usar az account list.

az role assignment list --scope "/subscriptions/{subscriptionId}"

Exemplo:

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

  ...

]

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 az role assignment list. Para obter a ID do grupo de gestão, pode encontrá-la no painel Grupos de gestão no portal do Azure ou pode usar az management-group list.

az role assignment list --scope /providers/Microsoft.Management/managementGroups/{groupId}

Exemplo:

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

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

  1. Obtenha o identificador principal da identidade gerida atribuída pelo sistema ou atribuída pelo utilizador.

    Para obter o ID principal de uma identidade gerenciada atribuída pelo usuário, você pode usar az ad sp list ou az identity list.

    az ad sp list --display-name "{name}" --query [].id --output tsv
    

    Para obter o ID principal de uma identidade gerenciada atribuída ao sistema, você pode usar az ad sp list.

    az ad sp list --display-name "{vmname}" --query [].id --output tsv
    
  2. Para listar as atribuições de função, use az role assignment list.

    Por padrão, somente as atribuições de função para a assinatura atual serão exibidas. Para exibir atribuições de função para a assinatura atual e abaixo, adicione o --all parâmetro. Para exibir atribuições de função herdadas, adicione o --include-inherited parâmetro.

    az role assignment list --assignee {objectId}
    

Próximos passos

Atribuir funções do Azure usando a CLI do Azure