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

Screenshot showing Principal in Attribute source list when adding a condition.

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

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

    Screenshot that shows Custom security attributes Get started page.

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

    Screenshot that shows the attribute sets the user can read.

    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.

Screenshot showing Principal in Attribute source list when adding a condition using 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 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.

Étapes suivantes