Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il controllo degli accessi in base al ruolo di Azure è il sistema di autorizzazione usato per gestire l'accesso alle risorse di Azure. Per concedere l'accesso, assegnare ruoli a utenti, gruppi, entità servizio o identità gestite in un ambito specifico. Questo articolo descrive come assegnare ruoli usando Azure PowerShell.
Annotazioni
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Prerequisiti
Per assegnare ruoli, è necessario disporre di:
-
Microsoft.Authorization/roleAssignments/writeautorizzazioni, ad esempio Amministratore controllo degli accessi in base al ruolo - PowerShell in Azure Cloud Shell o Azure PowerShell
- L'account usato per eseguire il comando di PowerShell deve disporre dell'autorizzazione Microsoft Graph
Directory.Read.All.
Procedura per assegnare un ruolo di Azure
L'assegnazione di un ruolo è costituita da tre elementi: entità di sicurezza, definizione del ruolo e ambito.
Passaggio 1: Determinare chi deve accedere
È possibile assegnare un ruolo a un utente, a un gruppo, a un'entità servizio o a un'identità gestita. Per assegnare un ruolo, potrebbe essere necessario specificare l'ID univoco dell'oggetto. L'ID ha il formato : 11111111-1111-1111-1111-111111111111. È possibile ottenere l'ID usando il portale di Azure o Azure PowerShell.
User
Per un utente di Microsoft Entra, ottenere il nome dell'entità utente, ad esempio patlong@contoso.com o l'ID oggetto utente. Per ottenere l'ID oggetto, è possibile usare Get-AzADUser.
Get-AzADUser -StartsWith <userName>
(Get-AzADUser -DisplayName <userName>).id
Gruppo
Per un gruppo Microsoft Entra, è necessario l'ID dell'oggetto del gruppo. Per ottenere l'ID oggetto, è possibile usare Get-AzADGroup.
Get-AzADGroup -SearchString <groupName>
(Get-AzADGroup -DisplayName <groupName>).id
Service Principal
Per un'entità servizio Microsoft Entra (identità usata da un'applicazione), è necessario l'ID oggetto entità servizio. Per ottenere l'ID oggetto, è possibile usare Get-AzADServicePrincipal. Per un'entità servizio usare l'ID oggetto, non l'ID applicazione.
Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id
Identità gestita
Per un'identità gestita assegnata dal sistema o assegnata dall'utente, è necessario l'ID oggetto. Per ottenere l'ID oggetto, è possibile usare Get-AzADServicePrincipal.
Get-AzADServicePrincipal -SearchString <principalName>
(Get-AzADServicePrincipal -DisplayName <principalName>).id
Passaggio 2: Selezionare il ruolo appropriato
Le autorizzazioni vengono raggruppate in ruoli. È possibile selezionare da un elenco di diversi ruoli predefiniti di Azure oppure è possibile usare ruoli personalizzati. È consigliabile concedere l'accesso con i privilegi minimi necessari, quindi evitare di assegnare un ruolo più ampio.
Per elencare i ruoli e ottenere l'ID ruolo univoco, è possibile usare Get-AzRoleDefinition.
Get-AzRoleDefinition | Format-Table -Property Name, IsCustom, Id
Ecco come elencare i dettagli di un ruolo specifico.
Get-AzRoleDefinition -Name <roleName>
Per altre informazioni, vedere Elencare le definizioni dei ruoli di Azure.
Passaggio 3: Identificare l'ambito necessario
Azure offre quattro livelli di ambito: risorsa, gruppo di risorse, sottoscrizione e gruppo di gestione. È consigliabile concedere l'accesso con i privilegi minimi necessari, quindi evitare di assegnare un ruolo a un ambito più ampio. Per altre informazioni sull'ambito, vedere Informazioni sull'ambito.
Ambito risorsa
Per l'ambito della risorsa, è necessario l'ID di essa. È possibile trovare l'ID risorsa esaminando le proprietà della risorsa nel portale di Azure. Un ID risorsa ha il formato seguente.
/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>
Ambito del gruppo di risorse
Per l'ambito del gruppo di risorse, è necessario il nome del gruppo di risorse. È possibile trovare il nome nella pagina Gruppi di risorse nel portale di Azure oppure usare Get-AzResourceGroup.
Get-AzResourceGroup
Ambito della sottoscrizione
Per l'ambito della sottoscrizione, è necessario l'ID sottoscrizione. È possibile trovare l'ID nella pagina Sottoscrizioni nel portale di Azure oppure usare Get-AzSubscription.
Get-AzSubscription
Ambito del gruppo di gestione
Per l'ambito del gruppo di gestione, è necessario il nome del gruppo di gestione. È possibile trovare il nome nella pagina Gruppi di gestione nel portale di Azure oppure usare Get-AzManagementGroup.
Get-AzManagementGroup
Passaggio 4: Assegnare il ruolo
Per assegnare un ruolo, usare il comando New-AzRoleAssignment . A seconda dell'ambito, il comando ha in genere uno dei formati seguenti.
Ambito risorsa
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionId <roleId> `
-ResourceName <resourceName> `
-ResourceType <resourceType> `
-ResourceGroupName <resourceGroupName>
Ambito del gruppo di risorse
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
Ambito della sottoscrizione
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
Ambito del gruppo di gestione
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
Assegnare esempi di ruoli
Assegnare un ruolo per tutti i contenitori BLOB in un ambito di risorsa dell'account di archiviazione
Assegna il ruolo Collaboratore dei dati BLOB di archiviazione a un'entità servizio con ID oggetto 55555555-5555-5555-5555-555555555555 e ID applicazione 66666666-6666-6666-6666-666666666666 a livello dell'ambito di una risorsa per un account di archiviazione denominato storage12345.
PS C:\> New-AzRoleAssignment -ApplicationId 66666666-6666-6666-6666-666666666666 `
-RoleDefinitionName "Storage Blob Data Contributor" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/providers/Microsoft.Authorization/roleAssignments/cccccccc-cccc-cccc-cccc-cccccccccccc
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345
DisplayName : example-identity
SignInName :
RoleDefinitionName : Storage Blob Data Contributor
RoleDefinitionId : ba92f5b4-2d11-453d-a403-e96b0029c9fe
ObjectId : 55555555-5555-5555-5555-555555555555
ObjectType : ServicePrincipal
CanDelegate : False
Assegnare un ruolo per un ambito di risorsa contenitore BLOB specifico
Assegna il ruolo Collaboratore dei dati BLOB di archiviazione a un'entità servizio con ID oggetto 55555555-5555-5555-5555-555555555555 e un ID applicazione 66666666-6666-6666-6666-666666666666 a livello dell'ambito di una risorsa per un contenitore BLOB denominato blob-container-01.
PS C:\> New-AzRoleAssignment -ApplicationId 66666666-6666-6666-6666-666666666666 `
-RoleDefinitionName "Storage Blob Data Contributor" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01/providers/Microsoft.Authorization/roleAssignm
ents/dddddddd-dddd-dddd-dddd-dddddddddddd
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01
DisplayName : example-identity
SignInName :
RoleDefinitionName : Storage Blob Data Contributor
RoleDefinitionId : ba92f5b4-2d11-453d-a403-e96b0029c9fe
ObjectId : 55555555-5555-5555-5555-555555555555
ObjectType : ServicePrincipal
CanDelegate : False
Assegnare un ruolo per un gruppo in un ambito di risorse di rete virtuale specifico
Assegna il ruolo Collaboratore macchina virtuale al gruppo Pharma Sales Admins con ID aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa a livello dell'ambito di una risorsa per una rete virtuale denominata pharma-sales-project-network.
PS C:\> New-AzRoleAssignment -ObjectId aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa `
-RoleDefinitionName "Virtual Machine Contributor" `
-ResourceName pharma-sales-project-network `
-ResourceType Microsoft.Network/virtualNetworks `
-ResourceGroupName MyVirtualNetworkResourceGroup
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
/providers/Microsoft.Network/virtualNetworks/pharma-sales-project-network/providers/Microsoft.Authorizat
ion/roleAssignments/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
/providers/Microsoft.Network/virtualNetworks/pharma-sales-project-network
DisplayName : Pharma Sales Admins
SignInName :
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
ObjectType : Group
CanDelegate : False
Assegnare un ruolo per un utente nell'ambito di un gruppo di risorse
Assegna il ruolo Collaboratore di Macchine Virtuali all'utente patlong@contoso.com nell'ambito del gruppo di risorse pharma-sales.
PS C:\> New-AzRoleAssignment -SignInName patlong@contoso.com `
-RoleDefinitionName "Virtual Machine Contributor" `
-ResourceGroupName pharma-sales
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/pr
oviders/Microsoft.Authorization/roleAssignments/55555555-5555-5555-5555-555555555555
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : Pat Long
SignInName : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False
In alternativa, è possibile specificare il gruppo di risorse completo con il -Scope parametro :
PS C:\> New-AzRoleAssignment -SignInName patlong@contoso.com `
-RoleDefinitionName "Virtual Machine Contributor" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/providers/Microsoft.Authorization/roleAssignments/55555555-5555-5555-5555-555555555555
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : Pat Long
SignInName : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False
Assegnare un ruolo a un utente utilizzando l'ID univoco del ruolo nell'ambito del gruppo di risorse
Esistono un paio di volte in cui un nome di ruolo può cambiare, ad esempio:
- Stai usando il tuo ruolo personalizzato e decidi di modificare il nome.
- Si usa un ruolo di anteprima con (anteprima) nel nome. Quando il ruolo viene rilasciato, viene rinominato.
Anche se un ruolo viene rinominato, l'ID ruolo non cambia. Se si usano script o automazione per creare le assegnazioni di ruolo, è consigliabile usare l'ID ruolo univoco anziché il nome del ruolo. Pertanto, se un ruolo viene rinominato, è più probabile che gli script funzionino.
Nell'esempio seguente viene assegnato il ruolo Collaboratore macchina virtuale all'utente patlong@contoso.com nell'ambito del gruppo di risorse pharma-sales .
PS C:\> New-AzRoleAssignment -ObjectId 44444444-4444-4444-4444-444444444444 `
-RoleDefinitionId 9980e02c-c2be-4d73-94e8-173b1dc7cf3c `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/providers/Microsoft.Authorization/roleAssignments/55555555-5555-5555-5555-555555555555
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : Pat Long
SignInName : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False
Assegnare un ruolo per un'applicazione nell'ambito di un gruppo di risorse
Nell'esempio seguente viene assegnato il ruolo Collaboratore macchina virtuale a un'applicazione con ID oggetto entità servizio 77777777-7777-7777-7777-777777777777 al livello dell'ambito di gruppo di risorse pharma-sales-projectforecast.
PS C:\> New-AzRoleAssignment -ObjectId 77777777-7777-7777-7777-777777777777 `
-RoleDefinitionName "Virtual Machine Contributor" `
-ResourceGroupName pharma-sales
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/66666666-6666-6666-6666-666666666666
Scope : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName : MyApp1
SignInName :
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId : 77777777-7777-7777-7777-777777777777
ObjectType : ServicePrincipal
CanDelegate : False
Assegnare un ruolo a un utente nell'ambito di una sottoscrizione
Assegna il ruolo Lettore all'utente annm@example.com a livello di sottoscrizione.
PS C:\> New-AzRoleAssignment -SignInName annm@example.com `
-RoleDefinitionName "Reader" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000"
RoleAssignmentId : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/66666666-6666-6666-6666-666666666666
Scope : /subscriptions/00000000-0000-0000-0000-000000000000
DisplayName : Ann M
SignInName : annm@example.com
RoleDefinitionName : Reader
RoleDefinitionId : acdd72a7-3385-48ef-bd42-f606fba81ae7
ObjectId : 77777777-7777-7777-7777-777777777777
ObjectType : ServicePrincipal
CanDelegate : False
Assegnare un ruolo per un utente nell'ambito di un gruppo di gestione
Assegna il ruolo Lettore fatturazione all'utente alain@example.com a livello dell'ambito di un gruppo di gestione.
PS C:\> New-AzRoleAssignment -SignInName alain@example.com `
-RoleDefinitionName "Billing Reader" `
-Scope "/providers/Microsoft.Management/managementGroups/marketing-group"
RoleAssignmentId : /providers/Microsoft.Management/managementGroups/marketing-group/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222
Scope : /providers/Microsoft.Management/managementGroups/marketing-group
DisplayName : Alain Charon
SignInName : alain@example.com
RoleDefinitionName : Billing Reader
RoleDefinitionId : fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64
ObjectId : 44444444-4444-4444-4444-444444444444
ObjectType : User
CanDelegate : False