Configurer des identités managées pour ressources Azure sur une machine virtuelle Azure en utilisant Azure CLI

Les identités managées pour les ressources Azure sont une fonctionnalité de Microsoft Entra ID. Les services Azure prenant en charge les identités managées pour ressources Azure sont soumis à leur propre chronologie. Assurez-vous de passer en revue l’état Disponibilité des identités gérées pour votre ressource et les problèmes connus avant de commencer.

Les identités managées pour les ressources Azure fournissent aux services Azure une identité automatiquement gérée dans Microsoft Entra ID. Vous pouvez utiliser cette identité pour vous authentifier auprès de n’importe quel service prenant en charge l’authentification Microsoft Entra, sans avoir d’informations d’identification dans votre code.

Cet article explique comment effectuer les opérations suivantes d’identités managées pour ressources Azure sur une machine virtuelle Azure en utilisant Azure CLI :

  • Activer et désactiver l’identité managée affectée par le système sur une machine virtuelle Azure
  • Ajouter et supprimer une identité managée affectée par l’utilisateur sur une machine virtuelle Azure

Si vous n’avez pas encore de compte Azure, inscrivez-vous à un essai gratuit avant de continuer.

Prérequis

Identité managée affectée par le système

Dans cette section, vous allez découvrir comment activer et désactiver l’identité managée affectée par le système sur une machine virtuelle Azure en utilisant Azure CLI.

Activer une identité managée affectée par le système lors de la création d’une machine virtuelle Azure

Pour créer une machine virtuelle Azure avec l’identité managée affectée par le système sur une machine virtuelle, votre compte a besoin de l’affectation de rôle Contributeur de machine virtuelle. Aucune autre attribution de rôle de répertoire Microsoft Entra n’est requise.

  1. Créez un groupe de ressources pour l’imbrication et le déploiement de votre machine virtuelle et de ses ressources connexes, à l’aide de la commande az group create. Vous pouvez ignorer cette étape si vous possédez déjà le groupe de ressources que vous souhaitez utiliser à la place :

    az group create --name myResourceGroup --location westus
    
  2. Créez une machine virtuelle à l’aide de la commande az vm create. L’exemple suivant crée une machine virtuelle nommée myVM avec une identité managée affectée par le système, comme le demande le paramètre --assign-identity avec --role et --scope spécifiés. Les paramètres --admin-username et --admin-password spécifient le nom d’utilisateur et le mot de passe d’administration du compte pour la connexion à la machine virtuelle. Mettez à jour ces valeurs en fonction de votre environnement :

    az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --role contributor --scope mySubscription --admin-username azureuser --admin-password myPassword12
    

Activer une identité managée affectée par le système sur une machine virtuelle Azure existante

Pour activer l’identité managée affectée par le système sur une machine virtuelle, votre compte a besoin de l’affectation de rôle Contributeur d’identité managée. Aucune autre attribution de rôle de répertoire Microsoft Entra n’est requise.

  1. Si vous utilisez l’interface de ligne de commande Azure dans une console locale, commencez par vous connecter à Azure avec az login. Utilisez un compte associé à l’abonnement Azure qui contient la machine virtuelle.

    az login
    
  2. Utilisez az vm identity assign avec la commande identity assign pour activer l’identité affectée par le système sur une machine virtuelle existante :

    az vm identity assign -g myResourceGroup -n myVm
    

Désactiver l’identité affectée par le système d’une machine virtuelle Azure

Pour désactiver l’identité managée affectée par le système sur une machine virtuelle, votre compte a besoin de l’affectation de rôle Contributeur d’identité managée. Aucune autre attribution de rôle de répertoire Microsoft Entra n’est requise.

Si vous disposez d’une machine virtuelle qui n’a plus besoin de l’identité affectée par le système, mais a toujours besoin d’identités affectées par l’utilisateur, utilisez la commande suivante :

az vm update -n myVM -g myResourceGroup --set identity.type='UserAssigned' 

Si vous disposez d’une machine virtuelle qui n’a plus besoin d’identité affectée par le système et qui n’a pas d’identité affectée par l’utilisateur, utilisez la commande suivante :

Notes

La valeur none est sensible à la casse. Elle doit être en minuscules.

az vm update -n myVM -g myResourceGroup --set identity.type="none"

Identité managée affectée par l’utilisateur

Dans cette section, vous allez découvrir comment ajouter et supprimer une identité managée affectée par l’utilisateur sur une machine virtuelle Azure en utilisant Azure CLI. Si vous créez votre identité managée affectée par l’utilisateur dans un autre groupe de ressources que votre machine virtuelle. Vous devrez utiliser l’URL de votre identité managée pour l’affecter à votre machine virtuelle. Par exemple :

--identities "/subscriptions/<SUBID>/resourcegroups/<RESROURCEGROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_ASSIGNED_ID_NAME>"

Attribuer une identité managée affectée par l’utilisateur lors de la création d’une machine virtuelle Azure

