Konfigurera hanterade identiteter för Azure-resurser på en virtuell Azure-datorskala med hjälp av en mall

Hanterade identiteter för Azure-resurser är en funktion i Microsoft Entra-ID. Alla Azure-tjänster som stöder hanterade identiteter för Azure-resurser har sin egen tidslinje. Var noga med att kontrollera tillgänglighetsstatus för hanterade identiteter för din resurs och kända problem innan du börjar.

Hanterade identiteter för Azure-resurser ger Azure-tjänster en automatiskt hanterad identitet 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 får du lära dig hur du utför följande hanterade identiteter för Azure-resursåtgärder på en skalningsuppsättning för virtuella Azure-datorer med hjälp av Azure Resource Manager-distributionsmallen:

  • 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

Förutsättningar

Azure Resource Manager-mallar

Precis som med Azure-portalen och skript ger Azure Resource Manager-mallar möjlighet att distribuera nya eller ändrade resurser som definierats av en Azure-resursgrupp. Det finns flera alternativ för mallredigering och distribution, både lokalt och portalbaserat, inklusive:

Oavsett vilket alternativ du väljer är mallsyntaxen densamma under den första distributionen och omdistributionen. Aktivering av hanterade identiteter för Azure-resurser på en ny eller befintlig virtuell dator görs på samma sätt. Som standard gör Azure Resource Manager också en inkrementell uppdatering av distributioner.

Systemtilldelad hanterad identitet

I det här avsnittet aktiverar och inaktiverar du den systemtilldelade hanterade identiteten med hjälp av en Azure Resource Manager-mall.

Aktivera systemtilldelad hanterad identitet när du skapar en vm-skalningsuppsättning eller en befintlig vm-skalningsuppsättning

  1. Oavsett om du loggar in på Azure lokalt eller via Azure-portalen använder du ett konto som är associerat med Azure-prenumerationen som innehåller vm-skalningsuppsättningen.

  2. Om du vill aktivera den systemtilldelade hanterade identiteten läser du in mallen i ett redigeringsprogram, letar upp resursen Microsoft.Compute/virtualMachinesScaleSets av intresse i resursavsnittet och lägger till identity egenskapen på samma nivå som "type": "Microsoft.Compute/virtualMachinesScaleSets" egenskapen. Använd följande syntax:

    "identity": {
        "type": "SystemAssigned"
    }
    
  3. När du är klar bör följande avsnitt läggas till i resursavsnittet i mallen och bör likna exemplet nedan:

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

Inaktivera en systemtilldelad hanterad identitet från en skalningsuppsättning för virtuella Azure-datorer

Om du har en VM-skalningsuppsättning som inte längre behöver en systemtilldelad hanterad identitet:

  1. Oavsett om du loggar in på Azure lokalt eller via Azure-portalen använder du ett konto som är associerat med Azure-prenumerationen som innehåller vm-skalningsuppsättningen.

  2. Läs in mallen i ett redigeringsprogram och leta reda på resursen Microsoft.Compute/virtualMachineScaleSets av intresse i resources avsnittet. Om du har en virtuell dator som bara har en systemtilldelad hanterad identitet kan du inaktivera den genom att ändra identitetstypen till None.

    Microsoft.Compute/virtualMachineScaleSets API version 2018-06-01

    Om din apiVersion är 2018-06-01 och den virtuella datorn har både system- och användartilldelade hanterade identiteter tar du bort SystemAssigned från identitetstypen och håller UserAssigned dig tillsammans med ordlistevärdena userAssignedIdentities.

    Microsoft.Compute/virtualMachineScaleSets API version 2018-06-01

    Om din apiVersion är 2017-12-01 och vm-skalningsuppsättningen har både system- och användartilldelade hanterade identiteter tar du bort SystemAssigned från identitetstypen och håller UserAssigned med matrisen identityIds för de användartilldelade hanterade identiteterna.

    I följande exempel visas hur du tar bort en systemtilldelad hanterad identitet från en VM-skalningsuppsättning utan användartilldelade hanterade identiteter:

    {
        "name": "[variables('vmssName')]",
        "apiVersion": "2018-06-01",
        "location": "[parameters(Location')]",
        "identity": {
            "type": "None"
         }
    
    }
    

