Aggiungere o modificare le condizioni di assegnazione di ruolo di Azure usando l'API REST
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'API REST.
Prerequisiti
È necessario usare le versioni seguenti:
2020-03-01-preview
o versioni successive2020-04-01-preview
o versioni successive se si desidera utilizzare ladescription
proprietà per le assegnazioni di ruolo2022-04-01
è la prima versione stabile
Per altre 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 l'API REST Assegnazioni di ruolo - Crea . Assegnazioni di ruolo: crea include i parametri seguenti correlati alle condizioni.
Parametro | Tipo | Description |
---|---|---|
condition |
Stringa | Condizione con cui l'utente può essere concessa l'autorizzazione. |
conditionVersion |
Stringa | Versione della sintassi della condizione. Se condition viene specificato senza conditionVersion , la versione viene impostata sul valore predefinito 2.0. |
Usare la richiesta e il corpo seguenti:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
"principalId": "{principalId}",
"condition": "{condition}",
"conditionVersion": "2.0",
"description": "{description}"
}
}
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".
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"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"
}
}
Il testo seguente è un esempio di output:
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"principalType": "User",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"createdOn": "2022-07-20T06:20:44.0205560Z",
"updatedOn": "2022-07-20T06:20:44.2955371Z",
"createdBy": null,
"updatedBy": "{updatedById}",
"delegatedManagedIdentityResourceId": null,
"description": "Read access if container name equals blobs-example-container"
},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"type": "Microsoft.Authorization/roleAssignments",
"name": "{roleAssignmentId}"
}
Modificare una condizione
Per modificare una condizione di assegnazione di ruolo esistente, usare le stesse assegnazioni di ruolo - Creare l'API REST usata per aggiungere la condizione di assegnazione di ruolo. Di seguito è riportato un esempio json in cui condition
e description
vengono aggiornati. È possibile modificare solo le condition
proprietà , conditionVersion
e description
. È necessario specificare le altre proprietà in modo che corrispondano all'assegnazione di ruolo esistente.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"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"
}
}
Elencare una condizione
Per elencare una condizione di assegnazione di ruolo, usare l'API REST Get o List Assignments.To list a role assignment condition, use the Role Assignments Get or List REST API. Per altre informazioni, vedere Elencare le assegnazioni di ruolo di Azure usando l'API REST.
Eliminare una condizione
Per eliminare una condizione di assegnazione di ruolo, modificare la condizione di assegnazione del ruolo e impostare sia la condizione che la versione della condizione su una stringa vuota o null.
In alternativa, se si vuole eliminare sia l'assegnazione di ruolo che la condizione, è possibile usare l'API Assegnazioni di ruolo - Eliminazione . Per altre informazioni, vedere Rimuovere le assegnazioni di ruolo di Azure.