Che cos'è il controllo degli accessi in base al ruolo di Azure?What is Azure role-based access control (Azure RBAC)?

La gestione dell'accesso per le risorse cloud è una funzione essenziale per qualsiasi organizzazione che usa il cloud.Access management for cloud resources is a critical function for any organization that is using the cloud. Il controllo degli accessi in base al ruolo di Azure consente di gestire gli utenti autorizzati ad accedere alle risorse di Azure, le operazioni che possono eseguire su tali risorse e le aree a cui hanno accesso.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.

Il controllo degli accessi in base al ruolo di Azure è un sistema di autorizzazione basato su Azure Resource Manager che garantisce una gestione con granularità fine degli accessi delle risorse di Azure.Azure RBAC is an authorization system built on Azure Resource Manager that provides fine-grained access management of Azure resources.

Questo video offre una panoramica rapida del Controllo degli accessi in base al ruolo di Azure.This video provides a quick overview of Azure RBAC.

Che cosa è possibile fare con il controllo degli accessi in base al ruolo di Azure?What can I do with Azure RBAC?

Di seguito sono riportati alcuni esempi di ciò che è possibile fare con il controllo degli accessi in base al ruolo di Azure:Here are some examples of what you can do with Azure RBAC:

  • Consentire a un utente di gestire le macchine virtuali in una sottoscrizione e un altro utente a gestire le reti virtualiAllow one user to manage virtual machines in a subscription and another user to manage virtual networks
  • Consentire a un gruppo di amministratori di database di gestire database SQL all'interno di una sottoscrizioneAllow a DBA group to manage SQL databases in a subscription
  • Consentire a un utente di gestire tutte le risorse in un gruppo di risorse, ad esempio le macchine virtuali, i siti Web e le subnetAllow a user to manage all resources in a resource group, such as virtual machines, websites, and subnets
  • Consentire a un'applicazione di accedere a tutte le risorse in un gruppo di risorseAllow an application to access all resources in a resource group

Funzionamento del controllo degli accessi in base al ruolo di AzureHow Azure RBAC works

Per controllare l'accesso alle risorse tramite il controllo degli accessi in base al ruolo di Azure, è necessario assegnare i ruoliThe way you control access to resources using Azure RBAC is to assign Azure roles. Questo è un concetto chiave da comprendere: si tratta di come vengono applicate le autorizzazioni.This is a key concept to understand – it's how permissions are enforced. Un'assegnazione di ruolo è costituita da tre elementi: entità di sicurezza, definizione del ruolo e ambito.A role assignment consists of three elements: security principal, role definition, and scope.

Entità di sicurezzaSecurity principal

Un'entità di sicurezza è un oggetto che rappresenta un utente, un gruppo, un'entità servizio o un'identità gestita che richiede l'accesso alle risorse di Azure.A security principal is an object that represents a user, group, service principal, or managed identity that is requesting access to Azure resources. È possibile assegnare un ruolo a una di queste entità di sicurezza.You can assign a role to any of these security principals.

Entità di sicurezza per un'assegnazione di ruolo

Definizione di ruoloRole definition

Una definizione di ruolo è una raccolta di autorizzazioni,A role definition is a collection of permissions. generalmente chiamata ruolo.It's typically just called a role. Una definizione di ruolo elenca le operazioni che è possibile eseguire, ad esempio lettura, scrittura ed eliminazione,A role definition lists the operations that can be performed, such as read, write, and delete. I ruoli possono essere di livello superiore, ad esempio quello di proprietario, o specifici, ad esempio quello di lettore di macchina virtuale.Roles can be high-level, like owner, or specific, like virtual machine reader.

Definizione di ruolo per un'assegnazione di ruolo

Azure include diversi ruoli predefiniti che è possibile usare.Azure includes several built-in roles that you can use. Ad esempio, il ruolo Collaboratore Macchina virtuale consente a un utente di creare e gestire macchine virtuali.For example, the Virtual Machine Contributor role allows a user to create and manage virtual machines. Se i ruoli predefiniti non soddisfano le esigenze specifiche dell'organizzazione, è possibile creare ruoli personalizzati di Azure.If the built-in roles don't meet the specific needs of your organization, you can create your own Azure custom roles.

