Konfigurera hanterade identiteter för Azure-resurser på en virtuell Azure-dator med PowerShell
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-resurser på en virtuell Azure-dator med hjälp av PowerShell.
Kommentar
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Förutsättningar
- Om du inte känner till hanterade identiteter för Azure-resurser kan du läsa översiktsavsnittet. Se till att granska skillnaden mellan en systemtilldelad och användartilldelad hanterad identitet.
- Om du inte redan har ett Azure-konto registrerar du dig för ett kostnadsfritt konto innan du fortsätter.
- Om du vill köra exempelskripten har du två alternativ:
- Använd Azure Cloud Shell, som du kan öppna med hjälp av knappen Prova i det övre högra hörnet av kodblock.
- Kör skript lokalt genom att installera den senaste versionen av Azure PowerShell och logga sedan in på Azure med .
Connect-AzAccount
Systemtilldelad hanterad identitet
I det här avsnittet går vi över hur du aktiverar och inaktiverar den systemtilldelade hanterade identiteten med hjälp av Azure PowerShell.
Aktivera systemtilldelad hanterad identitet när en virtuell Azure-dator skapas
Om du vill skapa en virtuell Azure-dator med den systemtilldelade hanterade identiteten aktiverad behöver ditt konto rolltilldelningen Virtuell datordeltagare . Inga andra microsoft Entra-katalogrolltilldelningar krävs.
Se någon av följande snabbstarter för virtuella Azure-datorer och slutför endast de nödvändiga avsnitten ("Logga in på Azure", "Skapa resursgrupp", "Skapa nätverksgrupp", "Skapa den virtuella datorn").
När du kommer till avsnittet "Skapa den virtuella datorn" gör du en liten ändring av cmdlet-syntaxen New-AzVMConfig . Se till att lägga till en
-IdentityType SystemAssigned
parameter för att etablera den virtuella datorn med den systemtilldelade identiteten aktiverad, till exempel:$vmConfig = New-AzVMConfig -VMName myVM -IdentityType SystemAssigned ...
Aktivera systemtilldelad hanterad identitet på en befintlig virtuell Azure-dator
För att aktivera systemtilldelad hanterad identitet på en virtuell dator som ursprungligen etablerades utan den, behöver ditt konto rolltilldelningen Virtuell datordeltagare . Inga andra microsoft Entra-katalogrolltilldelningar krävs.
Hämta egenskaperna för den virtuella datorn med hjälp av cmdleten
Get-AzVM
. Om du sedan vill aktivera en systemtilldelad hanterad identitet använder du växeln-IdentityType
på cmdleten Update-AzVM :$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM Update-AzVM -ResourceGroupName myResourceGroup -VM $vm -IdentityType SystemAssigned
Lägga till systemtilldelad identitet för virtuell dator i en grupp
När du har aktiverat systemtilldelad identitet på en virtuell dator kan du lägga till den i en grupp. Följande procedur lägger till en virtuell dators systemtilldelade identitet till en grupp.
Hämta och notera
ObjectID
(enligt vad som anges iId
fältet för de returnerade värdena) för den virtuella datorns huvudnamn för tjänsten:Get-AzADServicePrincipal -displayname "myVM"
Hämta och notera
ObjectID
(enligt vad som anges iId
fältet för de returnerade värdena) för gruppen:Get-AzADGroup -searchstring "myGroup"
Lägg till den virtuella datorns tjänsthuvudnamn i gruppen:
New-MgGroupMember -GroupId "<Id of group>" -DirectoryObjectId "<Id of VM service principal>"
Inaktivera systemtilldelad hanterad identitet från en virtuell Azure-dator
Om du vill inaktivera systemtilldelad hanterad identitet på en virtuell dator behöver ditt konto rolltilldelningen Virtuell datordeltagare . Inga andra microsoft Entra-katalogrolltilldelningar krävs.
Om du har en virtuell dator som inte längre behöver den systemtilldelade hanterade identiteten men fortfarande behöver användartilldelade hanterade identiteter använder du följande cmdlet:
Hämta egenskaperna för den virtuella datorn med hjälp av cmdleten
Get-AzVM
och ange parametern-IdentityType
tillUserAssigned
:$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType "UserAssigned" -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
Om du har en virtuell dator som inte längre behöver systemtilldelad hanterad identitet och den inte har några användartilldelade hanterade identiteter använder du följande kommandon:
$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None
Användartilldelad hanterad identitet
I det här avsnittet får du lära dig hur du lägger till och tar bort en användartilldelad hanterad identitet från en virtuell dator med Hjälp av Azure PowerShell.
Tilldela en användartilldelad hanterad identitet till en virtuell dator när den skapas
För att tilldela en användartilldelad identitet till en virtuell dator behöver ditt konto rolltilldelningarna Virtuell datordeltagare och Hanterad identitetsoperator . Inga andra microsoft Entra-katalogrolltilldelningar krävs.
Se någon av följande snabbstarter för virtuella Azure-datorer och slutför endast de nödvändiga avsnitten ("Logga in på Azure", "Skapa resursgrupp", "Skapa nätverksgrupp", "Skapa den virtuella datorn").
När du kommer till avsnittet "Skapa den virtuella datorn" gör du en liten ändring av cmdlet-syntaxen
New-AzVMConfig
. Lägg till parametrarna-IdentityType UserAssigned
och-IdentityID
för att etablera den virtuella datorn med en användartilldelad identitet. Ersätt<VM NAME>
,<SUBSCRIPTION ID>
,<RESROURCE GROUP>
och<USER ASSIGNED IDENTITY NAME>
med dina egna värden. Till exempel:$vmConfig = New-AzVMConfig -VMName <VM NAME> -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
Tilldela en användartilldelad hanterad identitet till en befintlig virtuell Azure-dator
För att tilldela en användartilldelad identitet till en virtuell dator behöver ditt konto rolltilldelningarna Virtuell datordeltagare och Hanterad identitetsoperator . Inga andra microsoft Entra-katalogrolltilldelningar krävs.
Skapa en användartilldelad hanterad identitet med cmdleten New-AzUserAssignedIdentity .
Id
Observera i utdata eftersom du behöver den här informationen i nästa steg.Viktigt!
Att skapa användartilldelade hanterade identiteter stöder endast alfanumeriska tecken, understreck och bindestreck (0–9 eller a-z eller A-Z, _ eller -). Dessutom bör namnet begränsas från 3 till 128 tecken för att tilldelningen till VM/VMSS ska fungera korrekt. Mer information finns i Vanliga frågor och svar och kända problem
New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
Hämta egenskaperna för den virtuella datorn med hjälp av cmdleten
Get-AzVM
. Om du sedan vill tilldela en användartilldelad hanterad identitet till den virtuella Azure-datorn använder-IdentityType
du och-IdentityID
växlar på cmdleten Update-AzVM . Värdet för parametern-IdentityId
är detId
du antecknade i föregående steg. Ersätt<VM NAME>
,<SUBSCRIPTION ID>
,<RESROURCE GROUP>
och<USER ASSIGNED IDENTITY NAME>
med dina egna värden.Varning
Om du vill behålla tidigare användartilldelade hanterade identiteter som tilldelats den virtuella datorn frågar
Identity
du egenskapen för VM-objektet (till exempel$vm.Identity
). Om några användartilldelade hanterade identiteter returneras inkluderar du dem i följande kommando tillsammans med den nya användartilldelade hanterade identiteten som du vill tilldela den virtuella datorn.$vm = Get-AzVM -ResourceGroupName <RESOURCE GROUP> -Name <VM NAME> Update-AzVM -ResourceGroupName <RESOURCE GROUP> -VM $vm -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>"
Ta bort en användartilldelad hanterad identitet från en virtuell Azure-dator
Om du vill ta bort en användartilldelad identitet till en virtuell dator behöver ditt konto rolltilldelningen Virtuell datordeltagare .
Om den virtuella datorn har flera användartilldelade hanterade identiteter kan du ta bort alla utom den sista med hjälp av följande kommandon. Ersätt parametervärdena <RESOURCE GROUP>
och <VM NAME>
med dina egna värden. <USER ASSIGNED IDENTITY NAME>
är den användartilldelade hanterade identitetens namnegenskap, som ska finnas kvar på den virtuella datorn. Den här informationen kan identifieras med hjälp av en fråga för att söka efter egenskapen för Identity
VM-objektet. Till exempel $vm.Identity
:
$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType UserAssigned -IdentityID <USER ASSIGNED IDENTITY NAME>
Om den virtuella datorn inte har någon systemtilldelad hanterad identitet och du vill ta bort alla användartilldelade hanterade identiteter från den använder du följande kommando:
$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None
Om den virtuella datorn 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 hanterade identiteter.
$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType "SystemAssigned"
Nästa steg
Fullständiga snabbstarter för att skapa virtuella Azure-datorer finns i: