Konfigurowanie tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej platformy Azure przy użyciu programu PowerShell

Tożsamości zarządzane dla zasobów platformy Azure to funkcja identyfikatora Entra firmy Microsoft. Każda usługa platformy Azure obsługująca tożsamości zarządzane dla zasobów platformy Azure ma własną oś czasu. Pamiętaj, aby przed rozpoczęciem sprawdzić stan dostępności tożsamości zarządzanych dla swojego zasobu i znane problemy.

Tożsamości zarządzane dla zasobów platformy Azure udostępniają usługom platformy Azure automatycznie zarządzaną tożsamość w usłudze Microsoft Entra ID. Za pomocą tej tożsamości można uwierzytelnić się w dowolnej usłudze obsługującej uwierzytelnianie usługi Microsoft Entra bez konieczności przechowywania poświadczeń w kodzie.

W tym artykule, korzystając z programu PowerShell, dowiesz się, jak wykonywać następujące tożsamości zarządzane dla operacji zasobów platformy Azure na maszynie wirtualnej platformy Azure.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Wymagania wstępne

  • Jeśli nie znasz tożsamości zarządzanych dla zasobów platformy Azure, zapoznaj się z sekcją Przegląd. Pamiętaj, aby zapoznać się z różnicą między tożsamością zarządzaną przypisaną przez system i przypisaną przez użytkownika.
  • Jeśli nie masz jeszcze konta platformy Azure, utwórz bezpłatne konto przed kontynuowaniem.
  • Aby uruchomić przykładowe skrypty, dostępne są dwie opcje:
    • Użyj usługi Azure Cloud Shell, którą można otworzyć za pomocą przycisku Wypróbuj w prawym górnym rogu bloków kodu.
    • Uruchom skrypty lokalnie, instalując najnowszą wersję programu Azure PowerShell, a następnie zaloguj się do platformy Azure przy użyciu polecenia Connect-AzAccount.

Tożsamość zarządzana przypisana przez system

W tej sekcji omówimy sposób włączania i wyłączania tożsamości zarządzanej przypisanej przez system przy użyciu programu Azure PowerShell.

Włączanie tożsamości zarządzanej przypisanej przez system podczas tworzenia maszyny wirtualnej platformy Azure

Aby utworzyć maszynę wirtualną platformy Azure z włączoną tożsamością zarządzaną przypisaną przez system, twoje konto wymaga przypisania roli Współautor maszyny wirtualnej. Nie są wymagane żadne inne przypisania roli katalogu Entra firmy Microsoft.

  1. Zapoznaj się z jednym z następujących przewodników Szybki start dotyczących maszyn wirtualnych platformy Azure, wykonując tylko niezbędne sekcje ("Zaloguj się do platformy Azure", "Tworzenie grupy zasobów", "Tworzenie grupy sieci", "Tworzenie maszyny wirtualnej").

    Po przejściu do sekcji "Tworzenie maszyny wirtualnej" wprowadź niewielką modyfikację składni polecenia cmdlet New-AzVMConfig . Pamiętaj, aby dodać parametr, aby aprowizować maszynę -IdentityType SystemAssigned wirtualną z włączoną tożsamością przypisaną przez system, na przykład:

    $vmConfig = New-AzVMConfig -VMName myVM -IdentityType SystemAssigned ...
    

Włączanie tożsamości zarządzanej przypisanej przez system na istniejącej maszynie wirtualnej platformy Azure

Aby włączyć tożsamość zarządzaną przypisaną przez system na maszynie wirtualnej, która została pierwotnie aprowizowana bez niej, twoje konto wymaga przypisania roli Współautor maszyny wirtualnej. Nie są wymagane żadne inne przypisania roli katalogu Entra firmy Microsoft.

  1. Pobierz właściwości maszyny wirtualnej przy użyciu Get-AzVM polecenia cmdlet . Następnie, aby włączyć tożsamość zarządzaną przypisaną przez system, użyj przełącznika -IdentityTypepolecenia cmdlet Update-AzVM :

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
    Update-AzVM -ResourceGroupName myResourceGroup -VM $vm -IdentityType SystemAssigned
    

