Condividi tramite


Comprendere l'ambito per il Controllo degli accessi in base al ruolo di Azure (RBAC di Azure)

L’ambito è il set di risorse a cui si applica l'accesso. Quando si assegna un ruolo, è importante comprendere l’ambito in modo da concedere all’entità di sicurezza solo l’accesso di cui ha bisogno. Limitando l’ambito, si limitano anche le risorse a rischio in caso di compromissione dell’entità di sicurezza.

Livelli dell’ambito

In Azure è possibile specificare quattro livelli per l’ambito: gruppo di gestione, sottoscrizione, gruppo di risorse e risorsa. Gli ambiti sono strutturati in una relazione padre-figlio. Ogni livello di gerarchia rende più specifico l'ambito. È possibile assegnare ruoli a uno di questi livelli di ambito. Il livello selezionato determina la portata dell'applicazione del ruolo. I livelli inferiori ereditano le autorizzazioni del ruolo da quelli superiori.

Diagramma dell’ambito per un’assegnazione di ruolo.

I gruppi di gestione rappresentano un livello di ambito superiore alle sottoscrizione, ma supportano gerarchi più complesse. Il diagramma seguente mostra un esempio di una gerarchia di gruppi di gestione e sottoscrizioni che è possibile definire. Per altre informazioni sui gruppi di gestione, vedere Informazioni sui gruppi di gestione di Azure.

Diagramma della gerarchia dei gruppi di gestione e delle sottoscrizioni.

Formato dell’ambito

Se si assegnano ruoli utilizzando la riga di comando, sarà necessario specificare l’ambito. Per gli strumenti della riga di comando, l’ambito è una stringa potenzialmente lunga che identifica l’ambito esatto dell’assegnazione di ruolo. Nel portale di Azure, questo ambito è generalmente elencato come ID risorsa.

L'ambito è costituito da una serie di identificatori separati dal carattere barra (/). Questa stringa può essere considerata come espressione della seguente gerarchia, in cui il testo senza segnaposto ({}) è rappresentato da identificatori fissi:

/subscriptions
    /{subscriptionId}
        /resourcegroups
            /{resourceGroupName}
                /providers
                    /{providerName}
                        /{resourceType}
                            /{resourceSubType1}
                                /{resourceSubType2}
                                    /{resourceName}
  • {subscriptionId} è l'ID della sottoscrizione da usare (GUID).
  • {resourceGroupName} è il nome del gruppo di risorse che contiene la risorsa.
  • {providerName} è il nome del provider di risorse che gestisce la risorsa, quindi {resourceType} e {resourceSubType*} identificano altri livelli all’interno del provider di risorse.
  • {resourceName} è l'ultima parte della stringa che identifica una risorsa specifica.

I gruppi di gestione appartengono a un livello superiore rispetto alle sottoscrizioni e hanno un ambito più ampio (meno specifico). Le assegnazioni di ruolo a questo livello si applicano alle sottoscrizioni all’interno del gruppo di gestione. L’ambito di un gruppo di gestione ha il seguente formato:

/providers
    /Microsoft.Management
        /managementGroups
            /{managementGroupName}

Esempi di ambito

Ambito Esempio
Gruppo di gestione /providers/Microsoft.Management/managementGroups/marketing-group
Abbonamento /subscriptions/00000000-0000-0000-0000-000000000000
Gruppo di risorse /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
Risorsa /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork12345

Come determinare l’ambito di una risorsa

È abbastanza semplice determinare l’ambito per un gruppo di gestione, una sottoscrizione o un gruppo di risorse. È sufficiente conoscere il nome e l’ID sottoscrizione. Tuttavia, determinare l’ambito per una risorsa richiede un po’ più di lavoro. Di seguito sono illustrati un paio di modi che è possibile utilizzare l’ambito per una risorsa.

  • Nel portale di Azure aprire la risorsa e quindi esaminare le proprietà. La risorsa dovrebbe visualizzare l’ID risorsa in cui è possibile determinare l’ambito. Ad esempio, questi sono gli ID risorsa per l’account di archiviazione.

    Screenshot che mostra gli ID risorsa per un account di archiviazione nel portale di Azure.

  • Un altro modo consiste nell’utilizzare il portale di Azure per assegnare temporaneamente un ruolo a un ambito e quindi utilizzare Azure PowerShell o l’interfaccia della riga di comando di Azure per elencare l’assegnazione di ruolo. Nell’output, l’ambito verrà elencato come proprietà.

    RoleAssignmentId   : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/pro
                         viders/Microsoft.Authorization/roleAssignments/<roleAssignmentId>
    Scope              : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01
    DisplayName        : User
    SignInName         : [email protected]
    RoleDefinitionName : Storage Blob Data Reader
    RoleDefinitionId   : 2a2b9908-6ea1-4ae2-8e65-a410df84e7d1
    ObjectId           : <principalId>
    ObjectType         : User
    CanDelegate        : False
    Description        :
    ConditionVersion   :
    Condition          :
    
    {
        "canDelegate": null,
        "condition": null,
        "conditionVersion": null,
        "description": null,
        "id": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
        "name": "{roleAssignmentId}",
        "principalId": "{principalId}",
        "principalName": "[email protected]",
        "principalType": "User",
        "resourceGroup": "test-rg",
        "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
        "roleDefinitionName": "Storage Blob Data Reader",
        "scope": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01",
        "type": "Microsoft.Authorization/roleAssignments"
      }
    

Ambiti e modelli di Azure Resource Manager

Un’assegnazione di ruolo rappresenta un tipo speciale in Azure Resource Manager ed è denominato risorsa di estensione. Una risorsa di estensione è una risorsa che viene aggiunta alle funzionalità di un'altra risorsa. Esistono sempre come estensione (come figlio) di un’altra estensione. Ad esempio, un’assegnazione di ruolo a livello di ambito di sottoscrizione è una risorsa dell’estensione della sottoscrizione. Il nome di un’assegnazione di ruolo corrisponde sempre al nome della risorsa che si sta estendendo e di /Microsoft.Authorization/roleAssignments/{roleAssignmentId}. Quando si assegnano ruoli utilizzando il modello di Azure Resource Manager (modello dii ARM), non è in genere necessario specificare l’ambito. Questo perché il campo dell’ambito finisce sempre per essere l’ID della risorsa che si sta estendendo. È possibile determinare l’ambito dall’ID dell’assegnazione di ruolo stesso. La tabella seguente mostra esempi di un ID di un’assegnazione di ruolo e l’ambito corrispondente:

ID assegnazione di ruolo Ambito
/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} /subscriptions/{subscriptionId}
/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} /subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg

Per altre informazioni sull’ambito e sui modelli di Azure Resource Manager, vedere Assegnare ruoli di Azure utilizzando i modelli di Azure Resource Manager. Per un elenco completo dei tipi di risorse di estensione, vedere Tipi di risorse che estendono le funzionalità di altre risorse.

Passaggi successivi