Questo video offre una panoramica rapida dei ruoli predefiniti e dei ruoli personalizzati.This video provides a quick overview of built-in roles and custom roles.

Azure dispone di operazioni sui dati che consentono di concedere l'accesso ai dati all'interno di un oggetto.Azure has data operations that enable you to grant access to data within an object. Ad esempio, se un utente dispone dell'accesso in lettura ai dati per un account di archiviazione, può leggere i BLOB o i messaggi all'interno di tale account.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.

Per altre informazioni, vedere Informazioni sulle definizioni dei ruoli di Azure.For more information, see Understand Azure role definitions.

ScopeScope

Ambito è il set di risorse a cui si applica l'accesso.Scope is the set of resources that the access applies to. Quando si assegna un ruolo, è possibile limitare ulteriormente le azioni consentite definendo un ambito.When you assign a role, you can further limit the actions allowed by defining a scope. Ciò è utile se si intende creare un collaboratore di siti Web, ma solo per un gruppo di risorse.This is helpful if you want to make someone a Website Contributor, but only for one resource group.

In Azure, è possibile specificare un ambito su quattro livelli: gruppo di gestione, sottoscrizione, gruppo di risorse o risorsa.In Azure, you can specify a scope at four levels: management group, subscription, resource group, or resource. Gli ambiti sono strutturati in una relazione padre-figlio.Scopes are structured in a parent-child relationship. È possibile assegnare i ruoli a qualsiasi livello dell'ambito.You can assign roles at any of these levels of scope.

Ambito per un'assegnazione di ruolo

Per altre informazioni sull'ambito, vedere Informazioni sull'ambito.For more information about scope, see Understand scope.

Assegnazioni di ruoliRole assignments

Un'assegnazione di ruolo è il processo di associazione di una definizione di ruolo a un utente, un gruppo, un'entità servizio o un'identità gestita in un determinato ambito allo scopo di concedere l'accesso.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. L'accesso viene concesso mediante la creazione di un'assegnazione di ruolo e viene revocato rimuovendo un'assegnazione di ruolo.Access is granted by creating a role assignment, and access is revoked by removing a role assignment.

Lo schema seguente mostra un esempio di assegnazione di ruolo.The following diagram shows an example of a role assignment. In questo esempio, al gruppo marketing è stato assegnato il ruolo di collaboratore per il gruppo di risorse pharma-sales.In this example, the Marketing group has been assigned the Contributor role for the pharma-sales resource group. Ciò significa che gli utenti del gruppo marketing possono creare o gestire le risorse di Azure nel gruppo di risorse pharma-sales.This means that users in the Marketing group can create or manage any Azure resource in the pharma-sales resource group. Gli utenti marketing non hanno accesso alle risorse all'esterno del gruppo di risorse pharma-sales, a meno che non facciano parte di un'altra assegnazione di ruolo.Marketing users do not have access to resources outside the pharma-sales resource group, unless they are part of another role assignment.

Assegnazione di ruolo per controllare l'accesso

È possibile assegnare i ruoli usando il portale di Azure, l'interfaccia della riga di comando di Azure, Azure PowerShell, Azure SDK o le API REST.You can assign roles using the Azure portal, Azure CLI, Azure PowerShell, Azure SDKs, or REST APIs.

Per altre informazioni, vedere la procedura per assegnare un ruolo di Azure.For more information, see Steps to assign an Azure role.

Più assegnazioni di ruoloMultiple role assignments

Cosa succede se si hanno più assegnazioni di ruolo sovrapposte?So what happens if you have multiple overlapping role assignments? Il controllo degli accessi in base al ruolo di Azure è un modello additivo, per cui le autorizzazioni effettive corrispondono alla somma delle assegnazioni di ruolo.Azure RBAC is an additive model, so your effective permissions are the sum of your role assignments. Nell'esempio seguente a un utente viene concesso il ruolo Collaboratore nell'ambito della sottoscrizione e il ruolo Lettore in un gruppo di risorse.Consider the following example where a user is granted the Contributor role at the subscription scope and the Reader role on a resource group. La somma delle autorizzazioni di collaboratore e delle autorizzazioni di lettura è effettivamente il ruolo Collaboratore per la sottoscrizione.The sum of the Contributor permissions and the Reader permissions is effectively the Contributor role for the subscription. Quindi, in questo caso, l'assegnazione del ruolo Lettore non ha alcun impatto.Therefore, in this case, the Reader role assignment has no impact.

