O que é o controlo de acesso baseado em funções do Azure (Azure RBAC)?

A gestão de acesso para recursos na cloud é uma função crítica para qualquer organização que está a utilizar a cloud. O controlo de acesso baseado em funções do Azure (RBAC do Azure) ajuda-o a gerir quem tem acesso aos recursos do Azure, o que fazem com esses recursos e a que áreas têm acesso.

O Azure RBAC é um sistema de autorização construído na Azure Resource Manager que fornece uma gestão de acesso fino aos recursos da Azure.

Este vídeo fornece uma visão geral rápida do Azure RBAC.

O que posso fazer com o RBAC do Azure?

Aqui estão alguns exemplos do que pode fazer com a Azure RBAC:

  • Permitir a um utilizador gerir máquinas virtuais numa subscrição e a outro utilizador gerir redes virtuais
  • Permitir a um grupo DBA gerir bases de dados SQL numa subscrição
  • Permitir a um utilizador gerir todos os recursos num grupo de recursos, como máquinas virtuais, sites e sub-redes
  • Permitir a uma aplicação aceder a todos os recursos num grupo de recursos

Como funciona o Azure RBAC

A forma como controla o acesso aos recursos usando o Azure RBAC é atribuir funções de Azure. Este é um conceito chave para entender – é como as permissões são aplicadas. Uma atribuição de função é composta por três elementos: principal de segurança, definição de função e âmbito.

Principal de segurança

Um principal de segurança é um objeto que representa um utilizador, grupo, principal de serviço ou identidade gerida que solicita o acesso aos recursos do Azure. Pode atribuir um papel a qualquer um destes diretores de segurança.

Diagram showing the security principal types for a role assignment.

Definição de função

Uma definição de função é uma coleção de permissões. Normalmente chama-se papel. Uma definição de papel lista as ações que podem ser executadas, tais como ler, escrever e apagar. As funções podem ser de nível elevado, como proprietário, ou específicas, como leitor de máquina virtual.

Diagram showing role definition example for a role assignment

O Azure inclui vários papéis incorporados que pode usar. Por exemplo, a função Contribuidor de Máquina Virtual permite a um utilizador criar e gerir máquinas virtuais. Se os papéis incorporados não corresponderem às necessidades específicas da sua organização, pode criar os seus próprios papéis personalizados Azure.

Este vídeo fornece uma visão geral rápida de papéis incorporados e papéis personalizados.

O Azure tem ações de dados que lhe permitem conceder acesso a dados dentro de um objeto. Por exemplo, se um utilizador tiver acesso a dados de leitura a uma conta de armazenamento, pode ler os blobs ou as mensagens nessa conta de armazenamento.

Para mais informações, consulte as definições de funções do Azure.

Âmbito

Âmbito é o conjunto de recursos a que o acesso se aplica. Quando atribui uma função, pode limitar ainda mais as ações permitidas ao definir um âmbito. Isto é útil se você quiser fazer de alguém um Colaborador do Site, mas apenas para um grupo de recursos.

Em Azure, pode especificar um âmbito a quatro níveis: grupo de gestão, subscrição, grupo de recursos ou recurso. Os âmbitos são estruturados numa relação de principal-subordinado. Pode atribuir funções em qualquer um destes níveis de âmbito.

Diagram showing scope levels for a role assignment.

Para obter mais informações sobre o âmbito, consulte o âmbito de aplicação.

Atribuições de funções

Uma atribuição de funções é o processo de anexação de uma definição de papel a um utilizador, grupo, principal de serviço ou identidade gerida num determinado âmbito para a concessão de acesso. O acesso é concedido ao criar uma atribuição de função e o acesso é revogado ao remover uma atribuição de função.

O diagrama seguinte mostra um exemplo de uma atribuição de função. Neste exemplo, foi atribuída a função Contribuidor ao grupo Marketing para o grupo de recursos de vendas farmacêuticas. Isto significa que os utilizadores no grupo Marketing podem criar ou gerir qualquer recurso do Azure no grupo de recursos de vendas farmacêuticas. Os utilizadores do grupo Marketing não têm acesso aos recursos fora o grupo de recursos de vendas farmacêuticas, a menos que façam parte de outra atribuição de função.

Diagram showing how security principal, role definition, and scope create a role assignment.

Pode atribuir funções utilizando as portal do Azure, Azure CLI, Azure PowerShell, Azure SDKs ou REST APIs.

Para mais informações, consulte Passos para atribuir um papel de Azure.

Grupos

As atribuições de funções são transitivas para grupos, o que significa que se um utilizador é membro de um grupo e esse grupo é membro de outro grupo que tem uma atribuição de papel, o utilizador terá as permissões na atribuição de funções.

Diagram showing how role assignments are transitive for groups.

Atribuições múltiplas de funções

