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
.
Si Chandra tente de lire un objet blob dépourvu de l’étiquette Project=Cascade
, l’accès n’est pas autorisé.
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
Connectez-vous au portail Azure en tant que propriétaire d’un abonnement.
Sélectionnez Microsoft Entra ID.
Créez un utilisateur ou recherchez un utilisateur existant. Ce tutoriel utilise Chandra comme exemple.
Étape 2 : Configurer le stockage
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.
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).
Dans le conteneur, sélectionnez sur Charger pour ouvrir le volet Charger l’objet blob.
Recherchez un fichier texte à charger.
Sélectionnez Avancé pour développer le volet.
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
Sélectionnez le Télécharger bouton de chargement pour télécharger le fichier.
Chargez un second fichier texte.
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
Ouvrez le groupe de ressources.
Sélectionnez Contrôle d’accès (IAM) .
Sélectionnez l’onglet Attributions de rôles afin de voir les attributions de rôles pour cette étendue.
Sélectionnez Ajouter>Ajouter une attribution de rôle. La page Ajouter une attribution de rôle s’ouvre :
- Sous l’onglet Rôles, sélectionnez le rôle Lecteur des données Blob du stockage.
- Sous l’onglet Membres, sélectionnez l’utilisateur que vous avez créé.
(Facultatif) Dans la zone Description, entrez Accès en lecture aux objets blob avec l’étiquette Project=Cascade.
Cliquez sur Suivant.
Étape 4 : Ajouter une condition
- Sous l’onglet Conditions (facultatif), sélectionnez Ajouter une condition. La page Ajouter une condition d’attribution de rôle s’affiche :
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 :
Dans la section Générer l’expression, sélectionnez Ajouter une expression.
La section Expression se développe.
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
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.
Sélectionnez Enregistrer pour ajouter la condition et revenir à la page Ajouter une attribution de rôle.
Cliquez sur Suivant.
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.
É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
Dans une nouvelle fenêtre, connectez-vous au portail Azure.
Connectez-vous avec les informations d’identification de l’utilisateur que vous avez créé précédemment.
Ouvrez le compte de stockage et le conteneur que vous avez créés.
Vérifiez que la méthode d’authentification est définie sur Compte d’utilisateur Microsoft Entra et non sur Clé d’accès.
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.
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
Supprimez l’attribution de rôle que vous avez ajoutée.
Supprimez le compte de stockage de test que vous avez créé.
Supprimez l’utilisateur que vous avez créé.