Configurer des identités managées sur un groupe de machines virtuelles identiques en utilisant des appels d’API REST
Les identités managées pour les ressources Azure fournissent aux services Azure une identité système 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 CURL pour adresser des appels au point de terminaison REST d’Azure Resource Manager, vous allez apprendre à configurer les identités managées suivantes pour les opérations de ressources Azure sur un groupe de machines virtuelles identiques :
- 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
Si vous n’avez pas encore de compte Azure, inscrivez-vous à un essai gratuit avant de continuer.
Prérequis
Si vous n’êtes pas familiarisé avec les identités managées pour les ressources Azure, consultez Que sont les identités managées pour les ressources Azure ? Pour en savoir plus sur les types d’identités managées affectées par le système et par l’utilisateur, consultez Types d’identités managées.
Pour effectuer les opérations de gestion dans cet article, votre compte doit disposer des attributions des rôles Azure suivants :
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 une identité affectée par l’utilisateur à un groupe de machines virtuelles identiques ou la supprimer.
Remarque
Aucune attribution de rôle de répertoire Microsoft Entra supplémentaire n’est requise.
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Identité managée affectée par le système
Dans cette section, découvrez comment activer et désactiver une identité managée affectée par le système sur un groupe de machines virtuelles identiques, en utilisant CURL pour effectuer des appels au point de terminaison REST Azure Resource Manager.
Activer une identité managée affectée par le système lors de la création d’un groupe de machines virtuelles identiques
Pour créer un groupe de machines virtuelles identiques dans lequel une identité managée affectée par le système est activée, vous devez créer un groupe de machines virtuelles identiques et récupérer un jeton d’accès pour utiliser CURL afin d’appeler le point de terminaison Resource Manager avec la valeur de type d’identité managée affectée par le système.
Créez un groupe de ressources pour l’imbrication et le déploiement de votre groupe de machines virtuelles identiques 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
Créez une interface réseau pour votre groupe de machines virtuelles identiques :
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Récupérez un jeton d’accès de porteur, que vous allez utiliser à l’étape suivante dans l’en-tête d’autorisation pour créer votre groupe de machines virtuelles identiques avec une identité managée affectée par le système.
az account get-access-token
À l’aide d’Azure Cloud Shell, créez un groupe de machines virtuelles identiques avec CURL pour appeler le point de terminaison REST Azure Resource Manager. L’exemple suivant crée un groupe de machines virtuelles identiques nommé myVMSS dans myResourceGroup avec une identité managée affectée par le système, telle qu’identifiée dans le corps de la demande par la valeur
"identity":{"type":"SystemAssigned"}
. Remplacez<ACCESS TOKEN>
par la valeur que vous avez reçue à l’étape précédente lorsque vous avez demandé un jeton d’accès du porteur et la valeur<SUBSCRIPTION ID>
adaptée à votre environnement.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PUT -d '{"sku":{"tier":"Standard","capacity":3,"name":"Standard_D1_v2"},"location":"eastus","identity":{"type":"SystemAssigned"},"properties":{"overprovision":true,"virtualMachineProfile":{"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"createOption":"FromImage"}},"osProfile":{"computerNamePrefix":"myVMSS","adminUsername":"azureuser","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaceConfigurations":[{"name":"myVMSS","properties":{"primary":true,"enableIPForwarding":true,"ipConfigurations":[{"name":"myVMSS","properties":{"subnet":{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"}}}]}}]}},"upgradePolicy":{"mode":"Manual"}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "sku":{ "tier":"Standard", "capacity":3, "name":"Standard_D1_v2" }, "location":"eastus", "identity":{ "type":"SystemAssigned" }, "properties":{ "overprovision":true, "virtualMachineProfile":{ "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "createOption":"FromImage" } }, "osProfile":{ "computerNamePrefix":"myVMSS", "adminUsername":"azureuser", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaceConfigurations":[ { "name":"myVMSS", "properties":{ "primary":true, "enableIPForwarding":true, "ipConfigurations":[ { "name":"myVMSS", "properties":{ "subnet":{ "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" } } } ] } } ] } }, "upgradePolicy":{ "mode":"Manual" } } }
Activer une identité managée affectée par le système sur un groupe de machines virtuelles identiques existant
Pour activer l’identité managée affectée par le système sur un groupe de machines virtuelles identiques existant, obtenez un jeton d’accès, puis utilisez CURL pour appeler le point de terminaison REST Resource Manager afin de mettre à jour le type d’identité.
Récupérez un jeton d’accès de porteur, que vous allez utiliser à l’étape suivante dans l’en-tête d’autorisation pour créer votre groupe de machines virtuelles identiques avec une identité managée affectée par le système.
az account get-access-token
Utilisez la commande CURL suivante pour appeler le point de terminaison REST Azure Resource Manager afin d’activer l’identité managée affectée par le système sur votre groupe de machines virtuelles identiques, telle qu’identifiée dans le corps de la demande par la valeur
{"identity":{"type":"SystemAssigned"}
pour un groupe de machines virtuelles identiques nommé myVMSS. Remplacez<ACCESS TOKEN>
par la valeur que vous avez reçue à l’étape précédente lorsque vous avez demandé un jeton d’accès du porteur et la valeur<SUBSCRIPTION ID>
adaptée à votre environnement.Important
Pour éviter de supprimer des identités managées affectées par l’utilisateur existantes qui sont attribuées au groupe de machines virtuelles identiques, répertoriez les identités managées affectées par l’utilisateur en utilisant la commande CURL suivante :
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
. Si vous avez des identités managées affectées par l’utilisateur attribuées au groupe de machines virtuelles identiques, telle qu’identifiées dans la valeuridentity
de la réponse, passez à l’étape 3 qui montre comment conserver les identités managées affectées par l’utilisateur, tout en activant l’identité managée affectée par le système sur votre groupe de machines virtuelles identiques.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "identity":{ "type":"SystemAssigned" } }
Pour activer une identité managée affectée par le système sur un groupe de machines virtuelles identiques avec des identités managées affectées par l’utilisateur existantes, vous devez ajouter
SystemAssigned
à la valeurtype
.Par exemple, si votre groupe de machines virtuelles identiques a des identités managées affectées par l’utilisateur
ID1
etID2
qui lui sont attribuées, et si vous souhaitez ajouter l’identité managée affectée par le système au groupe de machines virtuelles identiques, utilisez l’appel CURL suivant. Remplacez<ACCESS TOKEN>
et<SUBSCRIPTION ID>
par les valeurs adaptées à votre environnement.L’API version
2018-06-01
stocke les identités managées affectées par l’utilisateur dans la valeuruserAssignedIdentities
dans un format de dictionnaire, par opposition à la valeuridentityIds
au format de tableau utilisée dans l’API version2017-12-01
.API VERSION 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "identity":{ "type":"SystemAssigned,UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ }, "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{ } } } }
API VERSION 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "identity":{ "type":"SystemAssigned,UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1", "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2" ] } }
Désactiver une identité managée affectée par le système d’un groupe de machines virtuelles identiques
Pour désactiver une identité affectée par le système sur un groupe de machines virtuelles identiques existant, obtenez un jeton d’accès, puis utilisez CURL pour appeler le point de terminaison REST Resource Manager afin de mettre à jour le type d’identité en le définissant sur None
.
Récupérez un jeton d’accès de porteur, que vous allez utiliser à l’étape suivante dans l’en-tête d’autorisation pour créer votre groupe de machines virtuelles identiques avec une identité managée affectée par le système.
az account get-access-token
Mettez à jour le groupe de machines virtuelles identiques en utilisant CURL pour appeler le point de terminaison REST Azure Resource Manager afin de désactiver l’identité managée affectée par le système. L’exemple suivant désactive l’identité managée affectée par le système, telle qu’identifiée dans le corps de la demande par la valeur
{"identity":{"type":"None"}}
, d’un groupe de machines virtuelles identiques nommé myVMSS. Remplacez<ACCESS TOKEN>
par la valeur que vous avez reçue à l’étape précédente lorsque vous avez demandé un jeton d’accès du porteur et la valeur<SUBSCRIPTION ID>
adaptée à votre environnement.Important
Pour éviter de supprimer des identités managées affectées par l’utilisateur existantes qui sont attribuées au groupe de machines virtuelles identiques, répertoriez les identités managées affectées par l’utilisateur en utilisant la commande CURL suivante :
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
. Si vous avez attribué des identités managées affectées par l’utilisateur au groupe de machines virtuelles identiques, passez à l’étape 3, qui montre comment conserver les identités managées affectées par l’utilisateur, tout en supprimant l’identité managée affectée par le système de votre groupe de machines virtuelles identiques.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "identity":{ "type":"None" } }
Pour supprimer l’identité managée affectée par le système d’un groupe de machines virtuelles identiques ayant des identités managées affectées par l’utilisateur, supprimez
SystemAssigned
de la valeur{"identity":{"type:" "}}
tout en conservant la valeurUserAssigned
et les valeurs de dictionnaireuserAssignedIdentities
si vous utilisez la version de l’API du 01/06/2018. Si vous utilisez la version d’API 2017-12-01 ou une version antérieure, conservez le tableauidentityIds
.
Identité managée affectée par l’utilisateur
Dans cette section, découvrez comment ajouter et supprimer une identité managée affectée par l’utilisateur dans un groupe de machines virtuelles identiques, en utilisant CURL pour effectuer des appels au point de terminaison REST Azure Resource Manager.
Attribuer une identité managée affectée par l’utilisateur lors de la création d’un groupe de machines virtuelles identiques
Récupérez un jeton d’accès de porteur, que vous allez utiliser à l’étape suivante dans l’en-tête d’autorisation pour créer votre groupe de machines virtuelles identiques avec une identité managée affectée par le système.
az account get-access-token
Créez une interface réseau pour votre groupe de machines virtuelles identiques :
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Récupérez un jeton d’accès de porteur, que vous allez utiliser à l’étape suivante dans l’en-tête d’autorisation pour créer votre groupe de machines virtuelles identiques avec une identité managée affectée par le système.
az account get-access-token
Créez une identité managée attribuée par l’utilisateur en vous aidant des instructions disponibles ici : Créer une identité managée attribuée par l’utilisateur.
Créez un groupe de machines virtuelles identiques à l’aide de CURL pour appeler le point de terminaison REST Azure Resource Manager. L’exemple suivant crée un groupe de machines virtuelles identiques nommé myVMSS dans le groupe de ressources myResourceGroup avec une identité managée affectée par l’utilisateur
ID1
, telle qu’identifiée dans le corps de la demande par la valeur"identity":{"type":"UserAssigned"}
. Remplacez<ACCESS TOKEN>
par la valeur que vous avez reçue à l’étape précédente lorsque vous avez demandé un jeton d’accès du porteur et la valeur<SUBSCRIPTION ID>
adaptée à votre environnement.API VERSION 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PUT -d '{"sku":{"tier":"Standard","capacity":3,"name":"Standard_D1_v2"},"location":"eastus","identity":{"type":"UserAssigned","userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}},"properties":{"overprovision":true,"virtualMachineProfile":{"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"createOption":"FromImage"}},"osProfile":{"computerNamePrefix":"myVMSS","adminUsername":"azureuser","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaceConfigurations":[{"name":"myVMSS","properties":{"primary":true,"enableIPForwarding":true,"ipConfigurations":[{"name":"myVMSS","properties":{"subnet":{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"}}}]}}]}},"upgradePolicy":{"mode":"Manual"}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "sku":{ "tier":"Standard", "capacity":3, "name":"Standard_D1_v2" }, "location":"eastus", "identity":{ "type":"UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ } } }, "properties":{ "overprovision":true, "virtualMachineProfile":{ "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "createOption":"FromImage" } }, "osProfile":{ "computerNamePrefix":"myVMSS", "adminUsername":"azureuser", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaceConfigurations":[ { "name":"myVMSS", "properties":{ "primary":true, "enableIPForwarding":true, "ipConfigurations":[ { "name":"myVMSS", "properties":{ "subnet":{ "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" } } } ] } } ] } }, "upgradePolicy":{ "mode":"Manual" } } }
API VERSION 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PUT -d '{"sku":{"tier":"Standard","capacity":3,"name":"Standard_D1_v2"},"location":"eastus","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"overprovision":true,"virtualMachineProfile":{"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"createOption":"FromImage"}},"osProfile":{"computerNamePrefix":"myVMSS","adminUsername":"azureuser","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaceConfigurations":[{"name":"myVMSS","properties":{"primary":true,"enableIPForwarding":true,"ipConfigurations":[{"name":"myVMSS","properties":{"subnet":{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet"}}}]}}]}},"upgradePolicy":{"mode":"Manual"}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "sku":{ "tier":"Standard", "capacity":3, "name":"Standard_D1_v2" }, "location":"eastus", "identity":{ "type":"UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] }, "properties":{ "overprovision":true, "virtualMachineProfile":{ "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "createOption":"FromImage" } }, "osProfile":{ "computerNamePrefix":"myVMSS", "adminUsername":"azureuser", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaceConfigurations":[ { "name":"myVMSS", "properties":{ "primary":true, "enableIPForwarding":true, "ipConfigurations":[ { "name":"myVMSS", "properties":{ "subnet":{ "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" } } } ] } } ] } }, "upgradePolicy":{ "mode":"Manual" } } }
Attribuer une identité managée affectée par l’utilisateur à un groupe de machines virtuelles identiques Azure existant
Récupérez un jeton d’accès de porteur, que vous allez utiliser à l’étape suivante dans l’en-tête d’autorisation pour créer votre groupe de machines virtuelles identiques avec une identité managée affectée par le système.
az account get-access-token
Créez une identité managée affectée par l’utilisateur à l’aide des instructions fournies dans Créer une identité managée affectée par l’utilisateur.
Pour éviter de supprimer des identités managées affectées par l’utilisateur ou le système existantes qui sont attribuées au groupe de machines virtuelles identiques, vous devez répertorier les types d’identités affectés au groupe de machines virtuelles identiques en utilisant la commande CURL suivante. Si vous avez affecté des identités managées au groupe de machines virtuelles identiques, ces dernières sont répertoriées dans la valeur
identity
.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Si vous n’avez attribué aucune identité managée affectée par le système ou l’utilisateur à votre groupe de machines virtuelles identiques, utilisez la commande CURL suivante pour appeler le point de terminaison REST Azure Resource Manager afin d’affecter la première identité managée affectée par l’utilisateur au groupe de machines virtuelles identiques. Si vous avez attribué des identités managées affectées par l’utilisateur ou le système au groupe de machines virtuelles identiques, passez à l’étape 5, qui montre comment ajouter plusieurs identités managées affectées par l’utilisateur à un groupe de machines virtuelles identiques, tout en mettant également à jour l’identité managée affectée par le système.
L’exemple suivant attribue l’identité managée affectée par l’utilisateur
ID1
à un groupe de machines virtuelles identiques nommé myVMSS dans le groupe de ressources myResourceGroup. Remplacez<ACCESS TOKEN>
par la valeur que vous avez reçue à l’étape précédente lorsque vous avez demandé un jeton d’accès du porteur et la valeur<SUBSCRIPTION ID>
adaptée à votre environnement.API VERSION 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-12-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "identity":{ "type":"userAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ } } } }
API VERSION 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "identity":{ "type":"userAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Si une identité managée existante affectée par l’utilisateur ou par le système est attribuée à votre groupe de machines virtuelles identiques :
API VERSION 2018-06-01
Ajoutez l’identité managée affectée par l’utilisateur à la valeur de dictionnaire
userAssignedIdentities
.Par exemple, si des identités managées affectées par le système et par l’utilisateur
ID1
sont actuellement attribuées à votre groupe de machines virtuelles identiques, et si vous souhaitez ajouter l’identité managée affectée par l’utilisateurID2
à celui-ci :curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ }, "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{ } } } }
API VERSION 2017-12-01
Conservez les identités managées affectées par l’utilisateur que vous souhaitez garder dans la valeur de tableau
identityIds
lors de l’ajout de la nouvelle identité managée affectée par l’utilisateur.Par exemple, si des identités managées affectées par le système et par l’utilisateur
ID1
sont actuellement attribuées à votre groupe de machines virtuelles identiques, et si vous souhaitez ajouter l’identité managée affectée par l’utilisateurID2
à celui-ci :curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "identity":{ "type":"SystemAssigned, UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1", "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2" ] } }
Supprimer une identité managée affectée par l’utilisateur d’un groupe de machines virtuelles identiques
Récupérez un jeton d’accès de porteur, que vous allez utiliser à l’étape suivante dans l’en-tête d’autorisation pour créer votre groupe de machines virtuelles identiques avec une identité managée affectée par le système.
az account get-access-token
Pour éviter de supprimer des identités managées affectées par l’utilisateur existantes qui sont attribuées au groupe de machines virtuelles identiques ou de supprimer l’identité managée affectée par le système, vous devez répertorier les identités managées en utilisant la commande CURL suivante :
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachineScaleSets/<VMSS NAME>?api-version=2018-06-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Si vous avez affecté des identités managées à la machine virtuelle, celles-ci sont répertoriées dans la réponse sous la valeur
identity
.Par exemple, si les identités managées affectées par l’utilisateur
ID1
etID2
sont attribuées à votre groupe de machines virtuelles identiques, et si vous souhaitez uniquement garder l’élémentID1
affecté et conserver l’identité managée affectée par le système :API VERSION 2018-06-01
Ajoutez
null
à l’identité managée affectée par l’utilisateur que vous souhaitez supprimer :curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null}}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null } } }
API VERSION 2017-12-01
Conservez uniquement la ou les identités managées affectées par l’utilisateur que vous souhaitez garder dans le tableau
identityIds
:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2017-12-01 HTTP/1.1
En-têtes de requête
En-tête de requête Description Content-Type Obligatoire. Défini sur application/json
.Autorisation Obligatoire. Défini sur un jeton d’accès Bearer
valide.Corps de la demande
{ "identity":{ "type":"SystemAssigned,UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Si votre groupe de machines virtuelles identiques 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 des identités affectées par le système en utilisant la commande suivante :
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
En-têtes de requête
En-tête de requête | Description |
---|---|
Content-Type | Obligatoire. Défini sur application/json . |
Autorisation | Obligatoire. Défini sur un jeton d’accès Bearer valide. |
Corps de la demande
{
"identity":{
"type":"SystemAssigned"
}
}
Si votre groupe de machines virtuelles identiques a uniquement des identités managées affectées par l’utilisateur et que vous souhaitez supprimer toutes celles-ci, utilisez la commande suivante :
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myVMSS?api-version=2018-06-01 HTTP/1.1
En-têtes de requête
En-tête de requête | Description |
---|---|
Content-Type | Obligatoire. Défini sur application/json . |
Autorisation | Obligatoire. Défini sur un jeton d’accès Bearer valide. |
Corps de la demande
{
"identity":{
"type":"None"
}
}
Étapes suivantes
Pour plus d’informations sur la façon de créer, de répertorier ou de supprimer des identités managées affectées par l’utilisateur en utilisant REST, voir :