Noções básicas sobre as atribuições de função 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 entidade 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:
- A entidade de segurança ou quem recebeu a atribuição de função.
- A função que foi atribuída a eles.
- O escopo em que a função é atribuída.
- O nome da atribuição de função e uma descrição que ajuda você a explicar por que a função foi atribuída.
Por exemplo, é possível usar o Azure RBAC para atribuir funções como:
- O usuário Sara 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 leitura a todos os recursos do grupo de recursos ContosoStorage.
- A identidade gerenciada associada a um aplicativo tem permissão para reiniciar máquinas virtuais na assinatura da Contoso.
Veja a seguir um exemplo das propriedades em uma atribuição de função quando exibida usando 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
}
Veja a seguir um exemplo das propriedades em uma atribuição de função quando exibida 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 que significam as propriedades da atribuição de função.
Propriedade | Descrição |
---|---|
RoleAssignmentName name |
O nome da atribuição de função, que é um GUID (identificador global exclusivo). |
RoleAssignmentId id |
A ID exclusiva da atribuição de função, que inclui o nome. |
Scope scope |
O identificador de recurso do Azure que está dentro do escopo da atribuição de função. |
RoleDefinitionId roleDefinitionId |
A ID exclusiva da função. |
RoleDefinitionName roleDefinitionName |
O nome da função. |
ObjectId principalId |
O identificador de objeto do Microsoft Entra da entidade de segurança que tem a função atribuída. |
ObjectType principalType |
O tipo de objeto do Microsoft Entra que a entidade de segurança representa. Os valores válidos incluem User , Group e ServicePrincipal . |
DisplayName |
Em atribuições de função para usuários, o nome de exibição do usuário. |
SignInName principalName |
O UPN (nome exclusivo da entidade de segurança) 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 |
Instrução de condição criada usando uma ou mais ações de atributos e definição de função. |
ConditionVersion conditionVersion |
O número de versão da condição. O padrão é 2.0 e é a única versão com suporte. |
CanDelegate canDelegate |
Não implementado. |
Escopo
Ao criar uma atribuição de função, você precisa especificar o escopo no qual ela é aplicada. O escopo representa o recurso ou o conjunto de recursos que a entidade de segurança tem permissão para acessar. É possível definir um escopo de uma atribuição de função para um único recurso, um grupo de recursos, uma assinatura ou um grupo de gerenciamento.
Dica
Use o menor escopo necessário para atender aos seus requisitos.
Por exemplo, se você precisar conceder um acesso de identidade gerenciada a uma só 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 grupo de recursos ou no escopo da assinatura.
Para obter mais informações sobre escopo, confira Noções básicas de escopo.
Função para 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 no 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. Ao criar 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 saber mais sobre definições de função, confira Noções básicas sobre definições de função.
Principal
As entidades de segurança incluem usuários, grupos de segurança, identidades gerenciadas, identidades de carga de trabalho e entidades de serviço. As entidades de segurança são criadas e gerenciadas no seu locatário do Microsoft Entra. É possível atribuir uma função a uma entidade de segurança. Use a ID do objeto do Microsoft Entra ID para identificar a entidade de segurança à qual você deseja atribuir a função.
Ao criar uma atribuição de função usando o Azure PowerShell, a CLI do Azure, o Bicep ou outra tecnologia de IaC (infraestrutura como código), você especifica o tipo de entidade de segurança. Os tipos de entidade de segurança incluem Usuário, Grupo e Entidade de Serviço. É importante especificar o tipo de entidade de segurança correto. Caso contrário, você pode receber erros de implantação intermitentes, especialmente ao trabalhar com entidades de serviço e identidades gerenciadas.
Nome
O nome do recurso de uma atribuição de função deve ser um GUID (identificador global exclusivo).
Os nomes de recursos de atribuição de função precisam ser exclusivos no locatário do Microsoft Entra, mesmo que o escopo da atribuição de função seja mais restritivo.
Dica
Ao criar uma atribuição de função usando o portal do Azure, o Azure PowerShell ou a CLI do Azure, o processo de criação fornece automaticamente à atribuição de função um nome exclusivo para você.
Se você criar uma atribuição de função usando o Bicep ou outra tecnologia de IaC (infraestrutura como código), será necessário planejar cuidadosamente como nomear as atribuições de função. Para obter mais informações, consulte Criar recursos do Azure RBAC usando o Bicep.
Comportamento de exclusão de recursos
Quando você exclui um usuário, grupo, entidade de serviço ou identidade gerenciada do Microsoft Entra ID, é uma boa prática excluir também as atribuições de função relacionadas a ele. Elas não são excluídas automaticamente. Todas as atribuições de função que se referem a uma ID de entidade de segurança excluída 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 tem maior probabilidade de ocorrer de ocorrer ao usar o Bicep ou um modelo do ARM (modelo do Azure Resource Manager) para implantar as atribuições de função, pois é necessário definir explicitamente o nome da atribuição de função quando você usar essas ferramentas. Para contornar esse comportamento, você deve remover a atribuição de função antiga antes de recriá-la ou certificar-se de usar um nome exclusivo ao implantar uma nova atribuição de função.
Descrição
É possível 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 atribuições de função. Forneça uma breve justificativa do motivo pelo qual a entidade de segurança precisa da função atribuída. Quando alguém audita as atribuições de função, as descrições podem ajudar a entender por qual motivo elas foram criadas e se ainda são aplicáveis.
Condições
Algumas funções dão suporte a condições de atribuição de função 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 à atribuição de função para fornecer controle de acesso mais refinado.
Por exemplo, é possível adicionar uma condição que exige que um objeto tenha uma marca específica para ler o objeto.
Normalmente, você cria condições usando um editor de condições visuais, mas veja aqui 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'))
Essa condição permite que os usuários leiam blobs com uma chave de marca de índice de blob de Projeto e um valor de Cascata.
Para saber mais sobre as condições, confira O que é o Azure ABAC (controle de acesso baseado em atributo)?
Integração ao Privileged Identity Management (versão prévia)
Importante
A integração da atribuição de funções do Azure com o Privileged Identity Management está atualmente em PREVIEW. Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.
Se você tiver uma licença do Microsoft Entra P2 ou do Microsoft Entra ID Governance, o Microsoft Entra PIM (Privileged Identity Management) será integrado às etapas de atribuição de função. Por exemplo, você pode atribuir funções aos usuários por um tempo limitado. Você também pode tornar os usuários qualificados para atribuições de função para que eles precisem ser ativados para usar a função, como a aprovação da solicitação. As atribuições de função qualificadas fornecem acesso just-in-time a uma função por um tempo limitado. Não é possível criar atribuições de função qualificadas para aplicativos, entidades de serviço ou identidades gerenciadas, porque eles não podem realizar as etapas de ativação. Você pode criar atribuições de função qualificadas no escopo do grupo de gerenciamento, da assinatura e do grupo de recursos, mas não no escopo do recurso. Essa funcionalidade está sendo implantada em fases e, portanto, talvez ainda não esteja disponível em seu locatário ou talvez sua interface seja diferente.
As opções de tipo de atribuição disponíveis para você podem variar conforme a política do PIM. Por exemplo, a política do PIM define se as atribuições permanentes podem ser criadas, a duração máxima para atribuições associadas ao 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, confira Definir configurações de função do recurso do Azure no Privileged Identity Management.
Se você não quiser usar a funcionalidade PIM, selecione as opções Ativo para tipo de atribuição e Permanente para duração da atribuição. Essas configurações criam uma atribuição de função em que a entidade de segurança sempre tem permissões na função.
Para entender melhor o PIM, confira os termos a seguir.
Termo ou conceito | Categoria de atribuição de função | Descrição |
---|---|---|
qualificado | Type | Uma atribuição de função que requer que um usuário execute uma ou mais ações para usá-la. Se um usuário se qualificou para uma função, isso significa que ele poderá ativá-la quando precisar executar tarefas privilegiadas. Não há nenhuma diferença no modo de acesso concedido a uma pessoa com uma atribuição de função permanente em comparação com uma qualificada. A única diferença é que algumas pessoas não precisam desse acesso o tempo todo. |
ativo | Type | Uma atribuição de função que não requer que um usuário execute nenhuma ação para usar a função. Usuários atribuídos como ativos têm os privilégios atribuídos à função. |
ativar | O processo de execução de uma ou mais ações a fim de usar uma função para a qual um usuário está qualificado. As ações podem incluir a execuçã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. | |
qualificada permanentemente | Duration | Uma atribuição de função em que um usuário sempre está qualificado para ativar a função. |
permanentemente ativa | Duration | Uma atribuição de função em que um usuário sempre pode usar a função sem executar nenhuma ação. |
tempo associado qualificado | Duração | Uma atribuição de função em que um usuário está qualificado para ativar a função somente na data de início e término especificada. |
tempo associado ativo | Duração | Uma atribuição de função em que um usuário pode usar determinada função somente na data de início e término especificada. |
Acesso JIT (Just-In-Time) | 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 após a expiração das permissões. O acesso é concedido somente quando os usuários precisam dele. | |
princípio de acesso de privilégios mínimos | Uma prática de segurança recomendada na qual todos os usuários recebem apenas os privilégios mínimos necessários para realizar as tarefas que estão autorizados a executar. Essa prática minimiza o número de Administradores Globais usando funções de administrador específicas para determinados cenários. |
Para obter mais informações, confira O que é o Microsoft Entra Privileged Identity Management?.