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

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.

Dans cet article, en utilisant le modèle de déploiement Azure Resource Manager, vous allez apprendre à effectuer les opérations suivantes d’identités managées pour ressources Azure sur une machine virtuelle Azure :

Prérequis

Modèles Microsoft Azure Resource Manager

Comme pour le portail Azure et le script, les modèles Azure Resource Manager offrent la possibilité de déployer des ressources nouvelles ou modifiées définies par un groupe de ressources Azure. Plusieurs options sont disponibles pour la modification du modèle et le déploiement, à la fois localement et sur le portail, y compris :

Quelle que soit l’option choisie, la syntaxe de modèle est identique lors du déploiement initial et lors du redéploiement. L’activation d’une identité managée affectée par le système ou par l’utilisateur sur une machine virtuelle s’effectue de la même manière, que la machine soit nouvelle ou existante. De plus, par défaut, Azure Resource Manager effectue une mise à jour incrémentielle au niveau des déploiements.

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

Dans cette section, vous allez activer et désactiver une identité managée affectée par le système en utilisant un modèle Azure Resource Manager.

Activer une identité managée affectée par le système pendant la création d’une machine virtuelle Azure ou sur une machine virtuelle 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 vous connectez à Azure localement ou via le portail Azure, utilisez un compte associé à l’abonnement Azure qui contient l’ordinateur virtuel.

  2. Pour activer l’identité managée affectée par le système, chargez le modèle dans un éditeur, recherchez la ressource Microsoft.Compute/virtualMachines qui vous intéresse dans la section resources, puis ajoutez la propriété "identity" au même niveau que la propriété "type": "Microsoft.Compute/virtualMachines". Utilisez la syntaxe suivante :

    "identity": {
        "type": "SystemAssigned"
    },
    
  3. Lorsque vous avez terminé, les sections ci-après doivent être ajoutées à la section resource de votre modèle et doivent ressembler à ce qui suit :

     "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "SystemAssigned",
                 }                        
         }
     ]
    

Attribuer un rôle à l’identité managée affectée par le système de la machine virtuelle

Après avoir activé une identité managée affectée par le système sur votre machine virtuelle, vous pouvez lui attribuer un rôle, comme l’accès Lecteur au groupe de ressources dans lequel elle a été créée. Vous trouverez des informations détaillées pour vous aider dans cette étape dans l’article Attribuer des rôles Azure avec des modèles Azure Resource Manager.

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

Pour supprimer l’identité managée affectée par le système d’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 vous connectez à Azure localement ou via le portail Azure, utilisez un compte associé à l’abonnement Azure qui contient l’ordinateur virtuel.

  2. Chargez le modèle dans un éditeur et localisez la ressource Microsoft.Compute/virtualMachines qui vous intéresse dans la section resources. Si votre machine virtuelle dispose uniquement d’une identité managée affectée par le système, vous pouvez la désactiver en remplaçant le type d’identité par None.

    API Microsoft.Compute/virtualMachines version 2018-06-01

    Si votre machine virtuelle comporte des identités managées affectées par le système et par l’utilisateur, supprimez SystemAssigned du type d’identité, et conservez UserAssigned avec les valeurs du dictionnaire userAssignedIdentities.

    API Microsoft.Compute/virtualMachines version 2018-06-01

    Si votre apiVersion présente la valeur 2017-12-01 et que votre machine virtuelle comporte des identités managées affectées par le système et par l’utilisateur, supprimez SystemAssigned du type d’identité, et conservez UserAssigned avec le tableau identityIds des identités managées affectées par l’utilisateur.

L’exemple suivant montre comment supprimer une identité managée affectée par le système sur une machine virtuelle sans identité affectée par l’utilisateur :

{
    "apiVersion": "2018-06-01",
    "type": "Microsoft.Compute/virtualMachines",
    "name": "[parameters('vmName')]",
    "location": "[resourceGroup().location]",
    "identity": {
        "type": "None"
    }
}

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

