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
- Si vous n’êtes pas familiarisé avec l’utilisation d’un modèle de déploiement Azure Resource Manager, voir la section Vue d’ensemble. Veillez à consulter la différence entre les identités managées affectées par le système et celles affectées par l’utilisateur .
- Si vous n’avez pas encore de compte Azure, inscrivez-vous à un essai gratuit avant de continuer.
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 :
- Utiliser un modèle personnalisé à partir de Place de marché Azure, lequel vous permet de créer un modèle à partir de zéro, ou à partir d’un modèle commun existant ou d’un modèle de démarrage rapide.
- Dériver à partir d’un groupe de ressources existant, en exportant un modèle à partir du déploiement d’origine, ou à partir de l’état actuel du déploiement.
- Utilisation d’un éditeur local JSON (VS Code, par exemple), puis téléchargement/déploiement à l’aide de PowerShell ou Azure CLI.
- Utilisez le projet de groupe de ressources Azure de Visual Studio pour créer et déployer un modèle.
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.
Si vous vous connectez à Azure localement ou via le portail Azure, utilisez un compte associé à l’abonnement Azure qui contient l’ordinateur virtuel.
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 sectionresources
, 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" },
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.
Si vous vous connectez à Azure localement ou via le portail Azure, utilisez un compte associé à l’abonnement Azure qui contient l’ordinateur virtuel.
Chargez le modèle dans un éditeur et localisez la ressource
Microsoft.Compute/virtualMachines
qui vous intéresse dans la sectionresources
. 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é parNone
.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 conservezUserAssigned
avec les valeurs du dictionnaireuserAssignedIdentities
.API Microsoft.Compute/virtualMachines version 2018-06-01
Si votre
apiVersion
présente la valeur2017-12-01
et que votre machine virtuelle comporte des identités managées affectées par le système et par l’utilisateur, supprimezSystemAssigned
du type d’identité, et conservezUserAssigned
avec le tableauidentityIds
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.
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
est2018-06-01
, vos identités managées affectées par l’utilisateur sont stockées au format de dictionnaireuserAssignedIdentities
, et la valeur<USERASSIGNEDIDENTITYNAME>
doit être stockée dans une variable définie dans la sectionvariables
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
est2017-12-01
, vos identités managées affectées par l’utilisateur sont stockées dans le tableauidentityIds
, et la valeur<USERASSIGNEDIDENTITYNAME>
doit être stockée dans une variable définie dans la sectionvariables
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>'))]" ] } }
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.
Si vous vous connectez à Azure localement ou via le portail Azure, utilisez un compte associé à l’abonnement Azure qui contient l’ordinateur virtuel.
Chargez le modèle dans un éditeur et localisez la ressource
Microsoft.Compute/virtualMachines
qui vous intéresse dans la sectionresources
. 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é parNone
.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 valeuridentity
.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 valeuridentity
.