Gestire il controllo degli accessi in base al ruolo con l'interfaccia della riga di comando di AzureManage Role-Based Access Control with the Azure command-line interface

È possibile usare il controllo degli accessi in base al ruolo nel portale di Azure e nell'API di Azure Resource Manager per gestire l'accesso alla sottoscrizione e alle risorse a un livello estremamente specifico.You can use Role-Based Access Control (RBAC) in the Azure portal and Azure Resource Manager API to manage access to your subscription and resources at a fine-grained level. Con questa funzionalità è possibile concedere l'accesso a utenti, gruppi o entità servizio di Active Directory assegnando loro dei ruoli in un determinato ambito.With this feature, you can grant access for Active Directory users, groups, or service principals by assigning some roles to them at a particular scope.

Per usare l'interfaccia della riga di comando di Azure per gestire il controllo degli accessi in base al ruolo, è necessario disporre dei prerequisiti seguenti:Before you can use the Azure command-line interface (CLI) to manage RBAC, you must have the following prerequisites:

Elenco dei ruoliList roles

Elencare tutti i ruoli disponibiliList all available roles

Per elencare tutti i ruoli disponibili, usare:To list all available roles, use:

    azure role list

L'esempio seguente mostra l'elenco di tutti i ruoli disponibili.The following example shows the list of all available roles.

azure role list --json | jq '.[] | {"roleName":.properties.roleName, "description":.properties.description}'

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Elenco di ruoli di Azure - Schermata

Elencare le azioni di un ruoloList actions of a role

Per elencare le azioni di un ruolo, usare:To list the actions of a role, use:

azure role show "<role name>"

L'esempio seguente mostra le azioni dei ruoli Collaboratore e Collaboratore Macchina virtuale.The following example shows the actions of the Contributor and Virtual Machine Contributor roles.

azure role show "contributor" --json | jq '.[] | {"Actions":.properties.permissions[0].actions,"NotActions":properties.permissions[0].notActions}'

azure role show "virtual machine contributor" --json | jq '.[] | .properties.permissions[0].actions'

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Visualizzazione dei ruoli di Azure - Schermata

Elencare l'accessoList access

Elencare le assegnazioni di ruoli valide per un gruppo di risorseList role assignments effective on a resource group

Per elencare le assegnazioni di ruolo in un gruppo di risorse, usare:To list the role assignments that exist in a resource group, use:

azure role assignment list --resource-group <resource group name>

L'esempio seguente indica le assegnazioni di ruolo nel gruppo pharma-sales-projecforcast .The following example shows the role assignments in the pharma-sales-projecforcast group.

azure role assignment list --resource-group pharma-sales-projecforcast --json | jq '.[] | {"DisplayName":.properties.aADObject.displayName,"RoleDefinitionName":.properties.roleName,"Scope":.properties.scope}'

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Elenco di assegnazione di ruoli di Azure per gruppo - Schermata

Elencare i ruoli assegnati a un utenteList role assignments for a user

Per avere un elenco dei ruoli assegnati a un determinato utente e delle assegnazioni ai gruppi di utenti, utilizzare:To list the role assignments for a specific user and the assignments that are assigned to a user's groups, use:

azure role assignment list --signInName <user email>

È anche possibile visualizzare le assegnazioni di ruolo ereditate dai gruppi modificando il comando:You can also see role assignments that are inherited from groups by modifying the command:

azure role assignment list --expandPrincipalGroups --signInName <user email>

L'esempio seguente indica le assegnazioni di ruolo concesse all'utente sameert@aaddemo.com .The following example shows the role assignments that are granted to the sameert@aaddemo.com user. Include i ruoli assegnati direttamente all'utente, oltre ai ruoli ereditati dai gruppi.This includes roles that are assigned directly to the user and roles that are inherited from groups.

azure role assignment list --signInName sameert@aaddemo.com --json | jq '.[] | {"DisplayName":.properties.aADObject.DisplayName,"RoleDefinitionName":.properties.roleName,"Scope":.properties.scope}'