Dans cette section, vous allez attribuer une identité managée affectée par l’utilisateur à une machine virtuelle Azure en utilisant un modèle Azure Resource Manager.

Notes

Pour créer une identité managée affectée par l’utilisateur en utilisant un modèle Azure Resource Manager, consultez Créer une identité managée affectée par l’utilisateur.

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

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

  1. Sous l’élément resources, ajoutez l’entrée suivante pour attribuer une identité managée affectée par l’utilisateur à votre machine virtuelle. Veillez à remplacer <USERASSIGNEDIDENTITY> par le nom de l’identité managée affectée par l’utilisateur que vous avez créée.

    API Microsoft.Compute/virtualMachines version 2018-06-01

    Si votre apiVersion est 2018-06-01, vos identités managées affectées par l’utilisateur sont stockées au format de dictionnaire userAssignedIdentities, et la valeur <USERASSIGNEDIDENTITYNAME> doit être stockée dans une variable définie dans la section variables de votre modèle.

     {
         "apiVersion": "2018-06-01",
         "type": "Microsoft.Compute/virtualMachines",
         "name": "[variables('vmName')]",
         "location": "[resourceGroup().location]",
         "identity": {
             "type": "userAssigned",
             "userAssignedIdentities": {
                 "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
             }
         }
     }
    

    API Microsoft.Compute/virtualMachines version 2017-12-01

    Si votre apiVersion est 2017-12-01, vos identités managées affectées par l’utilisateur sont stockées dans le tableau identityIds, et la valeur <USERASSIGNEDIDENTITYNAME> doit être stockée dans une variable définie dans la section variables de votre modèle.

    {
        "apiVersion": "2017-12-01",
        "type": "Microsoft.Compute/virtualMachines",
        "name": "[variables('vmName')]",
        "location": "[resourceGroup().location]",
        "identity": {
            "type": "userAssigned",
            "identityIds": [
                "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]"
            ]
        }
    }
    
  2. Lorsque vous avez terminé, les sections ci-après doivent être ajoutées à la section resource de votre modèle et doivent ressembler à ce qui suit :

    API Microsoft.Compute/virtualMachines version 2018-06-01

      "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "userAssigned",
                 "userAssignedIdentities": {
                    "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
                 }
             }
         }
     ] 
    

    API Microsoft.Compute/virtualMachines version 2017-12-01

    "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2017-12-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "userAssigned",
                 "identityIds": [
                    "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]"
                 ]
             }
         }
    ]
    

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

Pour supprimer une identité affectée par l’utilisateur d’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 vous connectez à Azure localement ou via le portail Azure, utilisez un compte associé à l’abonnement Azure qui contient l’ordinateur virtuel.

  2. Chargez le modèle dans un éditeur et localisez la ressource Microsoft.Compute/virtualMachines qui vous intéresse dans la section resources. Si votre machine virtuelle dispose uniquement d’une identité managée affectée par l’utilisateur, vous pouvez la désactiver en remplaçant le type d’identité par None.

    L’exemple suivant montre comment supprimer toutes les identités managées affectées par l’utilisateur d’une machine virtuelle sans identité managée affectée par le système :

     {
       "apiVersion": "2018-06-01",
       "type": "Microsoft.Compute/virtualMachines",
       "name": "[parameters('vmName')]",
       "location": "[resourceGroup().location]",
       "identity": {
           "type": "None"
           },
     }
    

    API Microsoft.Compute/virtualMachines version 2018-06-01

    Pour supprimer d’une machine virtuelle une seule identité managée affectée par l’utilisateur, supprimez-la du dictionnaire useraAssignedIdentities.

    Si vous disposez d’une identité managée affectée par le système, conservez-la dans la valeur type, sous la valeur identity.

    API Microsoft.Compute/virtualMachines version 2017-12-01

    Pour supprimer d’une machine virtuelle une seule identité managée affectée par l’utilisateur, supprimez-la du tableau identityIds.

    Si vous disposez d’une identité managée affectée par le système, conservez-la dans la valeur type, sous la valeur identity.

Étapes suivantes