Aggiungere o modificare condizioni di assegnazione di ruolo di Azure usando l'interfaccia della riga di comando di Azure
Una condizione di assegnazione di ruolo di Azure è un controllo aggiuntivo che è possibile aggiungere facoltativamente all'assegnazione di ruolo per fornire un controllo di accesso più granulare. Ad esempio, è possibile aggiungere una condizione che richiede che un oggetto abbia un tag specifico per leggere l'oggetto. Questo articolo descrive come aggiungere, modificare, elencare o eliminare condizioni per le assegnazioni di ruolo usando l'interfaccia della riga di comando di Azure.
Prerequisiti
Per informazioni sui prerequisiti per aggiungere o modificare condizioni di assegnazione di ruolo, vedere Prerequisiti delle condizioni.
Aggiungi una condizione
Per aggiungere una condizione di assegnazione di ruolo, usare az role assignment create. Il comando az role assignment create include i parametri seguenti correlati alle condizioni.
Parametro | Tipo | Description |
---|---|---|
condition |
Stringa | Condizione con cui l'utente può essere concessa l'autorizzazione. |
condition-version |
Stringa | Versione della sintassi della condizione. Se --condition viene specificato senza --condition-version , la versione viene impostata sul valore predefinito 2.0. |
Nell'esempio seguente viene illustrato come assegnare il ruolo lettore dati BLOB di Archiviazione con una condizione. La condizione controlla se il nome del contenitore è uguale a "blobs-example-container".
az role assignment create --role "Storage Blob Data Reader" --scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName --assignee "user1@contoso.com" \
--description "Read access if container name equals blobs-example-container" \
--condition "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))" \
--condition-version "2.0"
Il testo seguente è un esempio di output:
{
"canDelegate": null,
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"name": "{roleAssignmentId}",
"principalId": "{userObjectId}",
"principalType": "User",
"resourceGroup": "{resourceGroup}",
"roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
"type": "Microsoft.Authorization/roleAssignments"
}
Modificare una condizione
Per modificare una condizione di assegnazione di ruolo esistente, usare az role assignment update e un file JSON come input. Di seguito è illustrato un file JSON di esempio in cui vengono aggiornate le condizioni e la descrizione. È possibile modificare solo le condition
proprietà , conditionVersion
e description
. È necessario specificare tutte le proprietà per aggiornare la condizione di assegnazione di ruolo.
{
"canDelegate": null,
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' OR @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container2'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container or blobs-example-container2",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"name": "{roleAssignmentId}",
"principalId": "{userObjectId}",
"principalType": "User",
"resourceGroup": "{resourceGroup}",
"roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
"type": "Microsoft.Authorization/roleAssignments"
}
Usare az role assignment update per aggiornare la condizione per l'assegnazione di ruolo.
az role assignment update --role-assignment "./path/roleassignment.json"
Il testo seguente è un esempio di output:
{
"canDelegate": null,
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' OR @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container2'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container or blobs-example-container2",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"name": "{roleAssignmentId}",
"principalId": "{userObjectId}",
"principalType": "User",
"resourceGroup": "{resourceGroup}",
"roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
"type": "Microsoft.Authorization/roleAssignments"
}
Elencare una condizione
Per elencare una condizione di assegnazione di ruolo, usare az role assignment list. Per altre informazioni, vedere Elencare le assegnazioni di ruolo di Azure usando l'interfaccia della riga di comando di Azure.
Eliminare una condizione
Per eliminare una condizione di assegnazione di ruolo, modificare la condizione di assegnazione di ruolo e impostare entrambe le condition
proprietà e condition-version
su una stringa vuota (""
) o null
.
In alternativa, se si desidera eliminare sia l'assegnazione di ruolo che la condizione, è possibile usare il comando az role assignment delete . Per altre informazioni, vedere Rimuovere le assegnazioni di ruolo di Azure.
Passaggi successivi
- Condizioni di assegnazione di ruolo di Azure di esempio per Archiviazione BLOB
- Esercitazione: Aggiungere una condizione di assegnazione di ruolo per limitare l'accesso ai BLOB tramite l'interfaccia della riga di comando di Azure
- Risolvere i problemi relativi alle condizioni di assegnazione dei ruoli di Azure