O que é o RBAC do Azure (controle de acesso baseado em função do Azure)?What is Azure role-based access control (Azure RBAC)?

O gerenciamento de acesso para recursos de nuvem é uma função crítica para qualquer organização que esteja usando a nuvem.Access management for cloud resources is a critical function for any organization that is using the cloud. 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.Azure role-based access control (Azure RBAC) helps you manage who has access to Azure resources, what they can do with those resources, and what areas they have access to.

O RBAC do Azure é um sistema de autorização baseado no Azure Resource Manager que fornece gerenciamento de acesso refinado dos recursos do Azure.Azure RBAC is an authorization system built on Azure Resource Manager that provides fine-grained access management of Azure resources.

Este vídeo fornece uma visão geral rápida do RBAC do Azure.This video provides a quick overview of Azure RBAC.

O que posso fazer com o RBAC do Azure?What can I do with Azure RBAC?

Aqui estão alguns exemplos do que você pode fazer com o RBAC do Azure:Here are some examples of what you can do with Azure RBAC:

  • Permitir que um usuário gerencie máquinas virtuais em uma assinatura e outro usuário gerencie redes virtuaisAllow one user to manage virtual machines in a subscription and another user to manage virtual networks
  • Permitir que um grupo de DBA gerencie bancos de dados SQL em uma assinaturaAllow a DBA group to manage SQL databases in a subscription
  • Permitir que um usuário gerencie todos os recursos em um grupo de recursos, como máquinas virtuais, sites e sub-redesAllow a user to manage all resources in a resource group, such as virtual machines, websites, and subnets
  • Permitir que um aplicativo acesse todos os recursos em um grupo de recursosAllow an application to access all resources in a resource group

Como o RBAC do Azure funcionaHow Azure RBAC works

A maneira de controlar o acesso aos recursos usando o RBAC do Azure é atribuir funções do Azure.The way you control access to resources using Azure RBAC is to assign Azure roles. Esse é um conceito fundamental que deve ser entendido: como as permissões são aplicadas.This is a key concept to understand – it's how permissions are enforced. Uma atribuição de função consiste em três elementos: entidade de segurança, definição de função e escopo.A role assignment consists of three elements: security principal, role definition, and scope.

Entidade de segurançaSecurity principal

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.A security principal is an object that represents a user, group, service principal, or managed identity that is requesting access to Azure resources. Você pode atribuir uma função a qualquer uma dessas entidades de segurança.You can assign a role to any of these security principals.

Entidade de segurança para uma atribuição de função

Definição de funçãoRole definition

Uma definição de função é um conjunto de permissões.A role definition is a collection of permissions. Normalmente ela é chamada apenas de função.It's typically just called a role. Uma definição de função lista as operações que podem ser executadas, como leitura, gravação e exclusão.A role definition lists the operations that can be performed, such as read, write, and delete. Funções podem ser de alto nível, como proprietário, ou específicas, como leitor de máquina virtual.Roles can be high-level, like owner, or specific, like virtual machine reader.

Definição de função para uma atribuição de função

O Azure inclui várias funções internas que você pode usar.Azure includes several built-in roles that you can use. Por exemplo, a função Colaborador de Máquina Virtual permite que um usuário crie e gerencie máquinas virtuais.For example, the Virtual Machine Contributor role allows a user to create and manage virtual machines. 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.If the built-in roles don't meet the specific needs of your organization, you can create your own Azure custom roles.

Este vídeo fornece uma visão geral rápida das funções internas e das funções personalizadas.This video provides a quick overview of built-in roles and custom roles.

O Azure tem operações de dados que permitem a você conceder acesso a dados em um objeto.Azure has data operations that enable you to grant access to data within an object. 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.For example, if a user has read data access to a storage account, then they can read the blobs or messages within that storage account.

Para saber mais, veja Noções básicas sobre definições de função do Azure.For more information, see Understand Azure role definitions.

EscopoScope

Escopo é o conjunto de recursos ao qual o acesso se aplica.Scope is the set of resources that the access applies to. Quando você atribui uma função, você pode limitar ainda mais as ações permitidas definindo um escopo.When you assign a role, you can further limit the actions allowed by defining a scope. Isso será útil se você quiser tornar alguém um colaborador do site, mas apenas para um grupo de recursos.This is helpful if you want to make someone a Website Contributor, but only for one resource group.

No Azure, você pode especificar um escopo em quatro níveis: grupo de gerenciamento, assinatura, grupo de recursos ou recurso.In Azure, you can specify a scope at four levels: management group, subscription, resource group, or resource. Os escopos são estruturados em uma relação pai-filho.Scopes are structured in a parent-child relationship. Você pode atribuir funções em qualquer um desses níveis de escopo.You can assign roles at any of these levels of scope.

Escopo para uma atribuição de função

Para obter mais informações sobre escopo, confira Noções básicas de escopo.For more information about scope, see Understand scope.