azure role assignment list --expandPrincipalGroups --signInName sameert@aaddemo.com --json | jq '.[] | {"DisplayName":.properties.aADObject.DisplayName,"RoleDefinitionName":.properties.roleName,"Scope":.properties.scope}'

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Elenco di assegnazione di ruoli per utente - Schermata

Concedere l'accessoGrant access

Per concedere l'accesso dopo aver individuato il ruolo da assegnare, usare:To grant access after you have identified the role that you want to assign, use:

azure role assignment create

Assegnare un ruolo a un gruppo nell'ambito della sottoscrizioneAssign a role to group at the subscription scope

Per assegnare un ruolo a un gruppo nell'ambito della sottoscrizione, usare:To assign a role to a group at the subscription scope, use:

azure role assignment create --objectId  <group object id> --roleName <name of role> --subscription <subscription> --scope <subscription/subscription id>

L'esempio seguente assegna il ruolo Reader (Lettore) a Christine Koch Team nell'ambito subscriptions.The following example assigns the Reader role to Christine Koch's Team at the subscription scope.

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Assegnazione di ruoli di Azure creata per gruppo - Schermata

Assegnare un ruolo a un'applicazione nell'ambito della sottoscrizioneAssign a role to an application at the subscription scope

Per assegnare un ruolo a un'applicazione nell'ambito della sottoscrizione, usare:To assign a role to an application at the subscription scope, use:

azure role assignment create --objectId  <applications object id> --roleName <name of role> --subscription <subscription> --scope <subscription/subscription id>

L'esempio seguente assegna il ruolo Contributor (Collaboratore) a un'applicazione Azure AD nella sottoscrizione selezionata.The following example grants the Contributor role to an Azure AD application on the selected subscription.

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Assegnazione di ruoli creata per applicazione

Assegnare un ruolo a un utente nell'ambito di un gruppo di risorseAssign a role to a user at the resource group scope

Per assegnare un ruolo a un utente nell'ambito di un gruppo di risorse, usare:To assign a role to a user at the resource group scope, use:

azure role assignment create --signInName  <user email address> --roleName "<name of role>" --resourceGroup <resource group name>

L'esempio seguente assegna il ruolo Virtual Machine Contributor (Collaboratore Macchina virtuale) all'utente samert@aaddemo.com nell'ambito del gruppo di risorse Pharma-Sales-ProjectForcast.The following example grants the Virtual Machine Contributor role to samert@aaddemo.com user at the Pharma-Sales-ProjectForcast resource group scope.

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Assegnazione di ruoli di Azure creata per utente - Schermata

Assegnare un ruolo a un gruppo nell'ambito delle risorseAssign a role to a group at the resource scope

Per assegnare un ruolo a un gruppo nell'ambito di un gruppo di risorse, usare:To assign a role to a group at the resource scope, use:

azure role assignment create --objectId <group id> --role "<name of role>" --resource-name <resource group name> --resource-type <resource group type> --parent <resource group parent> --resource-group <resource group>

L'esempio seguente assegna il ruolo Virtual Machine Contributor (Collaboratore Macchina virtuale) a un gruppo Azure AD in una subnet.The following example grants the Virtual Machine Contributor role to an Azure AD group on a subnet.

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Assegnazione di ruoli di Azure creata per gruppo - Schermata

Rimuovere un accessoRemove access

Per rimuovere un'assegnazione di ruolo, usare:To remove a role assignment, use:

azure role assignment delete --objectId <object id to from which to remove role> --roleName "<role name>"

L'esempio seguente rimuove l'assegnazione del ruolo Virtual Machine Contributor (Collaboratore Macchina virtuale) dall'utente sammert@aaddemo.com nel gruppo di risorse Pharma-Sales-ProjectForcast.The following example removes the Virtual Machine Contributor role assignment from the sammert@aaddemo.com user on the Pharma-Sales-ProjectForcast resource group. Nell'esempio viene quindi rimossa l'assegnazione del ruolo da un gruppo nella sottoscrizione.The example then removes the role assignment from a group on the subscription.

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Eliminazione dell'assegnazione di ruoli di Azure - Schermata