Dodawanie tożsamości przypisanej przez system maszyny wirtualnej do grupy

Po włączeniu tożsamości przypisanej przez system na maszynie wirtualnej możesz dodać ją do grupy. Poniższa procedura dodaje tożsamość przypisaną przez system maszyny wirtualnej do grupy.

  1. Pobierz i zanotuj wartości ObjectID (określone w Id polu zwróconych wartości) jednostki usługi maszyny wirtualnej:

    Get-AzADServicePrincipal -displayname "myVM"
    
  2. Pobierz i zanotuj wartości ObjectID (określone w Id polu zwróconych wartości) grupy:

    Get-AzADGroup -searchstring "myGroup"
    
  3. Dodaj jednostkę usługi maszyny wirtualnej do grupy:

    New-MgGroupMember -GroupId "<Id of group>" -DirectoryObjectId "<Id of VM service principal>" 
    

Wyłączanie tożsamości zarządzanej przypisanej przez system z maszyny wirtualnej platformy Azure

Aby wyłączyć tożsamość zarządzaną przypisaną przez system na maszynie wirtualnej, twoje konto wymaga przypisania roli Współautor maszyny wirtualnej. Nie są wymagane żadne inne przypisania roli katalogu Entra firmy Microsoft.

Jeśli masz maszynę wirtualną, która nie potrzebuje już przypisanej przez system tożsamości zarządzanej, ale nadal potrzebuje tożsamości zarządzanych przypisanych przez użytkownika, użyj następującego polecenia cmdlet:

  1. Pobierz właściwości maszyny wirtualnej przy użyciu Get-AzVM polecenia cmdlet i ustaw -IdentityType parametr na UserAssigned:

    $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>..."
    

Jeśli masz maszynę wirtualną, która nie potrzebuje już przypisanej przez system tożsamości zarządzanej i nie ma tożsamości zarządzanych przypisanych przez użytkownika, użyj następujących poleceń:

$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None

Tożsamość zarządzana przypisana przez użytkownika

W tej sekcji dowiesz się, jak dodać i usunąć tożsamość zarządzaną przypisaną przez użytkownika z maszyny wirtualnej przy użyciu programu Azure PowerShell.

Przypisywanie tożsamości zarządzanej przypisanej przez użytkownika do maszyny wirtualnej podczas tworzenia

Aby przypisać tożsamość przypisaną przez użytkownika do maszyny wirtualnej, twoje konto wymaga przypisań ról Współautor maszyny wirtualnej i Operator tożsamości zarządzanej. Nie są wymagane żadne inne przypisania roli katalogu Entra firmy Microsoft.

  1. Zapoznaj się z jednym z następujących przewodników Szybki start dotyczących maszyn wirtualnych platformy Azure, wykonując tylko niezbędne sekcje ("Zaloguj się do platformy Azure", "Tworzenie grupy zasobów", "Tworzenie grupy sieci", "Tworzenie maszyny wirtualnej").

    Po przejściu do sekcji "Tworzenie maszyny wirtualnej" wprowadź niewielką modyfikację New-AzVMConfig składni polecenia cmdlet. Dodaj parametry i-IdentityID, -IdentityType UserAssigned aby aprowizować maszynę wirtualną przy użyciu tożsamości przypisanej przez użytkownika. Zastąp <VM NAME>wartości ,<SUBSCRIPTION ID>, <RESROURCE GROUP>i <USER ASSIGNED IDENTITY NAME> własnymi wartościami. Na przykład:

    $vmConfig = New-AzVMConfig -VMName <VM NAME> -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
    

Przypisywanie tożsamości zarządzanej przypisanej przez użytkownika do istniejącej maszyny wirtualnej platformy Azure

