O que é o RBAC do Azure (controle de acesso baseado em função do Azure)?

O gerenciamento de acesso para recursos de nuvem é uma função crítica para qualquer organização que esteja usando a nuvem. O RBAC do Azure (controle de acesso baseado em funções do Azure) ajuda a gerenciar quem tem acesso aos recursos do Azure, o que pode fazer com esses recursos e a quais áreas tem acesso.

O RBAC do Azure é um sistema de autorização baseado no Azure Resource Manager que fornece gerenciamento de acesso refinado para recursos do Azure.

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

O que posso fazer com o RBAC do Azure?

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

  • Permitir que um usuário gerencie máquinas virtuais em uma assinatura e outro usuário gerencie redes virtuais
  • Permitir que um grupo de DBA gerencie bancos de dados SQL em uma assinatura
  • Permitir que um usuário gerencie todos os recursos em um grupo de recursos, como máquinas virtuais, sites e sub-redes
  • Permitir que um aplicativo acesse todos os recursos em um grupo de recursos

Como o RBAC do Azure funciona

A maneira de controlar o acesso aos recursos usando o RBAC do Azure é atribuir funções do Azure. Esse é um conceito fundamental que deve ser entendido: como as permissões são aplicadas. Uma atribuição de função consiste em três elementos: entidade de segurança, definição de função e escopo.

Entidade de segurança

Uma entidade de segurança é um objeto que representa um usuário, grupo, entidade de serviço ou uma identidade gerenciada que está solicitando 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 de função

Uma definição de função é um conjunto de permissões. Normalmente ela é chamada apenas de função. Uma definição de função lista as ações que podem ser executadas, como leitura, gravação e exclusão. Funções podem ser de alto nível, 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 internas que você pode usar. Por exemplo, a função Colaborador de Máquina Virtual permite que um usuário crie e gerencie máquinas virtuais. Se as funções internas não atenderem às necessidades específicas de sua organização, você poderá criar funções personalizadas do Azure próprias.

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

O Azure tem ações de dados que lhe permitem acesso a dados em um objeto. Por exemplo, se um usuário tem acesso de leitura de dados para uma conta de armazenamento, eles podem ler blobs ou mensagens dentro dessa conta de armazenamento.

Para saber mais, veja Noções básicas sobre definições de função do Azure.

Escopo

Escopo é o conjunto de recursos ao qual o acesso se aplica. Quando você atribui uma função, você pode limitar ainda mais as ações permitidas definindo um escopo. Isso será útil se você quiser tornar alguém um colaborador do 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 escopos são estruturados em uma relação pai-filho. 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, confira Noções básicas de escopo.

Atribuições de função

Uma atribuição de função é o processo de associar 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 criando uma atribuição de função, e é revogado removendo uma atribuição de função.

O diagrama a seguir mostra um exemplo de uma atribuição de função. Neste exemplo, o grupo de Marketing foi atribuído à função Colaborador para o grupo de recursos vendas farmacêuticas. Isso significa que os usuários do grupo de Marketing podem criar ou gerenciar qualquer recurso do Azure no grupo de recursos de vendas do setor farmacêutico. Os usuários de Marketing não possuem acesso a recursos fora do grupo de recursos de vendas do setor farmacêutico, a menos que sejam 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, SDKs do Azure ou APIs REST.

Para obter mais informações, confira 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.

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

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

Diagram showing how multiple role assignments overlap.

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

Veja a seguir as etapas de alto nível usadas pelo RBAC do Azure para determinar se você tem acesso a um recurso. Essas etapas se aplicam ao Azure Resource Manager ou aos serviços de plano de dados integrados ao RBAC do Azure. Isso é útil para entender se você estiver tentando solucionar um problema de acesso.

  1. Um usuário (ou uma entidade de serviço) adquire um token do Azure Resource Manager.

    O token inclui as associações a um grupo do usuário (incluindo associações de grupo transitivas).

  2. O usuário faz uma chamada à API REST para o Azure Resource Manager com o token anexado.

  3. O Azure Resource Manager recupera todas as atribuições de função e as atribuições de negação que se aplicam ao recurso no qual a ação está sendo realizada.

  4. Se houver uma atribuição de negação aplicável, o acesso será bloqueado. Caso contrário, a avaliação continuará.

  5. O Azure Resource Manager restringe as atribuições de função que se aplicam a esse usuário ou ao seu grupo e determina as funções que o usuário tem para este recurso.

  6. O Azure Resource Manager determina se a ação na chamada à API está incluída nas funções que o usuário tem para este recurso. Se as funções incluírem Actions que têm um curinga (*), as permissões efetivas serão calculadas pela subtração das NotActions das Actions permitidas. Da mesma forma, a mesma subtração é feita para qualquer ação de dados.

    Actions - NotActions = Effective management permissions

    DataActions - NotDataActions = Effective data permissions

  7. Se o usuário não tem uma função com a ação no escopo solicitado, o acesso não é permitido. Caso contrário, todas as condições são avaliadas.

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

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

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

Evaluation logic flowchart for determining access to a resource.

Onde os dados do RBAC do Azure 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 em 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. Entidades que tinham acesso a um recurso por meio de dados do RBAC do Azure perderão o acesso.

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

Os dados do RBAC do Azure são globais para garantir que os clientes possam acessar os recursos em tempo hábil, independentemente de onde estejam 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 saber mais, consulte Resiliência do Azure Resource Manager.

Considere o exemplo a seguir. A Arina cria uma máquina virtual no Leste da Ásia. Bob, que é membro da equipe de Arina, trabalha no Estados Unidos. Bob precisa acessar a máquina virtual que foi criada no Leste da Ásia. Para conceder ao Bob acesso em tempo há tempo à máquina virtual, o Azure precisa replicar globalmente a atribuição de função que concede ao Bob acesso à máquina virtual de qualquer lugar em que 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óximas etapas