Partager via


Résoudre les problèmes liés aux conditions d’attribution de rôle Azure

Problèmes généraux

Symptôme - La condition n’est pas 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ôles (avec ou sans conditions) qui accordent l’accès à la même action de données, ce qui entraîne une non-application des conditions. Pour plus d’informations sur la logique d’évaluation, consultez comment Azure RBAC détermine si un utilisateur a accès à une ressource.

Cause 2

Votre attribution de rôle a 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 contient des actions de données et que vous en ciblez uniquement une dans une condition, l’attribution de rôle vous accordera la permission de créer des blobs et de contourner la condition.

Solution 2

Si votre attribution de rôle a plusieurs actions qui accordent une autorisation, vérifiez que vous ciblez toutes les actions pertinentes.

Cause 3

Lorsque vous ajoutez une condition à une attribution de rôle, l’application de la condition peut prendre jusqu’à 5 minutes. Lorsque vous ajoutez une condition, les fournisseurs de ressources (tels que Le Stockage Microsoft) sont avertis de la mise à jour. Les fournisseurs de ressources effectuent immédiatement des mises à jour de leurs caches locaux pour s’assurer qu’ils disposent des dernières attributions de rôles. Ce processus se termine en 1 ou 2 minutes, mais peut prendre jusqu’à 5 minutes.

Solution 3

Attendez 5 minutes et testez à nouveau 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 avec une condition, vous obtenez une erreur similaire à :

The given role assignment condition is invalid.

Cause 1

La conditionVersion propriété est définie sur « 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 les problèmes de format de condition ou de syntaxe . 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 lors de la modification d’une condition

Vous avez créé une condition à l’aide d’un modèle décrit dans Déléguer la gestion des attributions de rôles Azure à d’autres personnes avec des conditions. Lorsque vous essayez de modifier la condition, vous voyez l’éditeur de condition avancé.

Capture d’écran de l’éditeur de condition montrant les options permettant de modifier une condition.

Lorsque vous avez précédemment modifié la condition, vous avez modifié à l’aide du modèle de condition.

Capture d’écran des modèles de condition avec le modèle correspondant activé.

Cause

La condition ne correspond pas au schéma du modèle.

Solution 1

Modifiez la condition pour qu’elle corresponde à l’un des modèles de référence suivants.

Modèle État
Limiter les rôles Exemple : Limiter les rôles
Limiter les rôles et les types principaux Exemple : Limiter les rôles et les types principaux
Limiter les rôles et les principaux Exemple : Limiter les rôles et les groupes spécifiques
Autoriser tous sauf certains rôles Exemple : Autoriser la plupart des rôles, mais n’autorisez pas d’autres utilisateurs à attribuer des rôles

Solution 2

Supprimez la condition et recréez-la en suivant les étapes dans le guide Gérer l’attribution de rôle Azure déléguée à d’autres personnes avec des conditions.

Symptôme : le principal n’apparaît pas dans la source d’attribut

Lorsque vous essayez d’ajouter une attribution de rôle avec une condition, le principal n’apparaît pas dans la liste source d’attribut .

Capture d’écran montrant Principal dans la liste des sources d’attribut lors de l’ajout d’une condition.

Au lieu de cela, le message 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 dans Microsoft Entra ID

Solution

  1. Ouvrez Microsoft Entra ID>les attributs de sécurité personnalisés.

    Si vous voyez la page Prise en main, vous n’avez pas les autorisations nécessaires pour lire au moins un ensemble d’attributs ou des attributs de sécurité personnalisés n’ont pas encore été définis.

    Capture d’écran montrant la page Démarrer des attributs de sécurité personnalisés.

  2. 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.

    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.

  3. Si les attributs de sécurité personnalisés n’ont pas encore été définis, attribuez le rôle Administrateur de définition des attributs à l'échelle du locataire et ajoutez des attributs de sécurité personnalisés. Pour plus d’informations, consultez Ajouter ou désactiver des attributs de sécurité personnalisés dans l’ID Microsoft Entra.

    Lorsque vous avez terminé, vous devriez être en mesure de lire au moins un ensemble d’attributs.

    Capture d’écran montrant les jeux d’attributs que l’utilisateur peut lire.

    Le principal doit maintenant apparaître dans la liste des sources d’attribut lorsque vous ajoutez une attribution de rôle avec une condition.

Symptôme : l'élément principal n’apparaît pas dans la source d’attribut lors de l’utilisation de PIM

Lorsque vous essayez d’ajouter une attribution de rôle avec une condition à l’aide de Microsoft Entra Privileged Identity Management (PIM),le principal n’apparaît pas dans la liste de sources d’attributs .

Capture d’écran montrant Principal dans la liste des sources d’attribut lors de l’ajout d'une condition à l’aide de Privileged Identity Management.

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 obtenez un message similaire à ce qui suit :

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 les problèmes de format de condition ou de syntaxe . Vous pouvez également supprimer la condition et réessayer.

Symptôme : l’attribut n’applique pas d’erreur pour la condition précédemment enregistrée

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 Blob.List sous-opération :