Användartilldelad hanterad identitet

I det här avsnittet tilldelar du en användartilldelad hanterad identitet till en vm-skalningsuppsättning med hjälp av Azure Resource Manager-mallen.

Kommentar

Information om hur du skapar en användartilldelad hanterad identitet med hjälp av en Azure Resource Manager-mall finns i Skapa en användartilldelad hanterad identitet.

Tilldela en användartilldelad hanterad identitet till en VM-skalningsuppsättning

  1. Under elementet resources lägger du till följande post för att tilldela en användartilldelad hanterad identitet till vm-skalningsuppsättningen. Ersätt <USERASSIGNEDIDENTITY> med namnet på den användartilldelade hanterade identiteten som du skapade.

    Microsoft.Compute/virtualMachineScaleSets API version 2018-06-01

    Om din apiVersion är 2018-06-01lagras dina användartilldelade hanterade identiteter i userAssignedIdentities ordlisteformatet <USERASSIGNEDIDENTITYNAME> och värdet måste lagras i en variabel som definierats i avsnittet i mallen variables .

    {
        "name": "[variables('vmssName')]",
        "apiVersion": "2018-06-01",
        "location": "[parameters(Location')]",
        "identity": {
            "type": "userAssigned",
            "userAssignedIdentities": {
                "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
            }
        }
    
    }
    

    Microsoft.Compute/virtualMachineScaleSets API version 2017-12-01

    Om din apiVersion är 2017-12-01 eller tidigare lagras dina användartilldelade hanterade identiteter i matrisen identityIds och <USERASSIGNEDIDENTITYNAME> värdet måste lagras i en variabel som definieras i avsnittet variabler i mallen.

    {
        "name": "[variables('vmssName')]",
        "apiVersion": "2017-03-30",
        "location": "[parameters(Location')]",
        "identity": {
            "type": "userAssigned",
            "identityIds": [
                "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITY>'))]"
            ]
        }
    }
    
  2. När du är klar bör mallen se ut ungefär så här:

    Microsoft.Compute/virtualMachineScaleSets API version 2018-06-01

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

    Microsoft.Compute/virtualMachines API 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...
                 }
             }
         }
     ]
    

Ta bort användartilldelad hanterad identitet från en skalningsuppsättning för virtuella Azure-datorer

Om du har en VM-skalningsuppsättning som inte längre behöver en användartilldelad hanterad identitet:

  1. Oavsett om du loggar in på Azure lokalt eller via Azure-portalen använder du ett konto som är associerat med Azure-prenumerationen som innehåller vm-skalningsuppsättningen.

  2. Läs in mallen i ett redigeringsprogram och leta reda på resursen Microsoft.Compute/virtualMachineScaleSets av intresse i resources avsnittet. Om du har en VM-skalningsuppsättning som bara har användartilldelad hanterad identitet kan du inaktivera den genom att ändra identitetstypen till None.

    I följande exempel visas hur du tar bort alla användartilldelade hanterade identiteter från en virtuell dator utan systemtilldelade hanterade identiteter:

    {
        "name": "[variables('vmssName')]",
        "apiVersion": "2018-06-01",
        "location": "[parameters(Location')]",
        "identity": {
            "type": "None"
         }
    }
    

    Microsoft.Compute/virtualMachineScaleSets API version 2018-06-01

    Om du vill ta bort en enskild användartilldelad hanterad identitet från en VM-skalningsuppsättning tar du bort den userAssignedIdentities från ordlistan.

    Om du har en systemtilldelad identitet behåller du den type i värdet under värdet identity .

    Microsoft.Compute/virtualMachineScaleSets API version 2017-12-01

    Om du vill ta bort en enskild användartilldelad hanterad identitet från en VM-skalningsuppsättning tar du bort den från matrisen identityIds .

    Om du har en systemtilldelad hanterad identitet behåller du den type i värdet under värdet identity .

Nästa steg