Atribuições de funçãoRole assignments

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.A role assignment is the process of attaching a role definition to a user, group, service principal, or managed identity at a particular scope for the purpose of granting access. O acesso é concedido criando uma atribuição de função, e é revogado removendo uma atribuição de função.Access is granted by creating a role assignment, and access is revoked by removing a role assignment.

O diagrama a seguir mostra um exemplo de uma atribuição de função.The following diagram shows an example of a role assignment. Neste exemplo, o grupo de Marketing foi atribuído à função Colaborador para o grupo de recursos vendas farmacêuticas.In this example, the Marketing group has been assigned the Contributor role for the pharma-sales resource group. 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.This means that users in the Marketing group can create or manage any Azure resource in the pharma-sales resource group. 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.Marketing users do not have access to resources outside the pharma-sales resource group, unless they are part of another role assignment.

Atribuição de função para controlar o acesso

Você pode atribuir funções usando o portal do Azure, a CLI do Azure, o Azure PowerShell, SDKs do Azure ou APIs REST.You can assign roles using the Azure portal, Azure CLI, Azure PowerShell, Azure SDKs, or REST APIs.

Para obter mais informações, confira Etapas para atribuir uma função do Azure.For more information, see Steps to assign an Azure role.

Atribuições de função múltiplasMultiple role assignments

O que acontece se você tem várias atribuições de função sobrepostas?So what happens if you have multiple overlapping role assignments? O RBAC do Azure é um modelo aditivo e, portanto, suas permissões efetivas são a soma das atribuições de função.Azure RBAC is an additive model, so your effective permissions are the sum of your role assignments. 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.Consider the following example where a user is granted the Contributor role at the subscription scope and the Reader role on a resource group. A soma das permissões de Colaborador e de Leitor é, efetivamente, a função de Colaborador para a assinatura.The sum of the Contributor permissions and the Reader permissions is effectively the Contributor role for the subscription. Portanto, nesse caso, a atribuição de função Leitor não tem nenhum impacto.Therefore, in this case, the Reader role assignment has no impact.

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

Negar atribuiçõesDeny assignments

Anteriormente, o RBAC do Azure era um modelo somente de permissão, sem negação, mas agora ele é compatível com atribuições de negações, com limitações.Previously, Azure RBAC was an allow-only model with no deny, but now Azure RBAC supports deny assignments in a limited way. Semelhante a uma atribuição de função, uma atribuição de negação anexa um conjunto de ações de negação a um usuário, grupo, entidade de serviço ou identidade gerenciada em um escopo específico com o objetivo de negar acesso.Similar to a role assignment, a deny assignment attaches a set of deny actions to a user, group, service principal, or managed identity at a particular scope for the purpose of denying access. Uma atribuição de função 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.A role assignment defines a set of actions that are allowed, while a deny assignment defines a set of actions that are not allowed. Em outras palavras, as atribuições de negação impedem que os usuários executem ações especificadas, mesmo quando uma atribuição de função lhes concede acesso.In other words, deny assignments block users from performing specified actions even if a role assignment grants them access. As atribuições de negação têm precedência sobre as atribuições de função.Deny assignments take precedence over role assignments.

Para obter mais informações, confira Compreender atribuições de negação do Azure.For more information, see Understand Azure deny assignments.

Como o RBAC do Azure determina se um usuário tem acesso a um recursoHow Azure RBAC determines if a user has access to a resource

Veja a seguir as etapas gerais que o RBAC do Azure usa para determinar se você tem acesso a um recurso no plano de gerenciamento.The following are the high-level steps that Azure RBAC uses to determine if you have access to a resource on the management plane. Convém entender isso quando você está tentando solucionar problemas de acesso.This is helpful to understand if you are trying to troubleshoot an access issue.

  1. Um usuário (ou uma entidade de serviço) adquire um token do Azure Resource Manager.A user (or service principal) acquires a token for Azure Resource Manager.

    O token inclui as associações a um grupo do usuário (incluindo associações de grupo transitivas).The token includes the user's group memberships (including transitive group memberships).

  2. O usuário faz uma chamada à API REST para o Azure Resource Manager com o token anexado.The user makes a REST API call to Azure Resource Manager with the token attached.

  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.Azure Resource Manager retrieves all the role assignments and deny assignments that apply to the resource upon which the action is being taken.

  4. 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.Azure Resource Manager narrows the role assignments that apply to this user or their group and determines what roles the user has for this resource.

  5. 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.Azure Resource Manager determines if the action in the API call is included in the roles the user has for this resource.

  6. Se o usuário não tem uma função com a ação no escopo solicitado, o acesso não é concedido.If the user doesn't have a role with the action at the requested scope, access is not granted. Caso contrário, o Azure Resource Manager verifica se uma atribuição de negação se aplica.Otherwise, Azure Resource Manager checks if a deny assignment applies.

  7. Se houver uma atribuição de negação aplicável, o acesso será bloqueado.If a deny assignment applies, access is blocked. Caso contrário, o acesso será permitido.Otherwise access is granted.

Requisitos de licençaLicense requirements

O uso desse recurso é gratuito e está incluído em sua assinatura do Azure.Using this feature is free and included in your Azure subscription.

Próximas etapasNext steps