Partager via


Tutoriel : Ajouter une condition d’attribution de rôle pour restreindre l’accès aux objets blob à 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 granulaire 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 balise d’index de 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’objet blob de liste inclut l’attribut de requête et l’attribut de requête d’instantané pour l’espace de noms hiérarchique 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.

Consultez les Conditions d’utilisation supplémentaires pour les préversions Microsoft Azure pour les conditions légales qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou qui ne sont pas encore publiées en disponibilité générale.

Conditions préalables

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 avec une balise spécifique. Par exemple, vous ajoutez une condition à une attribution de rôle afin que Chandra puisse uniquement lire des fichiers avec la balise Project=Cascade.

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

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

Diagramme montrant l’accès en lecture aux objets blob avec la balise 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 l'option des balises d'indexation de 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 Private (pas d’accès anonyme).

  3. Dans le conteneur, sélectionnez Charger pour ouvrir le volet Charger un objet blob.

  4. Recherchez un fichier texte à charger.

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

  6. Dans la section Balises d'index Blob, ajoutez la balise d'index Blob suivante au fichier texte.

    Si vous ne voyez pas la section Blob index tags et que vous venez de finaliser l'inscription de votre abonnement, vous devrez peut-être attendre quelques minutes pour que les modifications se propagent. Pour plus d’informations, consultez Utiliser des balises d’index de blob pour gérer et rechercher des données dans Azure Blob Storage.

    Remarque

    Les blobs prennent également en charge la possibilité de stocker des métadonnées 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
    Projet Cascade

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

  1. Sélectionnez le bouton Charger pour charger le fichier.

  2. Chargez un deuxième fichier texte.

  3. Ajoutez la balise d’index d’objet blob suivante au deuxième fichier texte.

    Clé Valeur
    Projet Boulanger

Étape 3 : Assigner un rôle de gestion des données 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 d’afficher 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 assignation de rôle.

  1. Sous l’onglet Rôles, sélectionnez le rôle Lecteur de données de Blob de 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éé précédemment.

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

  1. (Facultatif) Dans la zone Description, saisissez Accès en lecture aux blobs avec la balise 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 une expression, sélectionnez Ajouter une expression.

    La section Expression se développe.

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

    Réglage Valeur
    Source de l’attribut Ressource
    Caractéristique Balises d’index de blob [Valeurs dans la clé]
    Clé Projet
    Opérateur StringEqualsIgnoreCase
    Valeur Cascade

Capture d’écran de la section Générer une expression pour les balises d’index d’objet blob.

  1. Faites défiler jusqu’au type d’éditeur et 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 revenez à la page Ajouter une attribution de rôle.

  2. Cliquez sur Suivant.

  3. Sous l’onglet Vérifier + affecter, sélectionnez Vérifier + affecter pour attribuer le rôle conformément à 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 des attributions de rôle après l’attribution du rôle.

Étape 5 : Attribuer le rôle de lecteur

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

    Remarque

    En règle générale, vous n’avez pas besoin d’attribuer le rôle Lecteur. Toutefois, cela 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 en tant qu’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 la clé Access.

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 le blob, et un message d'échec d'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