Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure Container Registry (ACR) prend en charge le contrôle d’accès basé sur les attributs Microsoft Entra (ABAC) pour la gestion des autorisations de référentiel. Cette fonctionnalité améliore la sécurité en activant la gestion des autorisations plus granulaires aux référentiels de registre de conteneurs. ABAC s’appuie sur le contrôle d’accès en fonction du rôle Microsoft Entra (RBAC) en introduisant des conditions spécifiques au référentiel dans les attributions de rôles.
ABAC est conçu pour gérer les autorisations de référentiel avec le contrôle d’accès en fonction du rôle Microsoft Entra (RBAC), les attributions de rôles Microsoft Entra et les identités Microsoft Entra. Pour gérer les autorisations de référentiel sans Microsoft Entra, utilisez plutôt des autorisations de référentiel basées sur des jetons non-Microsoft Entra .
Configurer le mode d’autorisations d’attribution de rôle de Registre
Pour utiliser Microsoft Entra ABAC pour gérer les autorisations de référentiel, vérifiez que le mode d’autorisations d’attribution de rôle de Registre est défini sur « RBAC Registry + ABAC Repository Permissions ». Ce mode vous permet d’utiliser des attributions de rôles RBAC (à l’aide de rôles intégrés ACR) avec des conditions ABAC facultatives pour étendre les attributions de rôles à des référentiels spécifiques.
Vous pouvez configurer le mode d’autorisations d’attribution de rôle d’un registre lors de la création du Registre ou en mettant à jour un registre existant. Cette attribution de rôle peut être effectuée via le portail Azure ou Azure CLI. Vous pouvez activer ABAC pour n’importe quel registre, quelle que soit sa référence SKU.
Remarque
Vérifiez que vous disposez de la dernière version d’Azure CLI installée en exécutant la commande az upgrade
Azure CLI.
En outre, si vous avez déjà participé à la préversion privée de cette fonctionnalité, vous avez peut-être installé une extension de préversion privée personnalisée pour gérer ACR ABAC.
Cette extension personnalisée n’est plus nécessaire et doit être désinstallée (pour éviter les conflits) en exécutant la commande az extension remove --name acrabac
Azure CLI.
Effet sur les attributions de rôles existantes
Important
Si vous configurez un registre pour utiliser « RBAC Registry + ABAC Repository Permissions », certaines attributions de rôles existantes ne sont pas respectées, car un autre ensemble de rôles intégrés ACR s’applique aux registres avec ABAC.
Par exemple, les rôles AcrPull
, AcrPush
et AcrDelete
ne sont pas respectés dans un registre activé par ABAC.
Au lieu de cela, dans les registres avec ABAC, utilisez les rôles Container Registry Repository Reader
, Container Registry Repository Writer
, et Container Registry Repository Contributor
pour accorder des autorisations d'image soit au niveau du registre soit spécifiques au référentiel.
Pour plus d’informations sur le rôle basé sur votre scénario et le mode d’autorisations d’attribution de rôle de Registre, consultez les scénarios pour les rôles intégrés ACR. Vous pouvez également consulter la référence des rôles intégrés ACR pour obtenir une description détaillée de chaque rôle.
Créer un registre avec ABAC activé
Lors de la création d’un registre via le portail Azure, sélectionnez l’option « Registre RBAC + Autorisations du référentiel ABAC » dans la liste déroulante « Mode Autorisations d’attribution de rôle ».
Continuez à remplir le reste du formulaire de création du Registre, puis cliquez sur « Créer » pour créer le Registre. Pour plus d’informations sur la création d’un registre, consultez Créer un registre Azure Container Registry à l’aide du portail Azure.
Mettre à jour un registre existant pour activer ABAC
Pour afficher le mode d’autorisations d’attribution de rôle existant d’un registre, accédez au panneau « Propriétés » du Registre. Le mode d’autorisations d’attribution de rôle actuel s’affiche dans le champ « Mode Autorisations d’attribution de rôle ».
Pour mettre à jour le « mode d’autorisations d’attribution de rôle » d’un registre existant, sélectionnez « Registre RBAC + Autorisations du référentiel ABAC », puis cliquez sur « Enregistrer » pour mettre à jour le Registre.
Attribution d’autorisations de référentiel Microsoft Entra ABAC
Vous pouvez utiliser le portail Azure ou Azure CLI pour attribuer des conditions Microsoft Entra ABAC pour étendre les attributions de rôles à des référentiels spécifiques. Cette section fournit des exemples d’ajout de conditions ABAC pour un référentiel spécifique, un préfixe de référentiel (caractère générique) ou plusieurs préfixes de référentiel (plusieurs caractères génériques).
Rôles intégrés activés par ABAC
Les rôles intégrés ACR par défaut suivants sont des rôles ABAC. Vous pouvez spécifier des conditions ABAC facultatives pour les rôles suivants afin d’étendre éventuellement les attributions de rôles à des référentiels spécifiques.
Container Registry Repository Reader
- Rôle activé par ABAC qui accorde des autorisations pour lire des images, des balises et des métadonnées dans les référentiels d’un registre.Container Registry Repository Writer
- Rôle compatible ABAC qui accorde des autorisations de lecture, d’écriture et de mise à jour d’images, de balises et de métadonnées dans les référentiels d’un registre.Container Registry Repository Contributor
- Rôle compatible ABAC qui accorde des autorisations de lecture, d’écriture, de mise à jour et de suppression d’images, de balises et de métadonnées dans les référentiels d’un registre.
Notez que ces rôles ne prennent pas en charge les autorisations de référencement de catalogue pour répertorier les référentiels dans un Registre.
Pour répertorier tous les référentiels d’un registre (sans accorder d’autorisations pour lire le contenu du référentiel), vous devez également attribuer le Container Registry Repository Catalog Lister
rôle.
Ce rôle distinct ne prend pas en charge les conditions ABAC et dispose toujours des autorisations nécessaires pour répertorier tous les référentiels d’un registre.
Important
Si vous attribuez un rôle activé par ABAC sans conditions spécifiques, l'attribution de rôle ne sera pas limitée aux référentiels. Cela signifie qu’une attribution de rôle sans conditions ABAC sera traitée comme une attribution de rôle à l’échelle du Registre, accordant des autorisations à tous les référentiels du Registre. Pour limiter une attribution de rôle à des dépôts spécifiques, vous devez inclure des conditions ABAC lors de l’attribution d’un rôle activé par ABAC.
Pour plus d’informations sur le rôle basé sur votre scénario et le mode d’autorisations d’attribution de rôle de Registre, consultez les scénarios pour les rôles intégrés ACR. Vous pouvez également consulter la référence des rôles intégrés ACR pour obtenir une description détaillée de chaque rôle.
Attribution de rôles avec étendue spécifique à un référentiel
Dans cet exemple, nous affectons le Container Registry Repository Reader
rôle pour accorder des autorisations de tirage à un seul référentiel.
En ajoutant des conditions ABAC, cette attribution de rôle permet à l’identité d’extraire des images, d’afficher des balises et de lire les métadonnées uniquement à partir du référentiel spécifié, ce qui empêche l’accès à d’autres référentiels dans le Registre.
Accédez au volet « Contrôle d’accès (IAM) » du Registre. Cliquez sur « Ajouter », puis sélectionnez « Ajouter une attribution de rôle ».
Sélectionnez Container Registry Repository Reader
comme rôle.
Continuez en sélectionnant l'identité à qui attribuer le rôle.
Ensuite, passez à l’onglet « Conditions ». Sélectionnez le bouton « Ajouter une condition » pour ajouter une nouvelle condition ABAC pour restreindre l’étendue de l’attribution de rôle.
Sélectionnez l’option de l’éditeur « Visuel » dans le générateur de conditions ABAC.
Sélectionnez les actions (autorisations) à accorder dans cette attribution de rôle délimitée au référentiel. Pour la plupart des cas d’usage, sélectionnez toutes les actions (autorisations) appartenant au rôle que vous avez sélectionné précédemment, ce qui garantit que les identités peuvent uniquement effectuer ces actions dans l’étendue du référentiel.
Ajoutez une expression pour la condition ABAC pour restreindre l’attribution de rôle à un référentiel spécifique.
Configurez les options suivantes pour que l’expression limite la condition ABAC à un référentiel spécifique :
- Source d’attribut :
Request
- Attribut :
Repository name
- Opérateur :
StringEqualsIgnoreCase
- Valeur :
<repository-name>
- nom complet du référentiel.- Par exemple, si le nom complet du référentiel est
nginx
, entreznginx
. - Si le nom complet du référentiel est
backend/nginx
, entrezbackend/nginx
.
- Par exemple, si le nom complet du référentiel est
Cliquez sur « Enregistrer » pour enregistrer la condition ABAC.
Vérifiez la condition ABAC d’attribution de rôle. La page de révision inclut une expression de code de la condition ABAC, qui peut être utilisée pour effectuer la même attribution de rôle avec la même condition ABAC à l’aide d’Azure CLI.
Effectuez l’attribution de rôle en cliquant sur « Vérifier + affecter ».
Une fois l’attribution de rôle créée, vous pouvez afficher, modifier ou supprimer l’attribution de rôle. Accédez à « Contrôle d’accès (IAM) » du Registre et sélectionnez l’onglet « Attributions de rôles » pour afficher la liste des attributions de rôles existantes qui s’appliquent au Registre.
Attribution de rôle avec étendue à plusieurs référentiels à l’aide du préfixe de référentiel (caractère générique)
Dans cet exemple, nous attribuons le rôle Container Registry Repository Reader
pour accorder des autorisations de pull à plusieurs référentiels ayant un préfixe commun (caractère générique).
En ajoutant des conditions ABAC, cette attribution de rôle permet à l’identité d’extraire des images, d’afficher des balises et de lire les métadonnées uniquement à partir des référentiels avec un préfixe commun, ce qui empêche l’accès à d’autres référentiels dans le Registre.
Si vous avez suivi l’exemple précédent pour attribuer le Container Registry Repository Reader
rôle à un référentiel spécifique, vous devez supprimer cette attribution de rôle (en accédant au panneau « Contrôle d’accès (IAM) » et en sélectionnant l’onglet « Attributions de rôles », avant de créer un nouveau rôle avec une condition ABAC délimitée à un préfixe de référentiel.
Suivez les mêmes étapes que dans l’exemple précédent pour effectuer une attribution de rôle avec des conditions ABAC.
Dans l’étape d’ajout d’une expression pour la condition ABAC, configurez une expression pour une condition ABAC afin d’étendre l’attribution de rôle à plusieurs référentiels avec un préfixe commun (caractère générique). Configurez les options suivantes :
- Source d’attribut :
Request
- Attribut :
Repository name
- Opérateur :
StringStartsWithIgnoreCase
- Valeur :
<repository-prefix>
- le préfixe des référentiels, y compris la barre oblique finale/
.- Par exemple, pour accorder des autorisations à tous les référentiels avec le préfixe
backend/
, tel quebackend/nginx
etbackend/redis
, entrezbackend/
. - Pour accorder des autorisations à tous les référentiels avec le préfixe
frontend/js/
, tels quefrontend/js/react
etfrontend/js/vue
, entrezfrontend/js/
.
- Par exemple, pour accorder des autorisations à tous les référentiels avec le préfixe
Important
La barre oblique finale /
est obligatoire dans le champ Value
pour l'expression de la condition ABAC.
Si vous n’incluez pas la barre oblique finale /
, vous risquez d'accorder involontairement des autorisations à d’autres référentiels qui ne correspondent pas au préfixe.
Par exemple, si vous entrez backend
sans la barre oblique de fin /
, l’attribution de rôle accorde des autorisations à tous les référentiels avec le préfixe backend
, tels que backend/nginx
, backend/redis
, backend-infra/k8s
, backend-backup/store
, backend
et backendsvc/containers
.
Cliquez sur « Enregistrer » pour enregistrer la condition ABAC.
Passez en revue la condition d'attribution de rôle dans ABAC. La page de révision inclut une expression de code de la condition ABAC, qui peut être utilisée pour effectuer la même attribution de rôle avec la même condition ABAC à l’aide d’Azure CLI.
Effectuez l’attribution de rôle en cliquant sur « Vérifier + affecter ».
Une fois l’attribution de rôle créée, vous pouvez afficher, modifier ou supprimer l’attribution de rôle. Accédez à « Contrôle d’accès (IAM) » du Registre et sélectionnez l’onglet « Attributions de rôles » pour afficher la liste des attributions de rôles existantes qui s’appliquent au Registre.
Attribution de rôle à plusieurs référentiels à l’aide de plusieurs préfixes de référentiel (plusieurs caractères génériques)
Dans cet exemple, nous assignons le Container Registry Repository Reader
rôle pour accorder des autorisations d’extraction à plusieurs référentiels sous deux préfixes différents (plusieurs caractères génériques).
En ajoutant des conditions ABAC, cette attribution de rôle permet à l’identité d’extraire des images, d’afficher des balises et de lire les métadonnées uniquement à partir du référentiel spécifié, ce qui empêche l’accès à d’autres référentiels dans le Registre.
Si vous avez suivi l’exemple précédent pour attribuer le Container Registry Repository Reader
rôle à un référentiel spécifique, vous devez supprimer cette attribution de rôle (en accédant au panneau « Contrôle d’accès (IAM) » et en sélectionnant l’onglet « Attributions de rôles », avant de créer un nouveau rôle avec une condition ABAC délimitée à un préfixe de référentiel.
Suivez les mêmes étapes que dans l’exemple précédent pour effectuer une attribution de rôle avec des conditions ABAC.
Dans l’étape pour ajouter une expression pour la condition ABAC, configurez deux expressions pour étendre l’attribution de rôle à plusieurs référentiels sous deux préfixes : backend/
et frontend/js/
(plusieurs caractères génériques).
Pour la première expression, configurez les options suivantes :
- Source d’attribut :
Request
- Attribut :
Repository name
- Opérateur :
StringStartsWithIgnoreCase
- Valeur :
<repository-prefix>
- le préfixe des référentiels, y compris la barre oblique finale/
.- Par exemple, pour accorder des autorisations à tous les référentiels avec le préfixe
backend/
, tel quebackend/nginx
etbackend/redis
, entrezbackend/
. - Pour accorder des autorisations à tous les référentiels avec le préfixe
frontend/js/
, tels quefrontend/js/react
etfrontend/js/vue
, entrezfrontend/js/
.
- Par exemple, pour accorder des autorisations à tous les référentiels avec le préfixe
Cliquez sur « Ajouter une expression ». Vérifiez que l’opérateur booléen est défini sur « Or ». Vous pouvez éventuellement sélectionner « Groupe » pour regrouper les expressions et contrôler l’ordre d’évaluation. L’éditeur visuel prend également en charge plusieurs opérateurs booléens, notamment « And », « Or », un regroupement hiérarchique et une négation.
Pour la deuxième expression, configurez les options suivantes :
- Source d’attribut :
Request
- Attribut :
Repository name
- Opérateur :
StringStartsWithIgnoreCase
- Valeur :
<repository-prefix>
- le préfixe des référentiels, y compris la barre oblique finale/
.- Par exemple, pour accorder des autorisations à tous les référentiels avec le préfixe
backend/
, tel quebackend/nginx
etbackend/redis
, entrezbackend/
. - Pour accorder des autorisations à tous les dépôts avec le préfixe
frontend/js/
, tels quefrontend/js/react
etfrontend/js/vue
, entrezfrontend/js/
.
- Par exemple, pour accorder des autorisations à tous les référentiels avec le préfixe
Important
La barre oblique finale /
est obligatoire dans le champ Value
pour l'expression de la condition ABAC.
Si vous n’incluez pas la barre oblique de fin /
, vous pourriez accorder involontairement des autorisations à d’autres référentiels qui ne correspondent pas au préfixe.
Par exemple, si vous entrez backend
sans la barre oblique finale /
, l’attribution de rôle accorde des autorisations à tous les référentiels avec le préfixe backend
, tels que backend/nginx
, backend/redis
, backend-infra/k8s
, backend-backup/store
, backend
et backendsvc/containers
.
Cliquez sur « Enregistrer » pour enregistrer la condition ABAC.
Vérifiez la condition ABAC d’attribution de rôle. La page de révision inclut une expression de code de la condition ABAC, qui peut être utilisée pour effectuer la même attribution de rôle avec la même condition ABAC à l’aide d’Azure CLI.
Effectuez l’attribution de rôle en cliquant sur « Vérifier + affecter ».
Une fois l’attribution de rôle créée, vous pouvez afficher, modifier ou supprimer l’attribution de rôle. Accédez à « Contrôle d’accès (IAM) » du Registre et sélectionnez l’onglet « Attributions de rôles » pour afficher la liste des attributions de rôles existantes qui s’appliquent au Registre.
Nombre maximal de conditions ABAC
Le portail Azure prend en charge un nombre limité de conditions ABAC par attribution de rôle.
Pour ajouter plus que la limite du portail Azure des conditions ABAC, vous pouvez utiliser Azure CLI pour créer l’attribution de rôle avec plus de conditions ABAC.
Étapes suivantes
- Pour obtenir une vue d’ensemble générale de ces rôles intégrés, notamment les types d’identité d’attribution de rôle pris en charge, les étapes d’exécution d’une attribution de rôle et les rôles recommandés pour les scénarios courants, consultez les rôles intégrés RBAC Azure Container Registry.
- Pour effectuer des attributions de rôles avec des conditions Microsoft Entra ABAC facultatives pour étendre les attributions de rôles à des référentiels spécifiques, consultez les autorisations de référentiel Microsoft Entra.
- Pour obtenir une référence détaillée de chaque rôle intégré ACR, y compris les autorisations accordées par chaque rôle, consultez la référence du répertoire des rôles Azure Container Registry.
- Pour plus d’informations sur la création de rôles personnalisés répondant à vos besoins et exigences spécifiques, consultez rôles personnalisés Azure Container Registry.