Ruoli personalizzati di Azure

Importante

L'aggiunta di un gruppo di gestione a AssignableScopes è attualmente in fase di anteprima. Questa versione di anteprima viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere Condizioni supplementari per l'utilizzo delle anteprime di Microsoft 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 e entità servizio nel gruppo di gestione (solo in anteprima), sottoscrizioni e ambiti del gruppo di risorse.

I ruoli personalizzati possono essere condivisi tra sottoscrizioni che considerano attendibile la stessa directory di Azure AD. È previsto un limite di 5.000 ruoli personalizzati per ogni directory. Per Azure Germania e Azure China (21Vianet), il limite è di 2.000 ruoli personalizzati. È possibile creare ruoli personalizzati 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.

  1. 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 Actions proprietà o NotActions della definizione del ruolo. Se si dispone di azioni sui dati, queste verranno aggiunte alle DataActions proprietà o NotDataActions .

    Per altre informazioni, vedere la sezione successiva Come determinare le autorizzazioni necessarie.

  2. Decidere come creare il ruolo personalizzato.

    È possibile creare ruoli personalizzati usando portale di Azure, Azure PowerShell, l'interfaccia della riga di comando di Azure o l'API REST.

  3. 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 ruoli personalizzati di Azure usando il portale di Azure.

  4. 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 relative funzionalità e 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 cercando parole chiave. Questa funzionalità di ricerca è descritta in Creare o aggiornare ruoli personalizzati di Azure usando il portale di Azure.

    Add permissions pane with resource provider

  • 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 di fatturazione o macchina virtuale. È anche possibile scaricare tutte le autorizzazioni come file CSV e quindi cercare questo file. Questa funzionalità di ricerca è descritta in Creare o aggiornare ruoli personalizzati di Azure usando il portale di Azure.

    Add permissions list

Esempio di ruolo personalizzato

Di seguito viene illustrato l'aspetto visualizzato di un ruolo personalizzato 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 personalizzate.

Proprietà Obbligatoria Tipo Descrizione
Name
roleName
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 la stessa directory di Azure AD. Il nome visualizzato deve essere univoco nell'ambito della directory di Azure AD. Può includere lettere, numeri, spazi e caratteri speciali. Il numero massimo di caratteri è 512.
Id
name
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
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
string Descrizione del ruolo personalizzato. Può includere lettere, numeri, spazi e caratteri speciali. Il numero massimo di caratteri è 2048.
Actions
actions
String[] Matrice di stringhe che specifica le azioni del piano di controllo che il ruolo consente di eseguire. Per altre informazioni, vedere Azioni.
NotActions
notActions
No String[] Matrice di stringhe che specifica le azioni del piano di controllo escluse dall'oggetto consentito Actions. 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 dall'oggetto consentito DataActions. Per altre informazioni, vedere NotDataActions.
AssignableScopes
assignableScopes
String[] Matrice di stringhe che specifica gli ambiti in cui il ruolo personalizzato può essere assegnato. Il numero massimo di AssignableScopes è 2.000. È possibile definire un solo gruppo di gestione in AssignableScopes per un ruolo personalizzato. L'aggiunta di un gruppo di gestione a AssignableScopes è attualmente in fase di anteprima. Per altre informazioni, vedere assignableScopes.

Le stringhe di autorizzazione sono senza distinzione tra maiuscole e minuscole. Quando si creano i ruoli personalizzati, la convenzione corrisponde al caso in cui vengono visualizzate le autorizzazioni nelle operazioni del provider di risorse di Azure.

Autorizzazioni con caratteri jolly

Actions, NotActions, DataActionse NotDataActions supportano caratteri jolly (*) per definire le autorizzazioni. Un carattere jolly (*) estende un'autorizzazione a tutto ciò che corrisponde alla stringa di azione specificata. Si supponga, ad esempio, di voler aggiungere tutte le autorizzazioni correlate a Gestione 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

Anziché aggiungere tutte queste stringhe, è sufficiente aggiungere una stringa con caratteri jolly. Ad esempio, la stringa jolly seguente equivale alle cinque stringhe precedenti. Ciò include anche eventuali autorizzazioni di esportazione future che potrebbero essere aggiunte.

Microsoft.CostManagement/exports/*

È consigliabile specificare Actions e DataActions in modo esplicito anziché usare il carattere jolly (*). L'accesso e le autorizzazioni aggiuntive concesse tramite un comportamento futuro Actions o DataActions potrebbero essere indesiderate 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 che hanno concesso questa azione su tutti i AssignableScopes ruoli personalizzati possono creare (o eliminare) ruoli personalizzati per l'uso in tali ambiti. Ad esempio , proprietari e amministratori di accesso utente di gruppi di gestione, sottoscrizioni e gruppi di risorse.
Aggiornare un ruolo personalizzato Microsoft.Authorization/ roleDefinitions/write Gli utenti che hanno concesso questa azione su tutti i AssignableScopes ruoli personalizzati possono aggiornare i ruoli personalizzati in tali ambiti. Ad esempio , proprietari e amministratori di accesso utente di gruppi di gestione, sottoscrizioni e gruppi di risorse.
Visualizzare un ruolo personalizzato Microsoft.Authorization/ roleDefinitions/read Gli utenti che hanno concesso questa azione a 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.

Limiti dei ruoli personalizzati

L'elenco seguente descrive i limiti per i ruoli personalizzati.

  • Ogni directory può avere fino a 5000 ruoli personalizzati.
  • Azure Germania e Azure China (21Vianet) possono avere fino a 2000 ruoli personalizzati per ogni directory.
  • Non è possibile impostare AssignableScopes l'ambito radice ("/").
  • Non è possibile usare caratteri jolly (*) in AssignableScopes. 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 definire un solo gruppo di gestione in AssignableScopes di un ruolo personalizzato. L'aggiunta di un gruppo di gestione a AssignableScopes è attualmente in fase di anteprima.
  • È possibile includere un solo carattere jolly in una stringa di azione.
  • I ruoli personalizzati con DataActions non possono essere assegnati all'ambito del gruppo di gestione.
  • Azure Resource Manager non convalida l'esistenza del gruppo di gestione nell'ambito assegnabile della definizione del ruolo.

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 di output saranno leggermente diversi. Questa sezione elenca i formati di input e output a seconda dello strumento.

Azure PowerShell

Per creare un ruolo personalizzato usando 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 Id proprietà è 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 formato 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"
  }
]

API REST

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