Utiliser une identité managée Azure dans ACR Tasks
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 aux services Azure sélectionnés une identité automatiquement géré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"
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 connaître la liste complète des rôles de registre, consultez Rôles et autorisations Azure Container Registry.
- 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.
az role assignment create \
--assignee <principalID> \
--scope <registryID> \
--role acrpull
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é. Par 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
.
Le paramètre --use-identity
n’est pas facultatif, si le registre dispose d’un accès réseau public désactivé et s’appuie uniquement sur certains services approuvés pour exécuter des tâches ACR. Consultez l’exemple de tâches ACR en tant que service approuvé.
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 :