Pour affecter une identité managée affectée par l’utilisateur à une machine virtuelle lors de sa création, votre compte a besoin de l’affectation de rôle Opérateur d’identité managée et Contributeur d’identité managée. Aucune autre attribution de rôle de répertoire Microsoft Entra n’est requise.

  1. Vous pouvez ignorer cette étape si vous disposez déjà d’un groupe de ressources que vous souhaitez utiliser. Créez un groupe de ressources pour contenir et déployer votre identité managée affectée par l’utilisateur en utilisant la commande az group create. N’oubliez pas de remplacer les valeurs des paramètres <RESOURCE GROUP> et <LOCATION> par vos propres valeurs. :

    az group create --name <RESOURCE GROUP> --location <LOCATION>
    
  2. Créez une identité managée affectée par l’utilisateur en utilisant la commande az identity create. Le paramètre -g spécifie le groupe de ressources où l’identité managée affectée par l’utilisateur est créée, et le paramètre -n spécifie son nom.

    Important

    Lorsque vous créez des identités managées affectées par l’utilisateur, le nom doit commencer par une lettre ou un chiffre, et peut inclure une combinaison de caractères alphanumériques, de traits d’union (-) et de traits de soulignement (_). Pour que l’attribution à une machine virtuelle ou à un groupe de machines virtuelles identiques fonctionne correctement, le nom est limité à 24 caractères. Pour plus d’informations, voir FAQ et problèmes connus.

    az identity create -g myResourceGroup -n myUserAssignedIdentity
    

    La réponse contient les détails de l’identité managée affectée par l’utilisateur qui a été créée, comme dans l’exemple suivant. La valeur d’ID de ressource attribuée à l’identité managée affectée par l’utilisateur est utilisée à l’étape suivante.

    {
        "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
        "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
        "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
        "location": "westcentralus",
        "name": "<USER ASSIGNED IDENTITY NAME>",
        "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
        "resourceGroup": "<RESOURCE GROUP>",
        "tags": {},
        "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
        "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  3. Créez une machine virtuelle à l’aide de la commande az vm create. L’exemple suivant crée une machine virtuelle associée à la nouvelle identité managée affectée par l’utilisateur, tel que spécifiée par le paramètre --assign-identity avec --role et --scope spécifiés. N’oubliez pas de remplacer les paramètres <RESOURCE GROUP>, <VM NAME>, <USER NAME>, <PASSWORD>, <USER ASSIGNED IDENTITY NAME>, <ROLE> et <SUBSCRIPTION> par vos propres valeurs.

    az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image <SKU linux image>  --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY NAME> --role <ROLE> --scope <SUBSCRIPTION> 
    

Attribuer une identité managée affectée par l’utilisateur à une machine virtuelle Azure existante

Pour affecter une identité managée affectée par l’utilisateur à une machine virtuelle, votre compte a besoin de l’affectation de rôle Opérateur d’identité managée et Contributeur d’identité managée. Aucune autre attribution de rôle de répertoire Microsoft Entra n’est requise.

  1. Créez une identité attribuée à l’utilisateur avec la commande az identity create. Le paramètre -g spécifie le groupe de ressources où l’identité managée affectée par l’utilisateur est créée, et le paramètre -n spécifie son nom. N’oubliez pas de remplacer les valeurs des paramètres <RESOURCE GROUP> et <USER ASSIGNED IDENTITY NAME> par vos propres valeurs :

    Important

    La création d’identités managées affectées par l’utilisateur avec des caractères spéciaux (tel un trait de soulignement) dans le nom n’est pas prise en charge actuellement. Utilisez des caractères alphanumériques. Revenez ultérieurement pour des mises à jour. Pour plus d’informations, voir FAQ et problèmes connus.

    az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
    

    La réponse contient les détails de l’identité managée affectée par l’utilisateur qui a été créée, comme dans l’exemple suivant.

    {
      "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
      "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
      "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
      "location": "westcentralus",
      "name": "<USER ASSIGNED IDENTITY NAME>",
      "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
      "resourceGroup": "<RESOURCE GROUP>",
      "tags": {},
      "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  2. Attribuez l’identité managée affectée par l’utilisateur à votre machine virtuelle en utilisant la commande az vm identity assign. N’oubliez pas de remplacer les valeurs des paramètres <RESOURCE GROUP> et <VM NAME> par vos propres valeurs. <USER ASSIGNED IDENTITY NAME> est la propriété name de ressource de l’identité managée affectée par l’utilisateur, telle que créée à l’étape précédente. Si vous avez créé votre identité managée affectée par l’utilisateur dans un autre groupe de ressources que votre machine virtuelle. Vous devrez utiliser l’URL de votre identité managée.

    az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
    

Supprimer une identité managée affectée par l’utilisateur d’une machine virtuelle Azure

Pour supprimer une identité affectée par l’utilisateur à une machine virtuelle, votre compte a besoin de l’affectation de rôle Contributeur d’identité managée.

S’il s’agit de la seule identité managée affectée par l’utilisateur attribuée à la machine virtuelle, UserAssigned est supprimé de la valeur du type d’identité. N’oubliez pas de remplacer les valeurs des paramètres <RESOURCE GROUP> et <VM NAME> par vos propres valeurs. <USER ASSIGNED IDENTITY> sera la propriété name de l’identité managée affectée par l’utilisateur, qui est accessible dans la section identity de la machine virtuelle en utilisant la commande az vm identity show :

az vm identity remove -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>

Si votre machine virtuelle ne dispose pas d’une identité managée affectée par le système, et si vous souhaitez supprimer toutes les identités affectées par l’utilisateur, utilisez la commande suivante :

Notes

La valeur none est sensible à la casse. Elle doit être en minuscules.

az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null

Si votre machine virtuelle dispose d’une identité affectées par le système et d’identité affectées par l’utilisateur, vous pouvez supprimer toutes les identités affectées par l’utilisateur en choisissant de n’utiliser que l’identité affectée par le système. Utilisez la commande suivante :

az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null 

Étapes suivantes