!(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 pouvez voir ce message d’erreur dans l’éditeur visuel.

Solution

Ouvrez le volet Sélectionner une action et réélectionnez l’action Lire un objet blob .

Symptôme - L’attribut n’applique pas d’erreur

Lorsque vous sélectionnez une ou plusieurs actions dans l’éditeur visuel avec une expression existante, vous obtenez le message suivant et l’attribut précédemment sélectionné 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 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 Actions et attributs pour les conditions d’attribution de rôle Azure pour stockage Blob Azureet 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 Actions et attributs pour les conditions d’attribution de rôle Azure pour stockage Blob Azureet Actions et attributs pour les conditions d’attribution de rôle Azure pour les files d’attente Azure.

Symptôme - L’attribut ne s’applique pas dans cet avertissement de contexte

Lorsque vous apportez des modifications dans l’éditeur de code, puis basculez vers l’éditeur visuel, vous obtenez le message suivant et l’attribut précédemment sélectionné 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 Version ID dans un compte de stockage avec un espace de noms hiérarchique activé.

Solution

Si vous souhaitez utiliser l’attribut actuellement spécifié, créez la condition d’attribution de rôle dans une autre étendue, telle que 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 - L’attribut n’est pas reconnu

Lorsque vous apportez des modifications dans l’éditeur de code, puis basculez vers l’éditeur visuel, vous obtenez le message suivant et l’attribut précédemment sélectionné est supprimé :

Attribute is not recognized. Select a valid attribute or remove the expression.

Cause

L’attribut spécifié n’est pas reconnu, éventuellement en raison d’une faute de frappe.

Solution

Dans l’éditeur de code, corrigez la faute de frappe. Ou supprimez l’expression existante et utilisez l’éditeur visuel pour sélectionner un attribut.

Symptôme - La valeur de l’attribut n’est pas valide

Lorsque vous apportez des modifications dans l’éditeur de code, puis basculez vers l’éditeur visuel, vous obtenez le message suivant et l’attribut précédemment sélectionné est supprimé :

Attribute value is invalid. Select another attribute or value.

Cause

Le côté droit 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

Lorsque vous supprimez toutes les actions de l’éditeur visuel, vous recevez le message suivant :

No actions selected. Select one or more actions to edit expressions.

Cause

Il existe une expression existante, 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 - Aucune option disponible erreur

Lorsque vous tentez d’ajouter une expression, vous recevez le message suivant :

No options available

Cause

Vous avez sélectionné pour 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, vous recevez le message suivant :

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 - IDs principaux introuvables

Lorsque vous tentez d’ajouter une expression, vous recevez le message suivant :

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 l'élément principal. Si vous avez récemment ajouté le compte principal, actualisez la page ou déconnectez-vous puis reconnectez-vous.

Messages d’erreur dans Azure PowerShell

Symptôme : l’attribut de ressource n’est pas une erreur valide

Lorsque vous essayez d’ajouter une attribution de rôle avec une condition à l’aide d’Azure PowerShell, vous obtenez une erreur similaire à :

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 guillemets dans PowerShell, consultez À propos des règles de 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, il 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 : l’attribut de ressource n’est pas une erreur valide

Lorsque vous essayez d’ajouter une attribution de rôle avec une condition à l’aide d’Azure CLI, vous obtenez une erreur similaire à :

Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Cause

Si votre condition inclut un signe dollar ($), vous devez le préfixer avec 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 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 d’arguments non reconnus

Lorsque vous essayez d’ajouter une attribution de rôle avec une condition à l’aide d’Azure CLI, vous obtenez une erreur similaire à :

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

Effectuez une 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, vous obtenez le bash: !: event not found message.

Cause

Dans Bash, si l’extension de l’historique est activée, vous pouvez voir le message bash: !: event not found en raison du point d’exclamation ( !).

Solution

Désactivez l’extension de l’historique avec la commande set +H. Pour réactiver l’extension de l’historique, utilisez set -H.

Messages d’erreur dans l’API

Symptôme - Réponse HTTP 403 "Forbidden" lors de la suppression d'une attribution de rôle

Considérez un principal disposant des autorisations pour modifier les attributions de rôles et ces autorisations incluent également une condition ABAC. Si le principal tente de supprimer une attribution de rôle qui a déjà été supprimée ou n’existe pas, elle reçoit la HTTP 403 Forbidden réponse au lieu de la réponse attendue HTTP 204 No Content .

Cause

Lorsqu’un principal dispose d’autorisations qui incluent une condition ABAC, le système tente de lire l’attribut pendant l’évaluation de la condition. Si l’attribut n’existe pas, cela peut entraîner une réponse inattendue au lieu du résultat attendu.

Solution

Lors de la gestion des réponses pour les autorisations d’autorisation qui incluent également une condition, vous devez également gérer la 403 Forbidden réponse. La 403 Forbidden réponse peut indiquer des autorisations insuffisantes, que l’attribution de rôle a déjà été supprimée ou que l’attribution de rôle n’existe pas.

Étapes suivantes