Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Une condition d’attribution de rôle Azure est une vérification supplémentaire que vous pouvez éventuellement ajouter à votre attribution de rôle pour fournir un contrôle d’accès plus précis. Par exemple, vous pouvez ajouter une condition qui nécessite qu’un objet ait une balise spécifique pour lire l’objet. Cet article explique comment ajouter, modifier, lister ou supprimer des conditions pour vos attributions de rôles à l’aide d’Azure CLI.
Prerequisites
Pour plus d’informations sur les conditions préalables à l’ajout ou à la modification des conditions d’attribution de rôle, consultez Conditions préalables.
Ajouter une condition
Pour ajouter une condition d’attribution de rôle, utilisez az role assignment create. La commande az role assignment create inclut les paramètres suivants liés aux conditions.
| Paramètre | Type | Descriptif |
|---|---|---|
condition |
Chaîne | Condition sous laquelle l’utilisateur peut recevoir l’autorisation. |
condition-version |
Chaîne | Version de la syntaxe de condition. Si --condition est spécifié sans --condition-version, la version est définie à la valeur par défaut de 2.0. |
L’exemple suivant montre comment attribuer le rôle Lecteur de données Blob de stockage avec une condition. La condition vérifie si le nom du conteneur est égal à « 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"
Voici un exemple de sortie :
{
"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"
}
Modifier une condition
Pour modifier une condition d’attribution de rôle existante, utilisez az role assignment update et un fichier JSON comme entrée. L’exemple suivant montre un exemple de fichier JSON où la condition et la description sont mises à jour. Seules les propriétés condition, conditionVersion, et description peuvent être modifiées. Vous devez spécifier toutes les propriétés pour mettre à jour la condition d’attribution de rôle.
{
"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"
}
Utilisez az role assignment update pour mettre à jour la condition de l’attribution de rôle.
az role assignment update --role-assignment "./path/roleassignment.json"
Voici un exemple de sortie :
{
"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"
}
Répertorier une condition
Pour répertorier une condition d’attribution de rôle, utilisez az role assignment list. Pour plus d’informations, consultez Répertorier les attributions de rôles Azure à l’aide d’Azure CLI.
Supprimer une condition
Pour supprimer une condition d’attribution de rôle, modifiez la condition d’attribution de rôle et définissez les propriétés condition et condition-version sur une chaîne vide ("") ou null.
Sinon, si vous souhaitez supprimer à la fois l’attribution de rôle et la condition, vous pouvez utiliser la commande az role assignment delete . Pour plus d’informations, consultez Supprimer des attributions de rôles Azure.