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

A gestão de acesso dos recursos da cloud é uma função crucial para qualquer organização que utilize 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 RBAC do Azure é um sistema de autorização criado no Azure Resource Manager que fornece gerenciamento de acesso refinado aos recursos do 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 você pode fazer com o 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 RBAC do Azure

A maneira como você controla o acesso aos recursos usando o RBAC do Azure é atribuir funções do 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. Você pode atribuir uma função a qualquer uma dessas entidades de segurança.

Diagram showing the security principal types for a role assignment.

Definição da função

Uma definição de função é uma coleção de permissões. Normalmente, é chamado apenas de papel. Uma definição de função lista as ações que podem ser executadas, como leitura, gravação e exclusão. 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árias funções incorporadas que pode utilizar. Por exemplo, a função Contribuidor de Máquina Virtual permite a um utilizador criar e gerir máquinas virtuais. Se as funções internas não atenderem às necessidades específicas da sua organização, você poderá criar suas próprias funções personalizadas do Azure.

Este vídeo fornece uma visão geral rápida de funções internas e funções personalizadas.

O Azure tem ações de dados que 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 obter mais informações, consulte Compreender as definições de função do Azure.

Âmbito

Escopo é o conjunto de recursos ao qual o acesso se aplica. Ao atribuir uma função, pode limitar as ações permitidas ao definir um âmbito. Isto é útil se quiser tornar alguém Contribuidor de Site, mas apenas para um grupo de recursos.

No Azure, você pode especificar um escopo em quatro níveis: grupo de gerenciamento, assinatura, grupo de recursos ou recurso. Os âmbitos são estruturados numa relação de principal-subordinado. Você pode atribuir funções em qualquer um desses níveis de escopo.

Diagram showing scope levels for a role assignment.

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

Atribuições de funções

Uma atribuição de função é o processo de anexar uma definição de função a um usuário, grupo, entidade de serviço ou identidade gerenciada em um escopo específico com a finalidade de conceder 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 usuários de marketing não têm acesso a recursos fora do 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.

Você pode atribuir funções usando o portal do Azure, a CLI do Azure, o Azure PowerShell, os SDKs do Azure ou as APIs REST.

Para obter mais informações, consulte Etapas para atribuir uma função do Azure.

Grupos

As atribuições de função são transitivas para grupos, o que significa que, se um usuário for membro de um grupo e esse grupo for membro de outro grupo que tenha uma atribuição de função, o usuário terá as permissões na atribuição de função.

Diagram showing how role assignments are transitive for groups.

Várias atribuições de função

Então, o que acontece se você tiver várias atribuições de função sobrepostas? O RBAC do Azure é um modelo aditivo, portanto, suas permissões efetivas são a soma de suas atribuições de função. Considere o exemplo a seguir em que um usuário recebe a função de Colaborador no escopo da assinatura e a função de Leitor em um grupo de recursos. A soma das permissões de Colaborador e de Leitor é efetivamente a função de Colaborador da assinatura. Portanto, nesse caso, a atribuição da função Leitor não tem impacto.

Diagram showing how multiple role assignments overlap.

Como o RBAC do Azure determina se um usuário tem acesso a um recurso

A seguir estão as etapas de alto nível que o RBAC do Azure usa para determinar se você tem acesso a um recurso. Estas etapas se aplicam ao Azure Resource Manager ou aos serviços de plano de dados integrados ao Azure RBAC. Isso é útil para entender se você está tentando solucionar 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 incluírem Actions que têm um curinga (*), as permissões efetivas serã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 usuário não tiver uma função com a ação no escopo solicitado, o acesso não será permitido. Caso contrário, todas as condições são avaliadas.

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

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

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

Evaluation logic flowchart for determining access to a resource.

Onde os dados do Azure RBAC são armazenados?

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

Quando uma atribuição de função ou qualquer outro dado do RBAC do Azure é excluído, os dados são excluídos globalmente. As entidades que tinham acesso a um recurso por meio de dados RBAC do Azure perderão seu acesso.

Por que os dados do Azure RBAC são globais?

Os dados do RBAC do Azure são globais para garantir que os clientes possam acessar recursos em tempo hábil, independentemente de onde estão acessando. O RBAC do Azure é imposto pelo Azure Resource Manager, que tem um ponto de extremidade global e as solicitações são roteadas para a região mais próxima para velocidade e resiliência. Portanto, o RBAC do Azure deve ser imposto em todas as regiões e os dados são replicados para todas as regiões. Para obter mais informações, consulte Resiliência do Azure Resource Manager.

Considere o seguinte exemplo. Arina cria uma máquina virtual no Leste Asiático. Bob, que é membro da equipe de Arina, trabalha nos Estados Unidos. Bob precisa acessar a máquina virtual que foi criada no Leste Asiático. Para conceder a Bob acesso oportuno à máquina virtual, o Azure precisa replicar globalmente a atribuição de função que concede a Bob acesso à máquina virtual de qualquer lugar onde Bob esteja.

Diagram showing Azure RBAC data in multiple regions.

Requisitos de licença

O uso desse recurso é gratuito e está incluído em sua assinatura do Azure.

Próximos passos