Partilhar via


Compreender as atribuições de funções do Azure

As atribuições de função permitem que você conceda a uma entidade de segurança (como um usuário, um grupo, uma identidade gerenciada ou uma entidade de serviço) acesso a um recurso específico do Azure. Este artigo descreve os detalhes das atribuições de função.

Atribuição de função

O acesso aos recursos do Azure é concedido criando uma atribuição de função e o acesso é revogado removendo uma atribuição de função.

Uma atribuição de função tem vários componentes, incluindo:

  • O principal ou a quem é atribuída a função.
  • A função que lhes é atribuída.
  • O escopo no qual a função é atribuída.
  • O nome da atribuição de função e uma descrição que ajuda a explicar por que a função foi atribuída.

Por exemplo, você pode usar o RBAC do Azure para atribuir funções como:

  • O usuário Sally tem acesso de proprietário à conta de armazenamento contoso123 no grupo de recursos ContosoStorage.
  • Todos no grupo Administradores de Nuvem no Microsoft Entra ID têm acesso de leitor a todos os recursos no grupo de recursos ContosoStorage.
  • A identidade gerenciada associada a um aplicativo tem permissão para reiniciar máquinas virtuais na assinatura da Contoso.

A seguir mostra um exemplo das propriedades em uma atribuição de função quando exibidas usando o Azure PowerShell:

{
  "RoleAssignmentName": "00000000-0000-0000-0000-000000000000",
  "RoleAssignmentId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "Scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "DisplayName": "User Name",
  "SignInName": "user@contoso.com",
  "RoleDefinitionName": "Contributor",
  "RoleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "ObjectId": "22222222-2222-2222-2222-222222222222",
  "ObjectType": "User",
  "CanDelegate": false,
  "Description": null,
  "ConditionVersion": null,
  "Condition": null
}

A seguir mostra um exemplo das propriedades em uma atribuição de função quando exibidas usando a CLI do Azure ou a API REST:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "principalId": "22222222-2222-2222-2222-222222222222",
  "principalName": "user@contoso.com",
  "principalType": "User",
  "roleDefinitionId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
  "roleDefinitionName": "Contributor",
  "scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "type": "Microsoft.Authorization/roleAssignments"
}

A tabela a seguir descreve o significado das propriedades de atribuição de função.

Property Description
RoleAssignmentName
name
O nome da atribuição de função, que é um identificador global exclusivo (GUID).
RoleAssignmentId
id
A ID exclusiva da atribuição de função, que inclui o nome.
Scope
scope
O identificador de recurso do Azure para o qual a atribuição de função tem escopo.
RoleDefinitionId
roleDefinitionId
A ID exclusiva da função.
RoleDefinitionName
roleDefinitionName
O nome da função.
ObjectId
principalId
O identificador de objeto do Microsoft Entra para a entidade de segurança que tem a função atribuída.
ObjectType
principalType
O tipo de objeto Microsoft Entra que o principal representa. Os valores válidos incluem User, Group, e ServicePrincipal.
DisplayName Para atribuições de função para usuários, o nome para exibição do usuário.
SignInName
principalName
O UPN (nome principal exclusivo) do usuário ou o nome do aplicativo associado à entidade de serviço.
Description
description
A descrição da atribuição de função.
Condition
condition
Declaração de condição criada usando uma ou mais ações da definição de função e atributos.
ConditionVersion
conditionVersion
O número da versão da condição. O padrão é 2.0 e é a única versão suportada.
CanDelegate
canDelegate
Não implementado.

Âmbito

Ao criar uma atribuição de função, você precisa especificar o escopo no qual ela é aplicada. O escopo representa o recurso, ou conjunto de recursos, que a entidade de segurança tem permissão para acessar. Você pode definir o escopo de uma atribuição de função para um único recurso, um grupo de recursos, uma assinatura ou um grupo de gerenciamento.

Gorjeta

Use o menor escopo necessário para atender às suas necessidades.

