Ruoli personalizzati di Azure
Se i ruoli predefiniti di Azure non soddisfano le esigenze specifiche dell'organizzazione, è possibile creare ruoli personalizzati. Analogamente ai ruoli predefiniti, è possibile assegnare ruoli personalizzati a utenti, gruppi ed entità servizio nell'ambito del gruppo di gestione, della sottoscrizione e del gruppo di risorse.
I ruoli personalizzati possono essere condivisi tra sottoscrizioni che considerano attendibile lo stesso tenant di Microsoft Entra. È previsto un limite di 5.000 ruoli personalizzati per ogni tenant. (Per Microsoft Azure gestito da 21Vianet, il limite è di 2.000 ruoli personalizzati.) I ruoli personalizzati possono essere creati usando il portale di Azure, Azure PowerShell, l'interfaccia della riga di comando di Azure o l'API REST.
Passaggi per la creazione di un ruolo personalizzato
Ecco i passaggi di base per creare un ruolo personalizzato.
Determinare le autorizzazioni necessarie.
Quando si crea un ruolo personalizzato, è necessario conoscere le azioni disponibili per definire le autorizzazioni. In genere si parte da un ruolo predefinito esistente e lo si modifica in base alle esigenze. Le azioni verranno aggiunte alle proprietà
Actions
oNotActions
della definizione del ruolo. Se si dispone di azioni sui dati, verranno aggiunte alle proprietàDataActions
oNotDataActions
.Per altre informazioni, vedere la sezione successiva Come determinare le autorizzazioni necessarie.
Decidere come creare il ruolo personalizzato.
È possibile creare ruoli personalizzati usando il portale di Azure, Azure PowerShell, l'interfaccia della riga di comando di Azureo l'API REST.
Creare il ruolo personalizzato.
Il modo più semplice consiste nell'usare il portale di Azure. Per informazioni su come creare un ruolo personalizzato usando il portale di Azure, vedere Creare o aggiornare i ruoli personalizzati di Azure usando il portale di Azure.
Testare il ruolo personalizzato.
Una volta creato il ruolo personalizzato, è necessario testarlo per verificare che funzioni nel modo previsto. Se occorre apportare delle modifiche, è possibile aggiornare il ruolo personalizzato.
Come determinare le autorizzazioni necessarie
Azure ha migliaia di autorizzazioni che è possibile includere nel ruolo personalizzato. Ecco alcuni metodi che consentono di determinare le autorizzazioni da aggiungere al ruolo personalizzato:
Esaminare i ruoli predefiniti esistenti.
È possibile modificare un ruolo esistente o combinare le autorizzazioni usate in più ruoli.
Elencare i servizi di Azure a cui si vuole concedere l'accesso.
Determinare i provider di risorse che eseguono il mapping ai servizi di Azure.
I servizi di Azure espongono le funzionalità e le autorizzazioni tramite provider di risorse. Ad esempio, il provider di risorse Microsoft.Compute fornisce risorse macchina virtuale e il provider di risorse Microsoft.Billing fornisce le risorse di sottoscrizione e fatturazione. Conoscere i provider di risorse può aiutare a restringere e determinare le autorizzazioni necessarie per il ruolo personalizzato.
Quando si crea un ruolo personalizzato usando il portale di Azure, è anche possibile determinare i provider di risorse mediante la ricerca di parole chiave. Questa funzionalità di ricerca è descritta in Creare o aggiornare i ruoli personalizzati di Azure usando il portale di Azure.
Cercare le autorizzazioni disponibili per trovare le autorizzazioni da includere.
Quando si crea un ruolo personalizzato usando il portale di Azure, è possibile cercare le autorizzazioni per parola chiave. Ad esempio, è possibile cercare le autorizzazioni della macchina virtuale o di fatturazione. È anche possibile scaricare tutte le autorizzazioni come file CSV, quindi cercare questo file. Questa funzionalità di ricerca è descritta in Creare o aggiornare i ruoli personalizzati di Azure usando il portale di Azure.
Esempio di ruolo personalizzato
Di seguito viene illustrato l'aspetto di un ruolo personalizzato visualizzato usando Azure PowerShell in formato JSON. Questo ruolo personalizzato può essere usato per il monitoraggio e il riavvio di macchine virtuali.
{
"Name": "Virtual Machine Operator",
"Id": "88888888-8888-8888-8888-888888888888",
"IsCustom": true,
"Description": "Can monitor and restart virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}",
"/providers/Microsoft.Management/managementGroups/{groupId1}"
]
}
Di seguito viene illustrato lo stesso ruolo personalizzato visualizzato usando l'interfaccia della riga di comando di Azure.
[
{
"assignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}",
"/providers/Microsoft.Management/managementGroups/{groupId1}"
],
"description": "Can monitor and restart virtual machines.",
"id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/88888888-8888-8888-8888-888888888888",
"name": "88888888-8888-8888-8888-888888888888",
"permissions": [
{
"actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Virtual Machine Operator",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
]
Proprietà del ruolo personalizzato
Nella tabella seguente viene descritto il significato delle proprietà del ruolo personalizzato.
Proprietà | Richiesto | Type | Descrizione |
---|---|---|---|
Name roleName |
Sì | String | Nome visualizzato del ruolo personalizzato. Mentre una definizione di ruolo è un gruppo di gestione o una risorsa a livello di sottoscrizione, una definizione di ruolo può essere usata in più sottoscrizioni che condividono lo stesso tenant di Microsoft Entra. Questo nome visualizzato deve essere univoco nell'ambito del tenant di Microsoft Entra. Può includere lettere, numeri, spazi e caratteri speciali. Il numero massimo di caratteri è 512. |
Id name |
Sì | String | ID univoco del ruolo personalizzato. Per Azure PowerShell e l'interfaccia della riga di comando di Azure questo ID viene generato automaticamente quando viene creato un nuovo ruolo. |
IsCustom roleType |
Sì | String | Indica se questo è un ruolo personalizzato. Impostare su true o CustomRole per i ruoli personalizzati. Impostare su false o BuiltInRole per i ruoli predefiniti. |
Description description |
Sì | String | Descrizione del ruolo personalizzato. Può includere lettere, numeri, spazi e caratteri speciali. Il numero massimo di caratteri è 2048. |
Actions actions |
Sì | String[] | Matrice di stringhe che specifica le azioni del piano di controllo che il ruolo consente di eseguire. Per altre informazioni, consultare Azioni. |
NotActions notActions |
No | String[] | Matrice di stringhe che specifica le azioni del piano di controllo escluse dal Actions consentito. Per altre informazioni, vedere notActions. |
DataActions dataActions |
No | String[] | Matrice di stringhe che specifica le azioni del piano dati che il ruolo consente di eseguire ai dati all'interno di tale oggetto. Se si crea un ruolo personalizzato con DataActions , tale ruolo non può essere assegnato nell'ambito del gruppo di gestione. Per altre informazioni, vedere DataActions. |
NotDataActions notDataActions |
No | String[] | Matrice di stringhe che specifica le azioni del piano dati escluse dal DataActions consentito. Per altre informazioni, vedere NotDataActions. |
AssignableScopes assignableScopes |
Sì | String[] | Matrice di stringhe che specifica gli ambiti in cui il ruolo personalizzato può essere assegnato. Il numero massimo di AssignableScopes è 2.000. Per altre informazioni, vedere assignableScopes. |
Le stringhe di autorizzazione non fanno distinzione tra maiuscole e minuscole. Quando si creano ruoli personalizzati, la convenzione deve corrispondere al caso visualizzato per le autorizzazioni in operazioni del provider di risorse di Azure.
Autorizzazioni con caratteri jolly
Actions
, NotActions
, DataActions
e NotDataActions
supportano i caratteri jolly (*
) per definire le autorizzazioni. Un carattere jolly (*
) estende un'autorizzazione a tutti gli elementi corrispondenti alla stringa di azione specificata. Si supponga, ad esempio, di voler aggiungere tutte le autorizzazioni correlate a Gestione dei costi e esportazioni di Azure. È possibile aggiungere tutte queste stringhe di azione:
Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/delete
Microsoft.CostManagement/exports/run/action
Invece di aggiungere tutte queste stringhe, è sufficiente aggiungere una stringa con caratteri jolly. Ad esempio, la stringa con caratteri jolly seguente equivale alle cinque stringhe precedenti. Ciò includerebbe anche eventuali autorizzazioni di esportazione future che potrebbero essere aggiunte.
Microsoft.CostManagement/exports/*
Nota
È consigliabile specificare Actions
e DataActions
in modo esplicito anziché usare il carattere jolly (*
). L'accesso aggiuntivo e le autorizzazioni concesse tramite future Actions
o DataActions
potrebbero essere comportamenti indesiderati usando il carattere jolly.
Chi può creare, eliminare, aggiornare o visualizzare un ruolo personalizzato
Come per i ruoli predefiniti, la proprietà AssignableScopes
specifica gli ambiti in cui il ruolo personalizzato può essere assegnato. La proprietà AssignableScopes
per un ruolo personalizzato controlla anche chi può creare, eliminare, aggiornare o visualizzare il ruolo personalizzato.
Attività | Azione | Descrizione |
---|---|---|
Creare o eliminare un ruolo personalizzato | Microsoft.Authorization/ roleDefinitions/write |
Gli utenti a cui viene concessa questa azione su tutte le AssignableScopes del ruolo personalizzato possono creare (o eliminare) ruoli personalizzati da usare in tali ambiti. Ad esempio, proprietari e amministratori accesso utenti di gruppi di gestione, sottoscrizioni e gruppi di risorse. |
Aggiornare un ruolo personalizzato | Microsoft.Authorization/ roleDefinitions/write |
Gli utenti a cui viene concessa questa azione su tutte le AssignableScopes del ruolo personalizzato possono aggiornare i ruoli personalizzati in tali ambiti. Ad esempio, proprietari e amministratori accesso utenti di gruppi di gestione, sottoscrizioni e gruppi di risorse. |
Visualizzare un ruolo personalizzato | Microsoft.Authorization/ roleDefinitions/read |
Gli utenti a cui viene concessa questa azione in un ambito possono visualizzare i ruoli personalizzati disponibili per l'assegnazione in tale ambito. Tutti i ruoli predefiniti consentono di rendere disponibili i ruoli personalizzati per l'assegnazione. |
Nota
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.
Trovare le assegnazioni di ruolo per eliminare un ruolo personalizzato
Prima di poter eliminare un ruolo personalizzato, è necessario rimuovere tutte le assegnazioni di ruolo che usano il ruolo personalizzato. Se si tenta di eliminare un ruolo personalizzato con assegnazioni di ruolo, viene visualizzato il messaggio: There are existing role assignments referencing role (code: RoleDefinitionHasAssignments)
.
Ecco i passaggi per trovare le assegnazioni di ruolo prima di eliminare un ruolo personalizzato:
- Elencare la definizione del ruolo personalizzata.
- Nella sezione AssignableScopes ottenere i gruppi di gestione, le sottoscrizioni e i gruppi di risorse.
- Eseguire l'iterazione di
AssignableScopes
e elencare le assegnazioni di ruolo. - Rimuovere le assegnazioni di ruolo che usano il ruolo personalizzato.
- Se si usa Microsoft Entra Privileged Identity Management, rimuovere le assegnazioni di ruolo personalizzate idonee.
- Eliminare il ruolo personalizzato.
Per informazioni su come trovare ruoli personalizzati inutilizzati, vedere Sintomo: non è possibile creare altre definizioni di ruolo.
Limiti dei ruoli personalizzati
L'elenco seguente descrive i limiti per i ruoli personalizzati.
- Ogni tenant può avere fino a 5000 ruoli personalizzati.
- Microsoft Azure gestito da 21Vianet può avere fino a 2000 ruoli personalizzati per ogni tenant.
- Non è possibile impostare
AssignableScopes
sull'ambito radice ("/"
). - Non è possibile usare caratteri jolly (
*
) inAssignableScopes
. Questa restrizione relativa ai caratteri jolly consente di assicurarsi che un utente non possa potenzialmente ottenere l'accesso a un ambito aggiornando la definizione del ruolo. - È possibile includere un solo carattere jolly in una stringa di azione.
- È possibile definire un solo gruppo di gestione in
AssignableScopes
per un ruolo personalizzato. - Azure Resource Manager non convalida l'esistenza del gruppo di gestione nella definizione del ruolo
AssignableScopes
. - I ruoli personalizzati con
DataActions
non possono essere assegnati all'ambito del gruppo di gestione. - È possibile creare un ruolo personalizzato con
DataActions
e un gruppo di gestione inAssignableScopes
. Non è possibile assegnare il ruolo personalizzato nell'ambito del gruppo di gestione stesso; tuttavia, è possibile assegnare il ruolo personalizzato nell'ambito delle sottoscrizioni all'interno del gruppo di gestione. Ciò può essere utile se è necessario creare un singolo ruolo personalizzato conDataActions
che deve essere assegnato in più sottoscrizioni, anziché creare un ruolo personalizzato separato per ogni sottoscrizione.
Per altre informazioni sui ruoli personalizzati e sui gruppi di gestione, vedere Informazioni sui gruppi di gestione di Azure.
Formati di input e di output
Per creare un ruolo personalizzato usando la riga di comando, in genere si usa JSON per specificare le proprietà desiderate per il ruolo personalizzato. A seconda degli strumenti usati, i formati di input e output saranno leggermente diversi. Questa sezione elenca i formati di input e output a seconda dello strumento.
Azure PowerShell
Per creare un ruolo personalizzato con Azure PowerShell, è necessario fornire l'input seguente.
{
"Name": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Per aggiornare un ruolo personalizzato usando Azure PowerShell, è necessario specificare l'input seguente. Si noti che la proprietà Id
è stata aggiunta.
{
"Name": "",
"Id": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Di seguito viene illustrato un esempio dell'output quando si elenca un ruolo personalizzato usando Azure PowerShell e il comando ConvertTo-Json.
{
"Name": "",
"Id": "",
"IsCustom": true,
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Interfaccia della riga di comando di Azure
Per creare o aggiornare un ruolo personalizzato usando l'interfaccia della riga di comando di Azure, è necessario fornire l'input seguente. Questo formato è lo stesso quando si crea un ruolo personalizzato usando Azure PowerShell.
{
"Name": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Di seguito viene illustrato un esempio dell'output quando si elenca un ruolo personalizzato usando l'interfaccia della riga di comando di Azure.
[
{
"assignableScopes": [],
"description": "",
"id": "",
"name": "",
"permissions": [
{
"actions": [],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
]
REST API
Per creare o aggiornare un ruolo personalizzato usando l'API REST, è necessario fornire l'input seguente. Questo formato è lo stesso formato generato quando si crea un ruolo personalizzato usando il portale di Azure.
{
"properties": {
"roleName": "",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
]
}
}
Di seguito viene illustrato un esempio dell'output quando si elenca un ruolo personalizzato usando l'API REST.
{
"properties": {
"roleName": "",
"type": "CustomRole",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
],
"createdOn": "",
"updatedOn": "",
"createdBy": "",
"updatedBy": ""
},
"id": "",
"type": "Microsoft.Authorization/roleDefinitions",
"name": ""
}
Passaggi successivi
- Esercitazione: Creare un ruolo personalizzato di Azure con Azure PowerShell
- Esercitazione: Creare un ruolo personalizzato di Azure con l'interfaccia della riga di comando di Azure
- Comprendere le definizioni dei ruoli di Azure
- Risolvere i problemi relativi al controllo degli accessi in base al ruolo di Azure