Konfigurera hanterade identiteter för Azure-resurser på en VM-skalningsuppsättning med HJÄLP av REST API-anrop

Hanterade identiteter för Azure-resurser tillhandahåller Azure-tjänster med en automatiskt hanterad systemidentitet i Microsoft Entra-ID. Du kan använda den här identiteten för att autentisera mot alla tjänster som har stöd för Microsoft Entra-autentisering, utan att behöva ha några autentiseringsuppgifter i koden.

I den här artikeln använder curl för att göra anrop till Azure Resource Manager REST-slutpunkten får du lära dig hur du utför följande hanterade identiteter för Azure-resursåtgärder på en VM-skalningsuppsättning:

  • Aktivera och inaktivera den systemtilldelade hanterade identiteten på en skalningsuppsättning för virtuella Azure-datorer
  • Lägga till och ta bort en användartilldelad hanterad identitet på en skalningsuppsättning för virtuella Azure-datorer

Om du inte redan har ett Azure-konto registrerar du dig för ett kostnadsfritt konto innan du fortsätter.

Förutsättningar

  • Om du inte känner till hanterade identiteter för Azure-resurser kan du läsa Vad är hanterade identiteter för Azure-resurser?. Mer information om systemtilldelade och användartilldelade hanterade identitetstyper finns i Hanterade identitetstyper.

  • För att kunna utföra hanteringsåtgärderna i den här artikeln behöver ditt konto följande Azure-rolltilldelningar:

    Kommentar

    Inga ytterligare rolltilldelningar för Microsoft Entra-katalog krävs.

Systemtilldelad hanterad identitet

I det här avsnittet får du lära dig hur du aktiverar och inaktiverar systemtilldelad hanterad identitet på en VM-skalningsuppsättning med CURL för att göra anrop till Azure Resource Manager REST-slutpunkten.

Aktivera systemtilldelad hanterad identitet när en VM-skalningsuppsättning skapas

För att skapa en VM-skalningsuppsättning med systemtilldelad hanterad identitet aktiverad behöver du skapa en VM-skalningsuppsättning och hämta en åtkomsttoken för att använda CURL för att anropa Resource Manager-slutpunkten med värdet för den systemtilldelade hanterade identitetstypen.

  1. Skapa en resursgrupp för inneslutning och distribution av vm-skalningsuppsättningen och dess relaterade resurser med hjälp av az group create. Du kan hoppa över det här steget om du redan har en resursgrupp som du vill använda i stället:

    az group create --name myResourceGroup --location westus
    
  2. Skapa ett nätverksgränssnitt för vm-skalningsuppsättningen:

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. Hämta en bearer-åtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa vm-skalningsuppsättningen med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  4. Använd Azure Cloud Shell och skapa en VM-skalningsuppsättning med curl för att anropa Azure Resource Manager REST-slutpunkten. I följande exempel skapas en vm-skalningsuppsättning med namnet myVMSS i myResourceGroup med en systemtilldelad hanterad identitet, enligt värdet "identity":{"type":"SystemAssigned"}i begärandetexten. Ersätt <ACCESS TOKEN> med det värde som du fick i föregående steg när du begärde en ägaråtkomsttoken och värdet <SUBSCRIPTION ID> efter behov för din miljö.

    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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "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"
           }
        }
     }  
    

Aktivera systemtilldelad hanterad identitet på en befintlig VM-skalningsuppsättning

För att aktivera systemtilldelad hanterad identitet på en befintlig vm-skalningsuppsättning måste du hämta en åtkomsttoken och sedan använda CURL för att anropa Resource Manager REST-slutpunkten för att uppdatera identitetstypen.

  1. Hämta en bearer-åtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa vm-skalningsuppsättningen med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  2. Använd följande CURL-kommando för att anropa Azure Resource Manager REST-slutpunkten för att aktivera systemtilldelad hanterad identitet på din VM-skalningsuppsättning enligt vad som anges i begärandetexten av värdet {"identity":{"type":"SystemAssigned"} för en VM-skalningsuppsättning med namnet myVMSS. Ersätt <ACCESS TOKEN> med det värde som du fick i föregående steg när du begärde en ägaråtkomsttoken och värdet <SUBSCRIPTION ID> efter behov för din miljö.

    Viktigt!

    För att säkerställa att du inte tar bort några befintliga användartilldelade hanterade identiteter som har tilldelats vm-skalningsuppsättningen måste du ange de användartilldelade hanterade identiteterna med hjälp av det här CURL-kommandot: 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>". Om du har några användartilldelade hanterade identiteter tilldelade till vm-skalningsuppsättningen identity enligt vad som anges i värdet i svaret går du vidare till steg 3 som visar hur du behåller användartilldelade hanterade identiteter samtidigt som du aktiverar systemtilldelad hanterad identitet på vm-skalningsuppsättningen.

     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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "identity":{
           "type":"SystemAssigned"
        }
     }
    
  3. Om du vill aktivera systemtilldelad hanterad identitet på en VM-skalningsuppsättning med befintliga användartilldelade hanterade identiteter måste du lägga SystemAssigned till värdet type .

    Om vm-skalningsuppsättningen till exempel har användartilldelade hanterade identiteter ID1 och ID2 tilldelats till den, och du vill lägga till systemtilldelad hanterad identitet i vm-skalningsuppsättningen, använder du följande CURL-anrop. Ersätt <ACCESS TOKEN> och <SUBSCRIPTION ID> med värden som är lämpliga för din miljö.

    API-versionen 2018-06-01 lagrar användartilldelade hanterade identiteter i userAssignedIdentities värdet i ett ordlisteformat i stället för identityIds värdet i ett matrisformat som används i API-versionen 2017-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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "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"
           ]
        }
     }
    