Por exemplo, se você precisar conceder acesso a uma identidade gerenciada a uma única conta de armazenamento, é uma boa prática de segurança criar a atribuição de função no escopo da conta de armazenamento, não no escopo do grupo de recursos ou da assinatura.

Para obter mais informações sobre escopo, consulte Entender escopo.

Função a atribuir

Uma atribuição de função está associada a uma definição de função. A definição de função especifica as permissões que a entidade de segurança deve ter dentro do escopo da atribuição de função.

Você pode atribuir uma definição de função interna ou uma definição de função personalizada. Quando você cria uma atribuição de função, algumas ferramentas exigem que você use a ID de definição de função, enquanto outras ferramentas permitem que você forneça o nome da função.

Para obter mais informações sobre definições de função, consulte Compreender definições de função.

Principal

As entidades incluem usuários, grupos de segurança, identidades gerenciadas, identidades de carga de trabalho e entidades de serviço. As entidades são criadas e gerenciadas em seu locatário do Microsoft Entra. Você pode atribuir uma função a qualquer entidade de segurança. Use a ID do objeto ID do Microsoft Entra para identificar a entidade à qual você deseja atribuir a função.

Ao criar uma atribuição de função usando o Azure PowerShell, a CLI do Azure, o Bíceps ou outra tecnologia de infraestrutura como código (IaC), você especifica o tipo principal. Os tipos principais incluem User, Group e ServicePrincipal. É importante especificar o tipo principal correto. Caso contrário, você poderá obter erros de implantação intermitentes, especialmente quando trabalha com entidades de serviço e identidades gerenciadas.

Nome

O nome do recurso de uma atribuição de função deve ser um identificador global exclusivo (GUID).

Os nomes de recursos de atribuição de função devem ser exclusivos dentro do locatário do Microsoft Entra, mesmo que o escopo da atribuição de função seja mais restrito.

Gorjeta

Quando você cria uma atribuição de função usando o portal do Azure, o Azure PowerShell ou a CLI do Azure, o processo de criação dá à atribuição de função um nome exclusivo para você automaticamente.

Se você criar uma atribuição de função usando a tecnologia Bicep ou outra infraestrutura como código (IaC), precisará planejar cuidadosamente como nomear suas atribuições de função. Para obter mais informações, consulte Criar recursos do RBAC do Azure usando o Bicep.

Comportamento de exclusão de recursos

Quando você exclui um usuário, grupo, entidade de serviço ou identidade gerenciada da ID do Microsoft Entra, é uma boa prática excluir todas as atribuições de função. Eles não são excluídos automaticamente. Todas as atribuições de função que se referem a um ID principal excluído tornam-se inválidas.

Se você tentar reutilizar o nome de uma atribuição de função para outra atribuição de função, a implantação falhará. Esse problema é mais provável de ocorrer quando você usa o Bicep ou um modelo do Azure Resource Manager (modelo ARM) para implantar suas atribuições de função, porque você precisa definir explicitamente o nome da atribuição de função quando usa essas ferramentas. Para contornar esse comportamento, você deve remover a atribuição de função antiga antes de recriá-la ou garantir que você use um nome exclusivo quando você implantar uma nova atribuição de função.

Description

Você pode adicionar uma descrição de texto a uma atribuição de função. Embora as descrições sejam opcionais, é uma boa prática adicioná-las às suas atribuições de função. Forneça uma breve justificativa para o motivo pelo qual o principal precisa da função atribuída. Quando alguém audita as atribuições de função, as descrições podem ajudar a entender por que elas foram criadas e se ainda são aplicáveis.

Condições

Algumas funções suportam condições de atribuição de funções com base em atributos no contexto de ações específicas. Uma condição de atribuição de função é uma verificação adicional que você pode, opcionalmente, adicionar à sua atribuição de função para fornecer um controle de acesso mais refinado.

Por exemplo, você pode adicionar uma condição que exija que um objeto tenha uma tag específica para o usuário ler o objeto.

