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

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 PowerShell.

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Prérequis

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

Dans cette section, vous allez apprendre à activer et désactiver l’identité managée affectée par le système en utilisant Azure PowerShell.

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. Consultez l’un des démarrages rapides de machine virtuelle Azure suivants, en ne complétant que les sections nécessaires (« Se connecter à Azure », « Créer un groupe de ressources », « Créer un groupe de mise en réseau », « Créer la machine virtuelle »).

    Lorsque vous accédez à la section « Créer la machine virtuelle », apportez une légère modification à la syntaxe de l’applet de commande New-AzVMConfig. Veillez à ajouter un paramètre -IdentityType SystemAssigned afin d’approvisionner la machine virtuelle avec l’identité affectée par le système activée, par exemple :

    $vmConfig = New-AzVMConfig -VMName myVM -IdentityType SystemAssigned ...
    

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 qui en était dépourvue initialement, 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. Récupérez les propriétés de la machine virtuelle à l’aide de l’applet de commande Get-AzVM. Ensuite, pour activer une identité managée affectée par le système, utilisez le commutateur -IdentityType avec l’applet de commande Update-AzVM :

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
    Update-AzVM -ResourceGroupName myResourceGroup -VM $vm -IdentityType SystemAssigned
    

Ajoutez l’identité attribuée par le système d’une machine virtuelle à un groupe

Après avoir activé l'identité attribuée par le système sur une machine virtuelle, vous pouvez l’ajouter à un groupe. La procédure suivante permet d'ajouter une identité attribuée par le système à un groupe.

  1. Récupérez et notez le ObjectID (comme spécifié dans le champ Id des valeurs renvoyées) du principal de service de la machine virtuelle :

    Get-AzADServicePrincipal -displayname "myVM"
    
  2. Récupérez et notez le ObjectID (comme spécifié dans le champ Id des valeurs renvoyées) du groupe :

    Get-AzADGroup -searchstring "myGroup"
    
  3. Ajouter le principal de service de la machine virtuelle au groupe :

    New-MgGroupMember -GroupId "<Id of group>" -DirectoryObjectId "<Id of VM service principal>" 
    

Désactiver une identité managée 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é managée affectée par le système, mais qui a toujours besoin d’identités managées affectées par l’utilisateur, utilisez l’applet de commande suivante :

  1. Récupérez les propriétés de la machine virtuelle à l’aide de l’applet de commande Get-AzVM et définissez le paramètre -IdentityType sur UserAssigned :

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
    Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType "UserAssigned" -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
    

Si vous disposez d’une machine virtuelle qui n’a plus besoin de l’identité managée affectée par le système et qui n’a pas d’identité managée affectée par l’utilisateur, utilisez les commandes suivantes :

$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType 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 en utilisant Azure PowerShell.

Attribuer une identité managée affectée par l’utilisateur à une machine virtuelle lors de sa création

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. Consultez l’un des démarrages rapides de machine virtuelle Azure suivants, en ne complétant que les sections nécessaires (« Se connecter à Azure », « Créer un groupe de ressources », « Créer un groupe de mise en réseau », « Créer la machine virtuelle »).

    Quand vous parvenez à la section « Créer la machine virtuelle », apportez une légère modification à la syntaxe de l’applet de commande New-AzVMConfig. Ajoutez les paramètres -IdentityType UserAssigned et -IdentityID pour approvisionner la machine virtuelle avec une identité affectée par l’utilisateur. Remplacez <VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP> et <USER ASSIGNED IDENTITY NAME> par vos propres valeurs. Par exemple :

    $vmConfig = New-AzVMConfig -VMName <VM NAME> -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
    

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é managée affectée par l’utilisateur en utilisant l’applet de commande New-AzUserAssignedIdentity. Notez le Id fourni dans la sortie, car vous aurez besoin de ces informations à l’étape suivante.

    Important

    La création d’identités managées affectées par l’utilisateur prend uniquement en charge les caractères alphanumériques, les traits de soulignement et les traits d’union (0-9, a-z, A-Z, _ ou -). De plus, le nom doit être limité entre 3 et 128 caractères pour que l’attribution à la machine virtuelle/au groupe de machines virtuelles identiques (VMSS) fonctionne correctement. Pour plus d’informations, voir FAQ et problèmes connus.

    New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
    
  2. Récupérez les propriétés de la machine virtuelle à l’aide de l’applet de commande Get-AzVM. Ensuite, pour attribuer une identité managée affectée par l’utilisateur à la machine virtuelle Azure, utilisez les commutateurs -IdentityType et -IdentityID avec l’applet de commande Update-AzVM. La valeur du paramètre -IdentityId est la valeur Id que vous avez notée à l’étape précédente. Remplacez <VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP> et <USER ASSIGNED IDENTITY NAME> par vos propres valeurs.

    Avertissement

    Pour conserver les identités managées précédemment affectées par l’utilisateur à la machine virtuelle, effectuez une requête sur la propriété Identity de l’objet machine virtuelle (par exemple, $vm.Identity). Si de telles identités managées sont retournées, ajoutez-les à la commande suivante, avec la nouvelle identité managée affectée par l’utilisateur que vous souhaitez affecter à la machine virtuelle.

    $vm = Get-AzVM -ResourceGroupName <RESOURCE GROUP> -Name <VM NAME>
    Update-AzVM -ResourceGroupName <RESOURCE GROUP> -VM $vm -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>"
    

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.

Si votre machine virtuelle a plusieurs identités managées affectées par l’utilisateur, vous pouvez les supprimer toutes sauf la dernière à l’aide des commandes suivantes. 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é de nom de l’identité managée affectée par l’utilisateur, qui doit rester sur la machine virtuelle. Ces informations sont détectables à l’aide d’une requête pour rechercher la Identity propriété de l’objet de machine virtuelle. Par exemple, $vm.Identity:

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType UserAssigned -IdentityID <USER ASSIGNED IDENTITY NAME>

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

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None

Si votre machine virtuelle dispose d’identités managées affectées tant par le système que par l’utilisateur, vous pouvez supprimer toutes les identités managées affectées par l’utilisateur en choisissant de n’utiliser que l’identité managée affectée par le système.

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType "SystemAssigned"

Étapes suivantes