Então, o que acontece se tiver várias atribuições de papéis sobrepostos? O Azure RBAC é um modelo aditivo, por isso as suas permissões eficazes são a soma das suas atribuições de papel. Considere o exemplo a seguir quando um utilizador recebe o papel de Contribuinte no âmbito de subscrição e a função Reader num grupo de recursos. A soma das permissões do Contribuinte e das permissões do Leitor é efetivamente a função contribuinte para a subscrição. Portanto, neste caso, a atribuição de funções reader não tem impacto.

Diagram showing how multiple role assignments overlap.

Atribuições de negação

Anteriormente, o Azure RBAC era um modelo apenas permitido sem qualquer negação, mas agora o Azure RBAC apoia a negação de missões de forma limitada. Semelhante a uma atribuição de funções, uma atribuição de negação anexa um conjunto de ações de negação a um utilizador, grupo, principal de serviço ou identidade gerida num determinado âmbito para o propósito de negar o acesso. Uma atribuição de papel define um conjunto de ações que são permitidas, enquanto uma atribuição de negação define um conjunto de ações que não são permitidas. Por outras palavras, as atribuições de negação impedem os utilizadores de executarem ações especificadas, mesmo que uma atribuição de função lhes conceda acesso. As atribuições de negação têm precedência sobre as atribuições de funções.

Para mais informações, consulte Understand Azure negar atribuições.

Como o Azure RBAC determina se um utilizador tem acesso a um recurso

Seguem-se os passos de alto nível que o Azure RBAC utiliza para determinar se tem acesso a um recurso. Estas medidas aplicam-se aos serviços de Resource Manager do Azure ou de um plano de dados integrados com o Azure RBAC. Isto pode ser útil para compreender se estiver a tentar resolver um problema de acesso.

  1. Um utilizador (ou principal de serviço) obtém um token para o Azure Resource Manager.

    O token inclui as associações a grupos do utilizador (incluindo as associações de grupo transitivas).

  2. O utilizador faz uma chamada da API de REST para o Azure Resource Manager com o token anexado.

  3. O Azure Resource Manager obtém todas as atribuições de função e de negação que se aplicam ao recurso no qual a ação é executada.

  4. Se uma atribuição de negação se aplicar, o acesso é bloqueado. Caso contrário, a avaliação continua.

  5. O Azure Resource Manager restringe as atribuições de funções que se aplicam a este utilizador ou ao respetivo grupo e determina que funções o utilizador tem para este recurso.

  6. O Azure Resource Manager determina se a ação na chamada de API está incluída nas funções que utilizador tem para este recurso. Se as funções incluem Actions que têm um wildcard (*), as permissões eficazes são calculadas subtraindo o NotActions do permitido Actions. Da mesma forma, a mesma subtração é feita para quaisquer ações de dados.

    Actions - NotActions = Effective management permissions

    DataActions - NotDataActions = Effective data permissions

  7. Se o utilizador não tiver um papel na ação no âmbito solicitado, não é permitido o acesso. Caso contrário, quaisquer condições são avaliadas.

  8. Se a atribuição de funções incluir condições, são avaliadas. Caso contrário, o acesso é permitido.

  9. Se as condições forem satisfeitas, é permitido o acesso. Caso contrário, não é permitido o acesso.

O diagrama seguinte é um resumo da lógica de avaliação.

Evaluation logic flowchart for determining access to a resource.

Onde é armazenado o Azure RBAC?

Definições de funções, atribuições de papéis e atribuições de negação são armazenadas globalmente para garantir que você tem acesso aos seus recursos independentemente da região que criou o recurso.

Quando uma atribuição de funções ou qualquer outro dado RBAC do Azure é eliminado, os dados são globalmente eliminados. Os principais que tiveram acesso a um recurso através de dados do Azure RBAC perderão o seu acesso.

Porque é que os dados do Azure RBAC são globais?

Os dados do Azure RBAC são globais para garantir que os clientes possam aceder atempadamente aos recursos, independentemente do local onde estão a aceder. O Azure RBAC é imposto pela Azure Resource Manager, que tem um ponto final global e os pedidos são encaminhados para a região mais próxima para velocidade e resiliência. Por conseguinte, o Azure RBAC deve ser aplicado em todas as regiões e os dados são replicados em todas as regiões. Para mais informações, consulte Resiliency of Azure Resource Manager.

Considere o seguinte exemplo. Arina cria uma máquina virtual na Ásia Oriental. Bob, que é membro da equipa da Arina, trabalha no Estados Unidos. O Bob precisa de aceder à máquina virtual que foi criada na Ásia Oriental. Para conceder ao Bob acesso oportuno à máquina virtual, o Azure precisa de replicar globalmente a tarefa de papel que concede ao Bob acesso à máquina virtual de qualquer lugar onde o Bob esteja.

Diagram showing Azure RBAC data in multiple regions.

Requisitos de licença

A utilização desta funcionalidade é gratuita e incluída na sua subscrição Azure.

Passos seguintes