Normalmente, você cria condições usando um editor de condições visual, mas aqui está a aparência de uma condição de exemplo no código:

((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'))

A condição anterior permite que os usuários leiam blobs com uma chave de tag de índice de blob do Project e um valor de Cascade.

Para obter mais informações sobre condições, consulte O que é o controle de acesso baseado em atributos do Azure (Azure ABAC)?

Integração com o Privileged Identity Management (Pré-visualização)

Importante

A integração da atribuição de funções do Azure com o Privileged Identity Management está atualmente em pré-visualização. Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

Se você tiver uma licença do Microsoft Entra ID P2 ou do Microsoft Entra ID Governance, o Microsoft Entra Privileged Identity Management (PIM) será integrado às etapas de atribuição de função. Por exemplo, você pode atribuir funções a usuários por um período de tempo limitado. Você também pode tornar os usuários qualificados para atribuições de função para que eles tenham que ativá-los para usar a função, como solicitar aprovação. As atribuições de função qualificadas fornecem acesso just-in-time a uma função por um período limitado de tempo. Não é possível criar atribuições de função qualificadas para aplicativos, entidades de serviço ou identidades gerenciadas porque elas não podem executar as etapas de ativação. Esse recurso está sendo implantado em etapas, portanto, pode não estar disponível ainda em seu locatário ou sua interface pode parecer diferente.

As opções de tipo de atribuição disponíveis para você podem variar dependendo da sua política PIM. Por exemplo, a política PIM define se as atribuições permanentes podem ser criadas, a duração máxima das atribuições com limite de tempo, os requisitos de ativações de funções (aprovação, autenticação multifator ou contexto de autenticação de Acesso Condicional) e outras configurações. Para obter mais informações, consulte Configurar configurações de função de recurso do Azure no Privileged Identity Management.

Captura de ecrã de Adicionar atribuição de função com as opções Tipo de atribuição apresentadas.

Para compreender melhor o PIM, deve rever os seguintes termos.

Termo ou conceito Categoria de atribuição de função Description
elegível Type Uma atribuição de função que requer que um usuário execute uma ou mais ações para usar a função. Se um usuário tiver sido qualificado para uma função, isso significa que ele poderá ativá-la quando precisar executar tarefas privilegiadas. Não há diferença no acesso dado a alguém com uma atribuição de função permanente versus uma atribuição de função elegível. A única diferença é que algumas pessoas não precisam desse acesso o tempo todo.
active Type Uma atribuição de função que não exige que um usuário execute nenhuma ação para usar a função. Os usuários atribuídos como ativos têm os privilégios atribuídos à função.
ativar O processo de executar uma ou mais ações para usar uma função para a qual um usuário é qualificado. As ações podem incluir a realização de uma verificação de autenticação multifator (MFA), o fornecimento de uma justificativa comercial ou a solicitação de aprovação de aprovadores designados.
elegível permanente Duração Uma atribuição de função em que um usuário está sempre qualificado para ativar a função.
ativo permanente Duração Uma atribuição de função em que um usuário sempre pode usar a função sem executar nenhuma ação.
elegível com limite de tempo Duração Uma atribuição de função em que um usuário é elegível para ativar a função somente nas datas de início e fim.
ativo com limite de tempo Duração Uma atribuição de função em que um usuário pode usar a função somente nas datas de início e término.
acesso just-in-time (JIT) Um modelo no qual os usuários recebem permissões temporárias para executar tarefas privilegiadas, o que impede que usuários mal-intencionados ou não autorizados obtenham acesso depois que as permissões expirarem. O acesso é concedido somente quando os usuários precisam dele.
Princípio do acesso com privilégios mínimos Uma prática de segurança recomendada na qual cada usuário recebe apenas os privilégios mínimos necessários para realizar as tarefas que está autorizado a executar. Essa prática minimiza o número de Administradores Globais e, em vez disso, usa funções de administrador específicas para determinados cenários.

Para obter mais informações, consulte O que é o Microsoft Entra Privileged Identity Management?.

Próximos passos