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

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 consente la gestione degli utenti autorizzati ad accedere alle risorse di Azure, delle operazioni che possono eseguire su tali risorse e delle aree a cui hanno accesso.Role-based access control (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 è un sistema di autorizzazione basato su Azure Resource Manager che garantisce una gestione con granularità fine degli accessi delle risorse di Azure.RBAC is an authorization system built on Azure Resource Manager that provides fine-grained access management of Azure resources.

Quali operazioni si possono eseguire con il controllo degli accessi in base al ruolo?What can I do with RBAC?

Di seguito sono riportati alcuni esempi di operazioni eseguibili con il controllo degli accessi in base al ruolo:Here are some examples of what you can do with 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

Procedure consigliate per l'uso del controllo degli accessi in base al ruoloBest practice for using RBAC

Usando il Controllo degli accessi in base al ruolo, è possibile separare i compiti all'interno del team e concedere agli utenti solo la quantità di accesso di cui hanno bisogno per svolgere il proprio lavoro.Using RBAC, you can segregate duties within your team and grant only the amount of access to users that they need to perform their jobs. Invece di concedere a tutti autorizzazioni senza restrizioni per la sottoscrizione o le risorse di Azure, è possibile consentire solo determinate azioni in un particolare ambito.Instead of giving everybody unrestricted permissions in your Azure subscription or resources, you can allow only certain actions at a particular scope.

Quando si pianifica la strategia di controllo degli accessi, è consigliabile concedere agli utenti almeno il privilegio per completare la propria sessione di lavoro.When planning your access control strategy, it's a best practice to grant users the least privilege to get their work done. Il diagramma seguente mostra uno schema consigliato per l'uso del controllo degli accessi in base al ruolo.The following diagram shows a suggested pattern for using RBAC.

Controllo degli accessi in base al ruolo e privilegi minimi

Come funziona il controllo degli accessi in base al ruoloHow RBAC works

Il modo in cui si controlla l'accesso alle risorse utilizzando il controllo degli accessi in base al ruolo è quello di creare assegnazioni di ruolo.The way you control access to resources using RBAC is to create role assignments. Questo è un concetto chiave da comprendere: si tratta di come sono 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.

Entità di sicurezza per un'assegnazione di ruolo

  • Utente: un soggetto che dispone di un profilo in Azure Active Directory.User - An individual who has a profile in Azure Active Directory. È anche possibile assegnare ruoli agli utenti in altri tenant.You can also assign roles to users in other tenants. Per informazioni sugli utenti in altre organizzazioni, vedere Azure Active Directory B2B.For information about users in other organizations, see Azure Active Directory B2B.
  • Gruppo: un set di utenti creato in Azure Active Directory.Group - A set of users created in Azure Active Directory. Quando si assegna un ruolo a un gruppo, tutti gli utenti all'interno di tale gruppo dispongono del ruolo appropriato.When you assign a role to a group, all users within that group have that role.
  • Entità servizio: un'identità di sicurezza utilizzata da applicazioni o servizi per accedere a specifiche risorse di Azure.Service principal - A security identity used by applications or services to access specific Azure resources. È possibile pensare a questo elemento come a un'identità utente (nome utente e password o certificato) per un'applicazione.You can think of it as a user identity (username and password or certificate) for an application.
  • Identità gestita: un'identità in Azure Active Directory che viene gestita automaticamente da Azure.Managed identity - An identity in Azure Active Directory that is automatically managed by Azure. Le identità gestite vengono in genere usate durante lo sviluppo di applicazioni cloud per gestire le credenziali per l'autenticazione ai servizi di Azure.You typically use managed identities when developing cloud applications to manage the credentials for authenticating to Azure services.

Definizione di ruoloRole definition

Una definizione di ruolo è una raccolta di autorizzazioni,A role definition is a collection of permissions. talvolta semplicemente chiamata ruolo.It's sometimes 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. Di seguito sono elencati quattro fondamentali ruoli predefiniti.The following lists four fundamental built-in roles. I primi tre si applicano a tutti i tipi di risorse.The first three apply to all resource types.

  • Proprietario: ha accesso completo a tutte le risorse, compreso il diritto di delegare l'accesso ad altri utenti.Owner - Has full access to all resources including the right to delegate access to others.
  • Collaboratore: può creare e gestire tutti i tipi di risorse di Azure, ma non può concedere l'accesso ad altri.Contributor - Can create and manage all types of Azure resources but can’t grant access to others.
  • Lettore: può visualizzare le risorse di Azure esistenti.Reader - Can view existing Azure resources.
  • Amministratore Accesso utenti: consente di gestire l'accesso degli utenti alle risorse di Azure.User Access Administrator - Lets you manage user access to Azure resources.

Il resto dei ruoli predefiniti consente la gestione di risorse di Azure specifiche.The rest of the built-in roles allow management of specific Azure resources. 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 per le risorse di Azure.If the built-in roles don't meet the specific needs of your organization, you can create your own custom roles for Azure resources.

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 del ruolo per le risorse di Azure.For more information, see Understand role definitions for Azure resources.

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 più livelli: gruppo di gestione, sottoscrizione, gruppo di risorse o risorsa.In Azure, you can specify a scope at multiple 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.

Ambito per un'assegnazione di ruolo

Quando si concede l'accesso in un ambito padre, tali autorizzazioni vengono ereditate negli ambiti figlio.When you grant access at a parent scope, those permissions are inherited to the child scopes. Ad esempio:For example:

  • Se si assegna il ruolo Proprietario a un utente nell'ambito del gruppo di gestione, tale utente può gestire tutto in tutte le sottoscrizioni nel gruppo di gestione.If you assign the Owner role to a user at the management group scope, that user can manage everything in all subscriptions in the management group.
  • Se si assegna il ruolo Lettore a un gruppo nell'ambito di sottoscrizione, i membri di tale gruppo possono visualizzare ogni gruppo di risorse e risorsa nella sottoscrizione.If you assign the Reader role to a group at the subscription scope, the members of that group can view every resource group and resource in the subscription.
  • Se si assegna il ruolo Collaboratore a un'applicazione nell'ambito del gruppo di risorse, è possibile gestire risorse di tutti i tipi in quel gruppo di risorse, ma non altri gruppi di risorse nella sottoscrizione.If you assign the Contributor role to an application at the resource group scope, it can manage resources of all types in that resource group, but not other resource groups in the subscription.

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 creare assegnazioni di ruolo nel portale di Azure, nell'interfaccia della riga di comando di Azure, in Azure PowerShell, tramite gli SDK Azure o le API REST.You can create role assignments using the Azure portal, Azure CLI, Azure PowerShell, Azure SDKs, or REST APIs. È possibile includere fino a 2000 assegnazioni di ruolo in ogni sottoscrizione e 500 assegnazioni di ruolo in ogni gruppo di gestione.You can have up to 2000 role assignments in each subscription and 500 role assignments in each management group. Per creare e rimuovere assegnazioni di ruoli, l'utente deve disporre dell'autorizzazione Microsoft.Authorization/roleAssignments/*.To create and remove role assignments, you must have Microsoft.Authorization/roleAssignments/* permission. Questa autorizzazione viene concessa tramite il ruolo Proprietario o Amministratore accessi utente.This permission is granted through the Owner or User Access Administrator roles.

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 è un modello additivo, quindi le autorizzazioni effettive corrispondono alla somma delle assegnazioni di ruolo.RBAC is an additive model, so your effective permissions are the addition 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 di quelle di Lettore rende effettivo il ruolo di Collaboratore per il gruppo di risorse.The addition of the Contributor permissions and the Reader permissions is effectively the Contributor role for the resource group. 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 era un modello per il solo consenso, ma ora supporta in modo limitato le assegnazioni di rifiuto.Previously, RBAC was an allow-only model with no deny, but now 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 per le risorse di Azure.For more information, see Understand deny assignments for Azure resources.

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

Di seguito è indicata la procedura generale seguita 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 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