Più assegnazioni di ruolo

Assegnazioni di rifiutoDeny assignments

In precedenza, il controllo degli accessi in base al ruolo di Azure era un modello per il solo consenso, ma ora supporta in modo limitato le assegnazioni di rifiuto.Previously, Azure RBAC was an allow-only model with no deny, but now Azure RBAC supports deny assignments in a limited way. Analogamente a un'assegnazione di ruolo, un'assegnazione di rifiuto associa un set di azioni di rifiuto a un utente, un gruppo, un'entità servizio o un'identità gestita in un determinato ambito allo scopo di rifiutare l'accesso.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. Un'assegnazione di ruolo definisce un set di azioni consentite, mentre un'assegnazione di rifiuto definisce un set di azioni non consentite.A role assignment defines a set of actions that are allowed, while a deny assignment defines a set of actions that are not allowed. In altre parole, le assegnazioni di rifiuto impediscono agli utenti di eseguire azioni specificate, anche se un'assegnazione di ruolo concede loro l'accesso.In other words, deny assignments block users from performing specified actions even if a role assignment grants them access. Le assegnazioni di rifiuto hanno la precedenza sulle assegnazioni di ruolo.Deny assignments take precedence over role assignments.

Per altre informazioni, vedere Informazioni sulle assegnazioni di rifiuto di Azure.For more information, see Understand Azure deny assignments.

Come il controllo degli accessi in base al ruolo di Azure determina se un utente può accedere a una risorsaHow Azure RBAC determines if a user has access to a resource

Di seguito è indicata la procedura generale usata dal controllo degli accessi in base al ruolo per determinare se l'utente ha accesso a una risorsa nel piano di gestione.The following are the high-level steps that Azure RBAC uses to determine if you have access to a resource on the management plane. Può essere utile se si sta tentando di risolvere un problema di accesso.This is helpful to understand if you are trying to troubleshoot an access issue.

  1. Un utente (o entità servizio) acquisisce un token per Azure Resource Manager.A user (or service principal) acquires a token for Azure Resource Manager.

    Il token include le appartenenze a gruppi dell'utente (incluse le appartenenze a gruppi transitive).The token includes the user's group memberships (including transitive group memberships).

  2. L'utente effettua una chiamata API REST ad Azure Resource Manager con il token associato.The user makes a REST API call to Azure Resource Manager with the token attached.

  3. Azure Resource Manager recupera tutte le assegnazioni di ruolo e le assegnazioni di rifiuto che si applicano alla risorsa su cui viene eseguita l'azione.Azure Resource Manager retrieves all the role assignments and deny assignments that apply to the resource upon which the action is being taken.

  4. Azure Resource Manager restringe le assegnazioni di ruolo a quelle che si applicano all'utente o al gruppo corrispondente e determina i ruoli di cui l'utente dispone per questa risorsa.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. Azure Resource Manager determina se l'azione nella chiamata API è inclusa nei ruoli di cui l'utente dispone per questa risorsa.Azure Resource Manager determines if the action in the API call is included in the roles the user has for this resource.

  6. Se l'utente non ha un ruolo con l'azione nell'ambito richiesto, l'accesso non è consentito.If the user doesn't have a role with the action at the requested scope, access is not granted. In caso contrario, Azure Resource Manager controlla se si applica un'assegnazione di rifiuto.Otherwise, Azure Resource Manager checks if a deny assignment applies.

  7. Se si applica un'assegnazione di rifiuto, l'accesso viene bloccato.If a deny assignment applies, access is blocked. In caso contrario, l'accesso viene concesso.Otherwise access is granted.

Requisiti relativi alle licenzeLicense requirements

L'uso di questa funzionalità è gratuito ed è incluso nella sottoscrizione di Azure.Using this feature is free and included in your Azure subscription.

Passaggi successiviNext steps