Didacticiel : Ajouter une condition d’attribution de rôle pour restreindre l’accès aux blobs à l’aide du portail Azure

Dans la plupart des cas, une attribution de rôle accorde les autorisations dont vous avez besoin pour les ressources Azure. Toutefois, dans certains cas, vous souhaiterez peut-être fournir un contrôle d’accès plus précis en ajoutant une condition d’attribution de rôle.

Dans ce tutoriel, vous allez apprendre à :

  • Ajouter une condition à une attribution de rôle
  • Restreindre l’accès aux objets blob en fonction d’une étiquette d’index d’objets blob

Important

Le contrôle d’accès en fonction des attributs Azure (Azure ABAC) est en disponibilité générale (GA) pour contrôler l’accès au Stockage Blob Azure, à Azure Data Lake Storage Gen2 et aux files d’attente Azure à l’aide des attributs request, resource, environment et principal dans les niveaux de performances des comptes de stockage standard et premium. Actuellement, l’attribut de ressource des métadonnées de conteneur et l’attribut de requête d’inclusion des blobs de liste sont en PRÉVERSION. Pour obtenir des informations complètes sur l’état des fonctionnalités d’ABAC pour Stockage Azure, consultez État des fonctionnalités de condition dans Stockage Azure.

Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.

Prérequis

Pour plus d’informations sur les prérequis à l’ajout ou à la modification des conditions d’attribution de rôle, consultez Prérequis aux conditions.

Condition

Dans ce tutoriel, vous limitez l’accès aux objets blob dotés d’une étiquette spécifique. Par exemple, vous ajoutez une condition à une attribution de rôle afin que Chandra puisse uniquement lire les fichiers auxquels est associée l’étiquette Project=Cascade.

Diagramme de l’attribution de rôle avec une condition.

Si Chandra tente de lire un objet blob dépourvu de l’étiquette Project=Cascade, l’accès n’est pas autorisé.

Diagramme montrant l’accès en lecture aux objets blob dotés de l’étiquette Project=Cascade.

Voici à quoi ressemble la condition dans le code :

(
    (
        !(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$>] StringEqualsIgnoreCase 'Cascade'
    )
)

Étape 1 : Créer un utilisateur

  1. Connectez-vous au portail Azure en tant que propriétaire d’un abonnement.

  2. Sélectionnez Microsoft Entra ID.

  3. Créez un utilisateur ou recherchez un utilisateur existant. Ce tutoriel utilise Chandra comme exemple.

Étape 2 : Configurer le stockage

  1. Créez un compte de stockage compatible avec la fonctionnalité de balises d’index d’objets blob. Pour plus d’informations, consultez Gérer et rechercher des données Azure Blob à l’aide de balises d’index d’objets blob.

  2. Créez un conteneur dans le compte de stockage et définissez le niveau d’accès anonyme sur Privé (pas d’accès anonyme).

  3. Dans le conteneur, sélectionnez sur Charger pour ouvrir le volet Charger l’objet blob.

  4. Recherchez un fichier texte à charger.

  5. Sélectionnez Avancé pour développer le volet.

  6. Dans la section Étiquettes d’index d’objets blob, ajoutez l’étiquette d’index d’objet blob suivante au fichier texte.

    Si vous ne voyez pas la section Étiquettes d’index d’objets blob et que vous venez d’inscrire votre abonnement, vous devrez peut-être attendre quelques minutes que les modifications se propagent. Pour plus d’informations, consultez Utiliser des étiquettes d’index d’objets blob pour gérer et rechercher des données sur Stockage Blob Azure.

    Notes

    Les objets blob prennent également en charge la possibilité de stocker des métadonnées de clé-valeur arbitraires définies par l’utilisateur. Bien que les métadonnées soient similaires aux étiquettes d’index d’objet blob, vous devez utiliser des étiquettes d’index d’objet blob avec les conditions.

    Clé Valeur
    Project Cascade

Capture d’écran montrant le volet Charger l’objet blob avec la section Étiquettes d’index d’objets blob.

  1. Sélectionnez le Télécharger bouton de chargement pour télécharger le fichier.

  2. Chargez un second fichier texte.

  3. Ajoutez l’étiquette d’index d’objets blob suivante au second fichier texte.

    Clé Valeur
    Project Baker