Inaktivera systemtilldelad hanterad identitet från en VM-skalningsuppsättning

Om du vill inaktivera en systemtilldelad identitet på en befintlig VM-skalningsuppsättning måste du hämta en åtkomsttoken och sedan använda CURL för att anropa Resource Manager REST-slutpunkten för att uppdatera identitetstypen till None.

  1. Hämta en bearer-åtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa vm-skalningsuppsättningen med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  2. Uppdatera vm-skalningsuppsättningen med CURL för att anropa REST-slutpunkten för Azure Resource Manager för att inaktivera systemtilldelad hanterad identitet. I följande exempel inaktiveras systemtilldelad hanterad identitet som identifieras i begärandetexten av värdet {"identity":{"type":"None"}} från en vm-skalningsuppsättning med namnet myVMSS. Ersätt <ACCESS TOKEN> med det värde som du fick i föregående steg när du begärde en ägaråtkomsttoken och värdet <SUBSCRIPTION ID> efter behov för din miljö.

    Viktigt!

    För att säkerställa att du inte tar bort några befintliga användartilldelade hanterade identiteter som har tilldelats vm-skalningsuppsättningen måste du ange de användartilldelade hanterade identiteterna med hjälp av det här CURL-kommandot: 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>". Om du har någon användartilldelad hanterad identitet tilldelad till vm-skalningsuppsättningen går du vidare till steg 3 som visar hur du behåller de användartilldelade hanterade identiteterna när du tar bort den systemtilldelade hanterade identiteten från vm-skalningsuppsättningen.

    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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "identity":{
           "type":"None"
        }
     }
    

    Om du vill ta bort systemtilldelad hanterad identitet från en VM-skalningsuppsättning som har användartilldelade hanterade identiteter tar du bort SystemAssigned från {"identity":{"type:" "}} värdet samtidigt som värdet och userAssignedIdentities ordlistevärdena behålls UserAssigned om du använder API-version 2018-06-01. Om du använder API-version 2017-12-01 eller tidigare behåller du matrisen identityIds .

Användartilldelad hanterad identitet

I det här avsnittet får du lära dig hur du lägger till och tar bort användartilldelad hanterad identitet på en VM-skalningsuppsättning med CURL för att göra anrop till Azure Resource Manager REST-slutpunkten.

Tilldela en användartilldelad hanterad identitet när en VM-skalningsuppsättning skapas

  1. Hämta en bearer-åtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa vm-skalningsuppsättningen med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  2. Skapa ett nätverksgränssnitt för vm-skalningsuppsättningen:

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. Hämta en bearer-åtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa vm-skalningsuppsättningen med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  4. Skapa en användartilldelad hanterad identitet med hjälp av anvisningarna här: Skapa en användartilldelad hanterad identitet.

  5. Skapa en VM-skalningsuppsättning med CURL för att anropa Azure Resource Manager REST-slutpunkten. I följande exempel skapas en VM-skalningsuppsättning med namnet myVMSS i resursgruppen myResourceGroup med en användartilldelad hanterad identitet ID1, enligt värdet "identity":{"type":"UserAssigned"}i begärandetexten . Ersätt <ACCESS TOKEN> med det värde som du fick i föregående steg när du begärde en ägaråtkomsttoken och värdet <SUBSCRIPTION ID> efter behov för din miljö.

    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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "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"
           }
        }
     }
    

