Remarque
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.
Activez une identité managée pour les ressources Azure dans une tâche ACR de sorte que la tâche puisse accéder à d’autres ressources Azure sans devoir fournir ou gérer des informations d’identification. Par exemple, utilisez une identité managée pour activer une étape de tâche afin d’extraire (pull) ou d’envoyer (push) des images de conteneur à un autre registre.
Dans cet article, vous allez apprendre à utiliser l’interface de ligne de commande Azure pour activer une identité managée attribuée par l’utilisateur ou par le système sur une tâche ACR. Vous pouvez utiliser le service Azure Cloud Shell ou une installation locale d’Azure CLI. Si vous souhaitez l’utiliser en local, la version 2.0.68 ou ultérieure est requise. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
À des fins d’illustration, les exemples de commandes de cet article utilisent az acr task create pour créer une tâche de génération d’image de base qui active une identité managée. Pour obtenir des exemples de scénarios d’accès aux ressources sécurisées à partir d’une tâche ACR à l’aide d’une identité managée, consultez :
- Authentification multiregistre
- Accéder à des ressources externes avec des secrets stockés dans Azure Key Vault
Pourquoi utiliser une identité managée ?
Une identité managée pour les ressources Azure fournit des services Azure sélectionnés accompagnés d'une identité automatiquement managée dans Microsoft Entra ID. Vous pouvez configurer une tâche ACR avec une identité managée afin que la tâche puisse accéder à d’autres ressources Azure sécurisées, sans fournir d’informations d’identification dans les étapes de la tâche.
Les identités managées sont de deux types :
Les identités attribuées par l’utilisateur, que vous pouvez attribuer à plusieurs ressources et conserver aussi longtemps que vous le souhaitez. Les identités attribuées par l’utilisateur sont actuellement en préversion.
Une identité attribuée par le système, propre à une ressource spécifique, telle qu’une tâche ACR, qui possède la même durée de vie que cette ressource.
Vous pouvez activer l’un ou les deux types d’identités dans une tâche ACR. Accordez l’accès à une autre ressource, comme n’importe quel principal de sécurité. Lorsque la tâche s’exécute, elle utilise l’identité pour accéder à la ressource dans toutes les étapes de la tâche qui nécessitent un accès.
Étapes d’utilisation d’une identité managée
Suivez ces étapes de haut niveau pour utiliser une identité managée avec une tâche ACR.
1. (Facultatif) Créer une identité attribuée par l’utilisateur
Si vous prévoyez d’utiliser une identité attribuée par l’utilisateur, utilisez une identité existante ou créez l’identité avec Azure CLI ou autres outils Azure. Par exemple, utilisez la commande az identity create.
Si vous envisagez d’utiliser une identité attribuée par le système uniquement, ignorez cette étape. Vous créez une identité attribuée par le système lors de la création de la tâche ACR.
2. Activer l’identité sur une tâche ACR
Lorsque vous créez une tâche ACR, vous pouvez éventuellement activer une identité attribuée par l’utilisateur, une identité attribuée par le système, ou les deux. Par exemple, transmettez le paramètre --assign-identity lorsque vous exécutez la commande az acr task create dans l’interface de ligne de commande Azure.
Pour activer une identité attribuée par le système, transmettez --assign-identity sans valeur ou assign-identity [system]. L’exemple de commande suivant crée une tâche Linux à partir d’un dépôt GitHub public qui génère l’image hello-world et active une identité managée attribuée par le système :
az acr task create \
--image hello-world:{{.Run.ID}} \
--name hello-world --registry MyRegistry \
--context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
--file Dockerfile \
--commit-trigger-enabled false \
--assign-identity
Pour activer une identité attribuée par l’utilisateur, transmettez --assign-identity avec une valeur d’ID de la ressource de l’identité. L’exemple de commande suivant crée une tâche Linux à partir d’un dépôt GitHub public qui génère l’image hello-world et active une identité managée attribuée par l’utilisateur :
az acr task create \
--image hello-world:{{.Run.ID}} \
--name hello-world --registry MyRegistry \
--context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
--file Dockerfile \
--commit-trigger-enabled false
--assign-identity <resourceID>
Vous pouvez récupérer l’ID de la ressource de l’identité en exécutant la commande az identity show. L’ID de la ressource pour l’ID myUserAssignedIdentity dans le groupe de ressources myResourceGroup se présente sous cette forme :
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUserAssignedIdentity"
Remarque
Si vous utilisez un registre source compatible ABAC, vous devez attacher et définir explicitement une identité managée qui sera utilisée par la tâche pour vous authentifier auprès d’un registre source compatible ABAC à l’aide du nouvel --source-acr-auth-id indicateur. Ensuite, vous devez effectuer une attribution de rôle distincte (avec des conditions ABAC facultatives) pour accorder ces autorisations d’identité à un registre source compatible ABAC.
3. Accorder des autorisations d’identité pour accéder à d’autres ressources Azure
En fonction des exigences de votre tâche, accordez les autorisations d’identité d’accès à d’autres ressources Azure. Voici quelques exemples :
- Attribuez à l’identité managée un rôle doté des autorisations pull (tirage), push/pull (tirage/envoi) ou d’autres autorisations sur un registre de conteneurs cible dans Azure. Pour obtenir la liste complète des rôles de Registre, consultez la vue d’ensemble des autorisations et des rôles d’Azure Container Registry Entra.
- Attribuez à l’identité managée un rôle pour lire les secrets dans un coffre de clés Azure.
Utilisez l’interface de ligne de commande Azure ou d’autres outils Azure pour gérer l’accès en fonction du rôle aux ressources. Par exemple, exécutez la commande az role assignment create pour attribuer à l’identité un rôle pour la ressource.
L’exemple suivant attribue à une identité managée les autorisations de tirage (pull) à partir d’un registre de conteneurs. La commande spécifie l’ID du principal de l’identité de tâche et l’ID de la ressource du registre cible.
Le rôle approprié à utiliser dans l’attribution de rôle dépend de si le registre est activé par ABAC ou non.
ROLE="Container Registry Repository Reader" # For ABAC-enabled registries. For non-ABAC registries, use AcrPull.
az role assignment create \
--assignee <principalID> \
--scope <registryID> \
--role "$ROLE"
4. (Facultatif) Ajouter des informations d’identification à la tâche
Si votre tâche a besoin d’informations d’identification pour extraire ou envoyer des images vers un autre registre personnalisé, ou pour accéder à d’autres ressources, ajoutez des informations d’identification à la tâche. Exécutez la commande az acr task credential add pour ajouter des informations d’identification, puis transmettez le paramètre --use-identity pour indiquer que l’identité peut accéder aux informations d’identification.
Par exemple, pour ajouter des informations d’identification pour une identité attribuée par le système afin de s’authentifier auprès du registre de conteneurs Azure targetregistry, transmettez use-identity [system] :
az acr task credential add \
--name helloworld \
--registry myregistry \
--login-server targetregistry.azurecr.io \
--use-identity [system]
Pour ajouter des informations d’identification pour une identité attribuée par l’utilisateur à authentifier auprès du registre targetregistry, transmettez use-identity avec une valeur de l’ID client de l’identité. Voici un exemple :
az acr task credential add \
--name helloworld \
--registry myregistry \
--login-server targetregistry.azurecr.io \
--use-identity <clientID>
Vous pouvez récupérer l’ID client de l’identité en exécutant la commande az identity show. L’ID client est un GUID sous la forme xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
5. Exécuter la tâche
Après avoir configuré une tâche avec une identité managée, exécutez la tâche. Par exemple, pour tester l’une des tâches créées dans cet article, déclenchez-la manuellement à l’aide de la commande az acr task run. Si vous avez configuré des déclencheurs de tâche automatisés supplémentaires, la tâche s’exécute quand elle est déclenchée automatiquement.
Étapes suivantes
Dans cet article, vous avez appris à activer et utiliser une identité managée attribuée par l’utilisateur ou par le système sur une tâche ACR. Pour obtenir des scénarios d’accès aux ressources sécurisées à partir d’une tâche ACR à l’aide d’une identité managée, consultez :