Informazioni sull'ambito per il controllo degli accessi in base al ruolo 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 che sia possibile concedere a un'entità di sicurezza solo l'accesso effettivamente necessario. Limitando l'ambito, si limitano le risorse a rischio se l'entità di sicurezza è mai compromessa.
Livelli di ambito
In Azure è possibile specificare un ambito a quattro livelli: 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 su uno qualsiasi 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.
I gruppi di gestione sono un livello di ambito superiore alle sottoscrizioni, ma i gruppi di gestione supportano gerarchie più complesse. Il diagramma seguente mostra un esempio di gerarchia di gruppi di gestione e sottoscrizioni che è possibile definire. Per altre informazioni sui gruppi di gestione, vedere Che cosa sono i gruppi di gestione di Azure?.
Formato ambito
Se si assegnano ruoli usando la riga di comando, è necessario specificare l'ambito. Per gli strumenti da riga di comando, l'ambito è una stringa potenzialmente lunga che identifica l'ambito esatto dell'assegnazione di ruolo. Nell'portale di Azure questo ambito viene in genere 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 e{resourceSubType*}
quindi{resourceType}
identifica altri livelli all'interno del provider di risorse.{resourceName}
è l'ultima parte della stringa che identifica una risorsa specifica.
I gruppi di gestione sono un livello superiore alle sottoscrizioni e hanno l'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 formato seguente:
/providers
/Microsoft.Management
/managementGroups
/{managmentGroupName}
Esempi di ambito
Ambito | Esempio |
---|---|
Gruppo di gestione | /providers/Microsoft.Management/managementGroups/marketing-group |
Subscription | /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 |
|
Resource | /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
È piuttosto 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 di una risorsa richiede un po' di lavoro. Ecco alcuni modi per determinare l'ambito di una risorsa.
Nella portale di Azure aprire la risorsa e quindi esaminare le proprietà. La risorsa deve elencare l'ID risorsa in cui è possibile determinare l'ambito. Ecco ad esempio gli ID risorsa per un account di archiviazione.
Un altro modo consiste nell'usare il portale di Azure per assegnare temporaneamente un ruolo nell'ambito della risorsa e quindi usare 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 : user@contoso.com 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": "user@contoso.com", "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" }
Ambito e modelli di Resource Manager
Un'assegnazione di ruolo è un tipo speciale in Azure Resource Manager denominato risorsa di estensione. Una risorsa di estensione è una risorsa che aggiunge alle funzionalità di un'altra risorsa. Esistono sempre come estensione (ad esempio un figlio) di un'altra risorsa. Ad esempio, un'assegnazione di ruolo nell'ambito della sottoscrizione è una risorsa di estensione della sottoscrizione. Il nome di un'assegnazione di ruolo è sempre il nome della risorsa che si sta estendendo più /Microsoft.Authorization/roleAssignments/{roleAssignmentId}
. Quando si assegnano ruoli usando il modello di Azure Resource Manager ,in genere non è necessario fornire l'ambito. Il motivo è che il campo ambito finisce sempre come ID della risorsa che si sta estendendo. L'ambito può essere determinato dall'ID dell'assegnazione di ruolo stessa. La tabella seguente mostra esempi di UN ID assegnazione di ruolo e dell'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 Resource Manager, vedere Assegnare ruoli di Azure usando 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.