Tilldela en användartilldelad hanterad identitet till en befintlig skalningsuppsättning för virtuella Azure-datorer

  1. Hämta en bearer-åtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa vm-skalningsuppsättningen med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  2. Skapa en användartilldelad hanterad identitet med hjälp av anvisningarna här, Skapa en användartilldelad hanterad identitet.

  3. För att säkerställa att du inte tar bort befintliga användar- eller systemtilldelade hanterade identiteter som har tilldelats vm-skalningsuppsättningen måste du ange de identitetstyper som tilldelats vm-skalningsuppsättningen med hjälp av följande CURL-kommando. Om du har tilldelats hanterade identiteter till vm-skalningsuppsättningen visas de i identity värdet.

    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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.
  4. Om du inte har några användar- eller systemtilldelade hanterade identiteter tilldelade till vm-skalningsuppsättningen använder du följande CURL-kommando för att anropa Azure Resource Manager REST-slutpunkten för att tilldela den första användartilldelade hanterade identiteten till vm-skalningsuppsättningen. Om du har tilldelat en eller flera användare eller systemtilldelade hanterade identiteter till vm-skalningsuppsättningen går du vidare till steg 5 som visar hur du lägger till flera användartilldelade hanterade identiteter i en VM-skalningsuppsättning samtidigt som du underhåller den systemtilldelade hanterade identiteten.

    I följande exempel tilldelas en användartilldelad hanterad identitet ID1 till en vm-skalningsuppsättning med namnet myVMSS i resursgruppen myResourceGroup. Ersätt <ACCESS TOKEN> med det värde som du fick i föregående steg när du begärde en ägaråtkomsttoken och värdet <SUBSCRIPTION ID> efter behov för din miljö.

    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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "identity":{
           "type":"userAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    
  5. Om du har en befintlig användartilldelad eller systemtilldelad hanterad identitet tilldelad till vm-skalningsuppsättningen:

    API VERSION 2018-06-01

    Lägg till den användartilldelade hanterade identiteten i userAssignedIdentities ordlistevärdet.

    Om du till exempel har systemtilldelad hanterad identitet och den användartilldelade hanterade identiteten ID1 som för närvarande är tilldelad till din virtuella datorskala och vill lägga till den användartilldelade hanterade identiteten ID2 i den:

    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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "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

    Behåll de användartilldelade hanterade identiteterna som du vill behålla i identityIds matrisvärdet när du lägger till den nya användartilldelade hanterade identiteten.

    Om du till exempel har systemtilldelad identitet och den användartilldelade hanterade identiteten ID1 som för närvarande är tilldelad till vm-skalningsuppsättningen och vill lägga till den användartilldelade hanterade identiteten ID2 i den:

    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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "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"
           ]
        }
     }
    

Ta bort en användartilldelad hanterad identitet från en VM-skalningsuppsättning

  1. Hämta en bearer-åtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa vm-skalningsuppsättningen med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  2. För att säkerställa att du inte tar bort några befintliga användartilldelade hanterade identiteter som du vill behålla tilldelade till vm-skalningsuppsättningen eller ta bort den systemtilldelade hanterade identiteten måste du lista de hanterade identiteterna med hjälp av följande CURL-kommando:

    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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Om du har tilldelats hanterade identiteter till den virtuella datorn visas de i svaret i identity värdet.

    Om du till exempel har användartilldelade hanterade identiteter ID1 och ID2 tilldelats till vm-skalningsuppsättningen och bara vill behålla ID1 den systemtilldelade hanterade identiteten:

    API VERSION 2018-06-01

    Lägg till null den användartilldelade hanterade identiteten som du vill ta bort:

    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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null
           }
        }
     }
    

    API VERSION 2017-12-01

    Behåll endast de användartilldelade hanterade identiteter som du vill behålla i matrisen 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
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "identity":{
           "type":"SystemAssigned,UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    

Om vm-skalningsuppsättningen har både systemtilldelade och användartilldelade hanterade identiteter kan du ta bort alla användartilldelade hanterade identiteter genom att växla till att endast använda systemtilldelade med hjälp av följande kommando:

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

Begärandehuvuden

Begärandehuvud beskrivning
Innehållstyp Obligatoriska. Ange till application/json.
Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

Begärandetext

{
   "identity":{
      "type":"SystemAssigned"
   }
}

Om vm-skalningsuppsättningen bara har användartilldelade hanterade identiteter och du vill ta bort dem alla använder du följande kommando:

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

Begärandehuvuden

Begärandehuvud beskrivning
Innehållstyp Obligatoriska. Ange till application/json.
Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

Begärandetext

{
   "identity":{
      "type":"None"
   }
}

Nästa steg

Information om hur du skapar, listar eller tar bort användartilldelade hanterade identiteter med hjälp av REST finns i: