Configurer des identités managées pour ressources Azure sur un groupe de machines virtuelles identiques Azure en utilisant un modèle
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, vous allez découvrir comment effectuer les opérations d’identités managées pour ressources Azure suivantes sur un groupe de machines virtuelles identiques Azure, à l’aide du modèle de déploiement Azure Resource Manager :
- Activer et désactiver l’identité managée affectée par le système sur un groupe de machines virtuelles identiques Azure
- Ajouter et supprimer une identité managée affectée par l’utilisateur sur un groupe de machines virtuelles identiques Azure
Prérequis
Si vous n’êtes pas familiarisé avec les identités managées pour ressources Azure, consultez 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.
Pour effectuer les opérations de gestion dans cet article, votre compte doit disposer de ces affectations de contrôle d’accès basé sur les rôles Azure :
Remarque
Aucune attribution de rôle de répertoire Microsoft Entra supplémentaire n’est requise.
- Contributeur de machine virtuelle pour créer un groupe de machines virtuelles identiques, puis activer ou supprimer l’identité managée affectée par le système et/ou par l’utilisateur à partir d’un groupe de machines virtuelles identiques.
- Contributeur d’identité managée pour créer une identité managée affectée par l’utilisateur.
- Opérateur d’identité managée pour attribuer et supprimer une identité managée affectée par l’utilisateur dans un groupe de machines virtuelles identiques.
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’identités managées pour ressources Azure s’effectue de la même manière sur une machine virtuelle 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 l’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’un groupe de machines virtuelles identiques ou dans un groupe de machines virtuelles identiques existant
Si vous vous connectez à Azure localement ou via le portail Azure, utilisez un compte associé à l’abonnement Azure qui contient le groupe de machines virtuelles identiques.
Pour activer l’identité managée affectée par le système, chargez le modèle dans un éditeur, recherchez la ressource
Microsoft.Compute/virtualMachinesScaleSets
qui vous intéresse dans la section des ressources, puis ajoutez la propriétéidentity
au même niveau que la propriété"type": "Microsoft.Compute/virtualMachinesScaleSets"
. Utilisez la syntaxe suivante :"identity": { "type": "SystemAssigned" }
Lorsque vous avez terminé, les sections suivantes doivent être ajoutées à la section de ressources de votre modèle et doivent ressembler à l’exemple ci-dessous :
"resources": [ { //other resource provider properties... "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachineScaleSets", "name": "[variables('vmssName')]", "location": "[resourceGroup().location]", "identity": { "type": "SystemAssigned", }, "properties": { //other resource provider properties... "virtualMachineProfile": { //other virtual machine profile properties... } } } ]
Désactiver une identité managée affectée par le système d’un groupe de machines virtuelles identiques Azure
Si vous disposez d’un groupe de machines virtuelles identiques qui n’a plus besoin d’une identité managée affectée par le système :
Si vous vous connectez à Azure localement ou via le portail Azure, utilisez un compte associé à l’abonnement Azure qui contient le groupe de machines virtuelles identiques.
Chargez le modèle dans un éditeur et localisez la ressource
Microsoft.Compute/virtualMachineScaleSets
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/virtualMachineScaleSets version du 01/06/2018
Si votre version d’API est
2018-06-01
et que votre machine virtuelle a des identités managées affectées par le système et l’utilisateur, supprimezSystemAssigned
dans le type d’identité et conservezUserAssigned
avec les valeurs du dictionnaire userAssignedIdentities.API Microsoft.Compute/virtualMachineScaleSets version du 01/06/2018
Si votre version d’API est
2017-12-01
et que votre groupe de machines virtuelles identiques dispose d’identités managées affectées par le système et par l’utilisateur, supprimezSystemAssigned
dans le 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 d’un groupe de machines virtuelles identiques sans identité managée affectée par l’utilisateur :
{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(Location')]", "identity": { "type": "None" } }
Identité managée affectée par l’utilisateur
Dans cette section, vous allez affecter une identité managée affectée par l’utilisateur à un groupe de machines virtuelles identiques à l’aide du 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 à un groupe de machines virtuelles identiques
Sous l’élément
resources
, ajoutez l’entrée suivante pour attribuer une identité managée affectée par l’utilisateur à votre groupe de machines virtuelles identiques. Veillez à remplacer<USERASSIGNEDIDENTITY>
par le nom de l’identité managée affectée par l’utilisateur que vous avez créée.API Microsoft.Compute/virtualMachineScaleSets version du 01/06/2018
Si votre version d’API est
2018-06-01
, vos identités managées affectées par l’utilisateur sont stockées dans le format de dictionnaireuserAssignedIdentities
, et la valeur<USERASSIGNEDIDENTITYNAME>
doit être stockée dans une variable définie au sein de la sectionvariables
de votre modèle.{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(Location')]", "identity": { "type": "userAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {} } } }
API Microsoft.Compute/virtualMachineScaleSets version du 01/12/2017
Si votre
apiVersion
est2017-12-01
ou une version antérieure, 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 au sein de la section des variables de votre modèle.{ "name": "[variables('vmssName')]", "apiVersion": "2017-03-30", "location": "[parameters(Location')]", "identity": { "type": "userAssigned", "identityIds": [ "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITY>'))]" ] } }
Quand vous avez terminé, votre modèle doit ressembler au suivant :
API Microsoft.Compute/virtualMachineScaleSets version du 01/06/2018
"resources": [ { //other resource provider properties... "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachineScaleSets", "name": "[variables('vmssName')]", "location": "[resourceGroup().location]", "identity": { "type": "UserAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {} } }, "properties": { //other virtual machine properties... "virtualMachineProfile": { //other virtual machine profile properties... } } } ]
API Microsoft.Compute/virtualMachines version 2017-12-01
"resources": [ { //other resource provider properties... "apiVersion": "2017-12-01", "type": "Microsoft.Compute/virtualMachineScaleSets", "name": "[variables('vmssName')]", "location": "[resourceGroup().location]", "identity": { "type": "UserAssigned", "identityIds": [ "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]" ] }, "properties": { //other virtual machine properties... "virtualMachineProfile": { //other virtual machine profile properties... } } } ]
Supprimer une identité managée affectée par l’utilisateur d’un groupe de machines virtuelles identiques Azure
Si vous disposez d’un groupe de machines virtuelles identiques qui n’a plus besoin d’une identité managée affectée par l’utilisateur :
Si vous vous connectez à Azure localement ou via le portail Azure, utilisez un compte associé à l’abonnement Azure qui contient le groupe de machines virtuelles identiques.
Chargez le modèle dans un éditeur et localisez la ressource
Microsoft.Compute/virtualMachineScaleSets
qui vous intéresse dans la sectionresources
. Si votre groupe de machines virtuelles identiques dispose uniquement de l’identité managée assigné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 :
{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(Location')]", "identity": { "type": "None" } }
API Microsoft.Compute/virtualMachineScaleSets version du 01/06/2018
Pour supprimer une seule identité managée assignée par l’utilisateur d’un groupe de machines virtuelles identiques, supprimez-la du dictionnaire
userAssignedIdentities
.Si vous disposez d’une identité affectée par le système, conservez-la dans la valeur
type
, sous la valeuridentity
.API Microsoft.Compute/virtualMachineScaleSets version du 01/12/2017
Pour supprimer une seule identité managée affectée par l’utilisateur dans un groupe de machines virtuelles identiques, 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
.