Étape 3 : Attribuer un rôle de données d’objet blob de stockage

  1. Ouvrez le groupe de ressources.

  2. Sélectionnez Contrôle d’accès (IAM) .

  3. Sélectionnez l’onglet Attributions de rôles afin de voir les attributions de rôles pour cette étendue.

  4. Sélectionnez Ajouter>Ajouter une attribution de rôle. La page Ajouter une attribution de rôle s’ouvre :

Capture d’écran du menu Ajouter > Ajouter une attribution de rôle.

  1. Sous l’onglet Rôles, sélectionnez le rôle Lecteur des données Blob du stockage.

Capture d’écran de la page Ajouter une attribution de rôle avec l’onglet Rôles.

  1. Sous l’onglet Membres, sélectionnez l’utilisateur que vous avez créé.

Capture d’écran de la page Ajouter une attribution de rôle avec l’onglet Membres.

  1. (Facultatif) Dans la zone Description, entrez Accès en lecture aux objets blob avec l’étiquette Project=Cascade.

  2. Cliquez sur Suivant.

Étape 4 : Ajouter une condition

  1. Sous l’onglet Conditions (facultatif), sélectionnez Ajouter une condition. La page Ajouter une condition d’attribution de rôle s’affiche :

Capture d’écran de la page Ajouter une condition d’attribution de rôle pour une nouvelle condition.

  1. Dans la section Ajouter une action, sélectionnez Ajouter une action.

    Le volet Sélectionner une action s’affiche. Ce volet est une liste filtrée d’actions de données basée sur l’attribution de rôle destinée à être la cible de votre condition. Cochez la case en regard de Lire un objet blob, puis sélectionnez Sélectionner :

Capture d’écran du volet Sélectionner une action, avec une action sélectionnée.

  1. Dans la section Générer l’expression, sélectionnez Ajouter une expression.

    La section Expression se développe.

  2. Spécifiez les paramètres d’expression suivants :

    Paramètre Value
    Source de l’attribut Ressource
    Attribut Balises d’index de blob [Valeurs dans la clé]
    Clé : Project
    Opérateur StringEqualsIgnoreCase
    Value Cascade

Capture d’écran de la section Créer l’expression pour les étiquettes d’index d’objets blob.

  1. Faites défiler la liste jusqu’à Type d’éditeur, puis sélectionnez Code.

    La condition s’affiche sous forme de code. Vous pouvez apporter des modifications à la condition dans cet éditeur de code. Pour revenir à l’éditeur visuel, sélectionnez Visuel.

Capture d’écran de la condition affichée dans l’éditeur de code.

  1. Sélectionnez Enregistrer pour ajouter la condition et revenir à la page Ajouter une attribution de rôle.

  2. Cliquez sur Suivant.

  3. Sous l’onglet Vérifier + attribuer, sélectionnez Vérifier + attribuer pour attribuer le rôle avec une condition.

    Après quelques instants, le principal de sécurité est attribué au rôle dans l’étendue sélectionnée.

Capture d’écran de la liste d’attributions de rôle après l’attribution du rôle.

Étape 5 : affecter le rôle Lecteur

  • Répétez les étapes précédentes pour attribuer le rôle Lecteur à l’utilisateur que vous avez créé précédemment dans l’étendue du groupe de ressources.

    Notes

    En général, vous n’avez pas besoin d’affecter le rôle Lecteur. Toutefois, cette opération vous permet de tester la condition à l’aide du portail Azure.

Étape 6 : Tester la condition

  1. Dans une nouvelle fenêtre, connectez-vous au portail Azure.

  2. Connectez-vous avec les informations d’identification de l’utilisateur que vous avez créé précédemment.

  3. Ouvrez le compte de stockage et le conteneur que vous avez créés.

  4. Vérifiez que la méthode d’authentification est définie sur Compte d’utilisateur Microsoft Entra et non sur Clé d’accès.

Capture d’écran du conteneur de stockage avec des fichiers de test.

  1. Sélectionnez le fichier texte Baker.

    Vous ne devriez PAS pouvoir afficher ou télécharger l’objet blob et un message d’échec de l’autorisation devrait s’afficher.

  2. Sélectionnez le fichier texte Cascade.

    Vous devriez être en mesure d’afficher et de télécharger l’objet blob.

Étape 7 : Nettoyer les ressources

  1. Supprimez l’attribution de rôle que vous avez ajoutée.

  2. Supprimez le compte de stockage de test que vous avez créé.

  3. Supprimez l’utilisateur que vous avez créé.

Étapes suivantes