Creare un ruolo personalizzatoCreate a custom role

Per creare un ruolo personalizzato, usare:To create a custom role, use:

azure role create --inputfile <file path>

Nell'esempio seguente viene creato il ruolo personalizzato denominato Operatore macchina virtuale.The following example creates a custom role called Virtual Machine Operator. Questo ruolo personalizzato concede l'accesso a tutte le operazioni di lettura dei provider di risorse Microsoft.Compute, Microsoft.Storage e Microsoft.Network e concede l'accesso per avviare, riavviare e monitorare le macchine virtuali.This custom role grants access to all read operations of Microsoft.Compute, Microsoft.Storage, and Microsoft.Network resource providers and grants access to start, restart, and monitor virtual machines. Questo ruolo personalizzato può essere usato in due sottoscrizioni.This custom role can be used in two subscriptions. In questo esempio viene usato un file JSON come input.This example uses a JSON file as an input.

JSON - Definizione di ruolo personalizzato - Schermata

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Creazione di ruoli di Azure - Schermata

Modificare un ruolo personalizzatoModify a custom role

Per modificare un ruolo personalizzato, usare il comando azure role list per recuperare la definizione di ruolo.To modify a custom role, first use the azure role list command to retrieve role definition. Successivamente, apportare le modifiche desiderate al file di definizione del ruolo.Second, make the desired changes to the role definition file. Usare infine azure role set per salvare la definizione del ruolo modificata.Finally, use azure role set to save the modified role definition.

azure role set --inputfile <file path>

L'esempio seguente aggiunge l'operazione Microsoft.Insights/diagnosticSettings/ alle Azioni e una sottoscrizione di Azure ad AssignableScopes del ruolo personalizzato Operatore macchina virtuale.The following example adds the Microsoft.Insights/diagnosticSettings/ operation to the Actions, and an Azure subscription to the AssignableScopes of the Virtual Machine Operator custom role.

JSON - Modifica della definizione di ruolo personalizzata - Schermata

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Impostazione dei ruoli di Azure - Schermata

Eliminare un ruolo personalizzatoDelete a custom role

Per eliminare un ruolo personalizzato, usare prima di tutto il comando azure role list per determinare l' ID del ruolo.To delete a custom role, first use the azure role list command to determine the ID of the role. Usare quindi il comando azure role delete per eliminare il ruolo specificando l' ID.Then, use the azure role delete command to delete the role by specifying the ID.

Nell'esempio seguente viene rimosso il ruolo personalizzato Operatore macchina virtuale .The following example removes the Virtual Machine Operator custom role.

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Eliminazione dei ruoli di Azure - Schermata

Elencare ruoli personalizzatiList custom roles

Per elencare i ruoli disponibili per l'assegnazione a un ambito, usare il comando azure role list .To list the roles that are available for assignment at a scope, use the azure role list command.

Il comando seguente elenca tutti i ruoli disponibili per l'assegnazione nella sottoscrizione selezionata.The following command lists all roles that are available for assignment in the selected subscription.

azure role list --json | jq '.[] | {"name":.properties.roleName, type:.properties.type}'

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Elenco di ruoli di Azure - Schermata

Nell'esempio seguente il ruolo personalizzato Virtual Machine Operator (Operatore macchina virtuale) non è disponibile nella sottoscrizione Production4 perché la sottoscrizione non è inclusa in AssignableScopes per il ruolo.In the following example, the Virtual Machine Operator custom role isn’t available in the Production4 subscription because that subscription isn’t in the AssignableScopes of the role.

azure role list --json | jq '.[] | if .properties.type == "CustomRole" then .properties.roleName else empty end'

Riga di comando di Controllo degli accessi in base al ruolo di Azure - Elenco dei ruoli di Azure per i ruoli personalizzati - Schermata

Passaggi successiviNext steps