Aby przypisać tożsamość przypisaną przez użytkownika do maszyny wirtualnej, twoje konto wymaga przypisań ról Współautor maszyny wirtualnej i Operator tożsamości zarządzanej. Nie są wymagane żadne inne przypisania roli katalogu Entra firmy Microsoft.

  1. Utwórz tożsamość zarządzaną przypisaną przez użytkownika przy użyciu polecenia cmdlet New-AzUserAssignedIdentity . Zanotuj Id dane wyjściowe, ponieważ te informacje będą potrzebne w następnym kroku.

    Ważne

    Tworzenie tożsamości zarządzanych przypisanych przez użytkownika obsługuje tylko znaki alfanumeryczne, podkreślenie i łącznik (0–9 lub a–z lub A-Z, _ lub -). Ponadto nazwa powinna być ograniczona z zakresu od 3 do 128 znaków, aby przypisanie do maszyny wirtualnej/zestawu skalowania maszyn wirtualnych działało prawidłowo. Aby uzyskać więcej informacji, zobacz Często zadawane pytania i znane problemy

    New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
    
  2. Pobierz właściwości maszyny wirtualnej przy użyciu Get-AzVM polecenia cmdlet . Następnie, aby przypisać tożsamość zarządzaną przypisaną przez użytkownika do maszyny wirtualnej platformy Azure, użyj -IdentityType polecenia cmdlet Update-AzVM i -IdentityID . Wartość parametru-IdentityId jest wartością Id zanotowaną w poprzednim kroku. Zastąp <VM NAME>wartości , <SUBSCRIPTION ID>, <RESROURCE GROUP>i <USER ASSIGNED IDENTITY NAME> własnymi wartościami.

    Ostrzeżenie

    Aby zachować wszystkie wcześniej przypisane przez użytkownika tożsamości zarządzane przypisane do maszyny wirtualnej, wykonaj zapytanie o Identity właściwość obiektu maszyny wirtualnej (na przykład $vm.Identity). Jeśli zostaną zwrócone tożsamości zarządzane przypisane przez użytkownika, dołącz je do następującego polecenia wraz z nową tożsamością zarządzaną przypisaną przez użytkownika, którą chcesz przypisać do maszyny wirtualnej.

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

Usuwanie tożsamości zarządzanej przypisanej przez użytkownika z maszyny wirtualnej platformy Azure

Aby usunąć tożsamość przypisaną przez użytkownika do maszyny wirtualnej, twoje konto wymaga przypisania roli Współautor maszyny wirtualnej.

Jeśli maszyna wirtualna ma wiele tożsamości zarządzanych przypisanych przez użytkownika, możesz usunąć wszystkie, ale ostatnie przy użyciu następujących poleceń. Upewnij się, że parametry <RESOURCE GROUP> i <VM NAME> zostały zastąpione własnymi wartościami. Jest <USER ASSIGNED IDENTITY NAME> to właściwość name tożsamości zarządzanej przypisanej przez użytkownika, która powinna pozostać na maszynie wirtualnej. Te informacje można odnaleźć za pomocą zapytania w celu wyszukania Identity właściwości obiektu maszyny wirtualnej. Na przykład : $vm.Identity

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType UserAssigned -IdentityID <USER ASSIGNED IDENTITY NAME>

Jeśli maszyna wirtualna nie ma przypisanej przez system tożsamości zarządzanej i chcesz usunąć z niej wszystkie tożsamości zarządzane przypisane przez użytkownika, użyj następującego polecenia:

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None

Jeśli maszyna wirtualna ma tożsamości zarządzane przypisane przez system i przypisane przez użytkownika, możesz usunąć wszystkie tożsamości zarządzane przypisane przez użytkownika, przełączając się na używanie tylko tożsamości zarządzanych przypisanych przez system.

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType "SystemAssigned"

Następne kroki