Résoudre les problèmes liés aux conditions d’attribution de rôle Azure
Problèmes généraux
Symptôme - Condition non appliquée
Cause 1
Les principaux de sécurité présentent au moins une attribution de rôle dans une étendue identique ou supérieure.
Solution 1
Assurez-vous que les principaux de sécurité n’ont pas plusieurs attributions de rôle (avec ou sans conditions) qui accordent l’accès à la même action de données, ce qui empêcherait l’application des conditions. Pour plus d’informations sur la logique d’évaluation, consultez Comment le contrôle RBAC Azure détermine si un utilisateur a accès à une ressource.
Cause 2
Votre attribution de rôle comporte plusieurs actions qui accordent une autorisation et votre condition ne cible pas toutes les actions. Par exemple, vous pouvez créer un objet BLOB si vous avez des actions de données /blobs/write
ou /blobs/add/action
. Si votre attribution de rôle comporte à la fois des actions de données et que vous ciblez une seule d’entre elles dans une condition, l’attribution de rôle accorde l’autorisation de créer des objets BLOB et de contourner la condition.
Solution 2
Si votre attribution de rôle comporte plusieurs actions qui accordent une autorisation, assurez-vous que vous ciblez toutes les actions pertinentes.
Cause 3
Lorsque vous ajoutez une condition à une attribution de rôle, il peut falloir jusqu’à 5 minutes pour que la condition soit appliquée. Lorsque vous ajoutez une condition, les fournisseurs de ressources (tels que Microsoft Storage) sont avertis de la mise à jour. Les fournisseurs de ressources mettent immédiatement à jour leurs caches locaux pour s’assurer qu’ils disposent des dernières attributions de rôle. Ce processus s’effectue en 1 ou 2 minutes, mais peut prendre jusqu’à 5 minutes.
Solution 3
Patientez 5 minutes et retestez la condition.
Symptôme - Erreur Condition non valide lors de l’ajout d’une condition
Lorsque vous essayez d’ajouter une attribution de rôle à une condition, une erreur semblable à la suivante s’affiche :
The given role assignment condition is invalid.
Cause 1
La propriété conditionVersion
est définie sur la valeur « 1.0 ».
Solution 1
Définissez la propriété conditionVersion
sur « 2.0 ».
Cause 2
Votre condition n’est pas correctement mise en forme.
Solution 2
Corrigez tout problème de format ou de syntaxe de la condition. Vous pouvez également ajouter la condition à l’aide de l’éditeur visuel dans le portail Azure.
Problèmes dans l’éditeur visuel
Symptôme : l’éditeur de condition s’affiche pendant la modification d’une condition
Vous avez créé une condition à partir d’un modèle décrit dans Déléguer la gestion des attributions de rôle Azure à d’autres personnes avec des conditions. Quand vous essayez de modifier la condition, vous voyez l’éditeur de conditions avancé.
Quand vous avez modifié la condition auparavant, vous avez utilisé le modèle de condition.
Cause
La condition ne correspond pas au schéma du modèle.
Solution 1
Modifiez la condition pour qu’elle corresponde à un des schémas de modèle suivants.
Modèle | Condition |
---|---|
Limiter les rôles | Exemple : Contraindre des rôles |
Limiter les rôles et les types principaux | Exemple : Contraindre des rôles et des types de principal |
Limiter les rôles et les principaux | Exemple : Contraindre des rôles et des groupes spécifiques |
Autoriser tous les rôles sauf les rôles spécifiques | Exemple : Autoriser la plupart des rôles, mais ne pas autoriser d’autres utilisateurs à attribuer des rôles |
Solution 2
Supprimez la condition et recréez-la en utilisant les étapes de Déléguer la gestion des attributions de rôle Azure à d’autres personnes avec des conditions.
Symptôme : principal ne s’affiche pas dans la source de l’attribut
Lorsque vous essayez d’ajouter une attribution de rôle à une condition, Principal n’apparaît pas dans la liste Source d’attribut.
Au lieu de cela, le message suivant s’affiche :
To use principal (user) attributes, you must have Microsoft Entra permissions (such as the [Attribute Assignment Administrator](../active-directory/roles/permissions-reference.md#attribute-assignment-administrator) role) and custom security attributes defined in Microsoft Entra ID.
Cause
Vous ne remplissez pas les conditions préalables. Pour utiliser les attributs du principal, vous devez disposer des éléments suivants :
- Autorisations Microsoft Entra permettant à l’utilisateur connecté de lire au moins un ensemble d’attributs
- Attributs de sécurité personnalisés définis dans Microsoft Entra ID
Solution
Ouvrez Microsoft Entra ID>Attributs de sécurité personnalisés.
Si vous voyez la page Prise en main, vous n’êtes pas autorisé à lire au moins un jeu d’attributs, ou des attributs de sécurité personnalisés n’ont pas encore été définis.
Si des attributs de sécurité personnalisés ont été définis, attribuez l’un des rôles suivants au niveau de l’étendue du locataire ou de l’étendue du jeu d’attributs. Pour plus d’informations, consultez Gérer l’accès aux attributs de sécurité personnalisés dans Microsoft Entra ID.
- Lecteur de définition d’attribut
- Lecteur d’attribution d’attribut
- Administrateur de définition d’attribut
- Administrateur d’attribution d’attribut
Important
Par défaut, les rôles Administrateur général et d’autres d’administrateur ne sont pas autorisés à lire, à définir ou à affecter des attributs de sécurité personnalisés.
Si des attributs de sécurité personnalisés n’ont pas encore été définis, attribuez le rôle Administrateur de définition d’attribut au niveau de l’étendue du locataire et ajoutez des attributs de sécurité personnalisés. Pour plus d’informations, consultez l’article Ajouter ou désactiver des attributs de sécurité personnalisés dans Microsoft Entra ID.
Lorsque vous avez terminé, vous devriez être en mesure de lire au moins un ensemble d’attributs.
Principal doit maintenant apparaître dans la liste Source de l’attribut lorsque vous ajoutez une attribution de rôle avec une condition.
Symptôme : principal ne s’affiche pas dans la source de l’attribut lors de l’utilisation de PIM
Lorsque vous essayez d’ajouter une attribution de rôle à une condition à l’aide de Microsoft Entra Privileged Identity Management (PIM), Principal n’apparaît pas dans la liste Source de l’attribut.
Cause
PIM ne prend actuellement pas en charge l’utilisation de l’attribut principal dans une condition d’attribution de rôle.
Messages d’erreur dans l’éditeur visuel
Symptôme : condition non reconnue
Après avoir utilisé l’éditeur de code, vous basculez vers l’éditeur visuel et un message similaire à ce qui suit s’affiche :
The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.
Cause
Des mises à jour ont été apportées à la condition que l’éditeur visuel ne peut pas analyser.
Solution
Corrigez tout problème de format ou de syntaxe de la condition. Vous pouvez également supprimer la condition et réessayer.
Symptôme : erreur L’attribut ne s’applique pas pour la condition enregistrée précédemment
Lorsque vous ouvrez une condition précédemment enregistrée dans l’éditeur visuel, vous obtenez le message suivant :
Attribute does not apply for the selected actions. Select a different set of actions.
Cause
En mai 2022, l’action Lire un objet blob a été modifiée à partir du format suivant :
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})
Pour exclure la sous-opération Blob.List
:
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
Si vous avez créé une condition avec l’action Lire un objet blob avant mai 2022, vous pourriez voir ce message d’erreur dans l’éditeur visuel.
Solution
Ouvrez le volet Sélectionner une action et resélectionnez l’action Lire un objet blob.
Symptôme : erreur L’attribut ne n’applique pas
Quand vous sélectionnez une ou plusieurs actions dans l’éditeur visuel avec une expression existante, le message suivant s’affiche et l’attribut sélectionné précédemment est supprimé :
Attribute does not apply for the selected actions. Select a different set of actions.
Cause
L’attribut sélectionné précédemment ne s’applique plus aux actions qui sont actuellement sélectionnées.
Solution 1
Dans la section Ajouter une action, sélectionnez une action qui s’applique à l’attribut sélectionné. Pour obtenir la liste des actions de stockage prises en charge par chaque attribut de stockage, consultez les articles Actions et attributs pour les conditions d’attribution de rôle Azure dans Stockage Blob Azure et Actions et attributs pour les conditions d’attribution de rôle Azure pour les files d’attente Azure.
Solution 2
Dans la section Générer une expression, sélectionnez un attribut qui s’applique aux actions actuellement sélectionnées. Pour obtenir la liste des attributs de stockage pris en charge par chaque action de stockage, consultez les articles Actions et attributs pour les conditions d’attribution de rôle Azure dans Stockage Blob Azure et Actions et attributs pour les conditions d’attribution de rôle Azure pour les files d’attente Azure.
Symptôme : avertissement L’attribut ne s’applique pas dans ce contexte
Quand vous effectuez des modifications dans l’éditeur de code, puis basculez vers l’éditeur visuel, le message suivant s’affiche et l’attribut sélectionné précédemment est supprimé :
Attribute does not apply in this context. Use a different role assignment scope or remove the expression.
Cause
L’attribut spécifié n’est pas disponible dans l’étendue actuelle, comme l’utilisation de Version ID
dans un compte de stockage dont l’espace de noms hiérarchique est activé.
Solution
Si vous souhaitez utiliser l’attribut actuellement spécifié, créez la condition d’attribution de rôle dans une autre étendue, comme l’étendue du groupe de ressources. Vous pouvez également supprimer et recréer l’expression à l’aide des actions actuellement sélectionnées.
Symptôme : erreur L’attribut n’est pas reconnu
Quand vous effectuez des modifications dans l’éditeur de code, puis basculez vers l’éditeur visuel, le message suivant s’affiche et l’attribut sélectionné précédemment est supprimé :
Attribute is not recognized. Select a valid attribute or remove the expression.
Cause
L’attribut spécifié n’est pas reconnu. Il peut s’agir d’une faute de frappe.
Solution
Dans l’éditeur de code, corrigez la faute de frappe. Vous pouvez également supprimer l’expression existante et utiliser l’éditeur visuel pour sélectionner un attribut.
Symptôme : erreur La valeur de l’attribut est non valide
Quand vous effectuez des modifications dans l’éditeur de code, puis basculez vers l’éditeur visuel, le message suivant s’affiche et l’attribut sélectionné précédemment est supprimé :
Attribute value is invalid. Select another attribute or value.
Cause
La partie droite de l’expression contient un attribut ou une valeur qui n’est pas valide.
Solution
Utilisez l’éditeur visuel pour sélectionner un attribut ou spécifier une valeur.
Symptôme : erreur Aucune action sélectionnée
Quand vous supprimez toutes les actions de l’éditeur visuel, le message suivant s’affiche :
No actions selected. Select one or more actions to edit expressions.
Cause
Une expression existe, mais aucune action n’a été sélectionnée comme cible.
Solution
Dans la section Ajouter une action, ajoutez une ou plusieurs actions que l’expression doit cibler.
Symptôme – Erreur Aucune option disponible
Lorsque vous tentez d’ajouter une expression, le message suivant s’affiche :
No options available
Cause
Vous avez choisi de cibler plusieurs actions et il n’existe aucun attribut qui s’applique à toutes les actions actuellement sélectionnées.
Solution
Dans la section Ajouter une action, sélectionnez moins d’actions à cibler. Pour cibler les actions que vous avez supprimées, ajoutez plusieurs conditions.
Symptôme – ID de définition de rôle introuvables
Lorsque vous tentez d’ajouter une expression, le message suivant s’affiche :
Cannot find built-in or custom role definitions with IDs: <role IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.
Cause
Un ou plusieurs ID de définition de rôle que vous avez tenté d’ajouter pour l’attribut ID de définition de rôle n’ont pas été trouvés ou n’ont pas le format GUID correct : 00000000-0000-0000-0000-000000000000
.
Solution
Utilisez l’éditeur de condition pour sélectionner le rôle. Si vous avez récemment ajouté le rôle personnalisé, actualisez la page ou déconnectez-vous et reconnectez-vous.
Symptôme – ID de principal introuvables
Lorsque vous tentez d’ajouter une expression, le message suivant s’affiche :
Cannot find users, groups, or service principals in Azure Active Directory with principal IDs: <principal IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.
Cause
Un ou plusieurs ID de principal que vous avez tenté d’ajouter pour l’attribut ID de principal n’ont pas été trouvés ou n’ont pas le format GUID correct : 00000000-0000-0000-0000-000000000000
.
Solution
Utilisez l’éditeur de condition pour sélectionner le principal. Si vous avez récemment ajouté le principal, actualisez la page ou déconnectez-vous et reconnectez-vous.
Messages d’erreur dans Azure PowerShell
Symptôme : erreur L’attribut de ressource n’est pas valide
Lorsque vous essayez d’ajouter une attribution de rôle à une condition à l’aide d’Azure PowerShell, une erreur semblable à la suivante s’affiche :
New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.
Cause
Si votre condition comprend un signe dollar ($), vous devez le faire précéder d’un guillemet inversé (`).
Solution
Ajoutez un guillemet inversé (`) avant chaque signe dollar. Consultez l’exemple ci-dessous. Pour plus d’informations sur les règles de liées aux guillemets dans PowerShell, consultez À propos des règles liées aux guillemets.
$condition = "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<`$key_case_sensitive`$>] StringEquals 'Cascade'))"
Symptôme - Erreur lors de la copie et du collage d’une condition
Cause
Si vous utilisez PowerShell et copiez une condition à partir d’un document, elle peut inclure des caractères spéciaux qui provoquent l’erreur suivante. Certains éditeurs (tels que Microsoft Word) ajoutent des caractères de contrôle lors de la mise en forme du texte qui n’apparaît pas.
The given role assignment condition is invalid.
Solution
Si vous avez copié une condition à partir d’un éditeur de texte enrichi et que vous êtes certain que la condition est correcte, supprimez tous les espaces et les retours, puis rajoutez les espaces appropriés. Vous pouvez également utiliser un éditeur de texte brut ou un éditeur de code, tel que Visual Studio Code.
Messages d’erreur dans Azure CLI
Symptôme : erreur L’attribut de ressource n’est pas valide
Lorsque vous essayez d’ajouter une attribution de rôle à une condition à l’aide d’Azure CLI, une erreur semblable à la suivante s’affiche :
Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.
Cause
Si votre condition comprend un signe dollar ($), vous devez le faire précéder d’une barre oblique inverse (\).
Solution
Ajoutez une barre oblique inverse (\) avant chaque signe dollar. Consultez l’exemple ci-dessous. Pour plus d’informations sur les règles de guillemets dans Bash, consultez Double Quotes (Guillemets doubles).
condition="((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<\$key_case_sensitive\$>] StringEquals 'Cascade'))"
Symptôme : erreur Arguments non reconnus
Lorsque vous essayez d’ajouter une attribution de rôle à une condition à l’aide d’Azure CLI, une erreur semblable à la suivante s’affiche :
az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0
Cause
Vous utilisez probablement une version antérieure d’Azure CLI qui ne prend pas en charge les paramètres de condition d’attribution de rôle.
Solution
Procédez à la mise à jour vers la dernière version d’Azure CLI (2.18 ou version ultérieure). Pour plus d’informations, consultez la rubrique Installation de l’interface de ligne de commande Azure (CLI).
Symptôme - Erreur lors de l’affectation d’une chaîne de condition à une variable dans Bash
Lorsque vous essayez d’affecter une chaîne de condition à une variable dans Bash, le message bash: !: event not found
s’affiche.
Cause
Dans Bash, si le développement de l’historique est activé, vous pouvez voir le message bash: !: event not found
en raison du point d’exclamation ( !).
Solution
Pour désactiver le développement de l’historique, utilisez la commande set +H
. Pour réactiver le développement de l’historique, utilisez set -H
.