Konfigurowanie tożsamości zarządzanych dla zasobów platformy Azure w skali maszyn wirtualnych platformy Azure przy użyciu szablonu

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.

Z tego artykułu dowiesz się, jak wykonywać następujące tożsamości zarządzane dla operacji zasobów platformy Azure w zestawie skalowania maszyn wirtualnych platformy Azure przy użyciu szablonu wdrażania usługi Azure Resource Manager:

  • Włączanie i wyłączanie tożsamości zarządzanej przypisanej przez system w zestawie skalowania maszyn wirtualnych platformy Azure
  • Dodawanie i usuwanie tożsamości zarządzanej przypisanej przez użytkownika w zestawie skalowania maszyn wirtualnych platformy Azure

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 wykonać operacje zarządzania w tym artykule, twoje konto wymaga następujących przypisań kontroli dostępu opartej na rolach platformy Azure:

    Uwaga

    Nie są wymagane żadne dodatkowe przypisania ról katalogu Entra firmy Microsoft.

    • Współautor maszyny wirtualnej w celu utworzenia zestawu skalowania maszyn wirtualnych oraz włączenia i usunięcia tożsamości zarządzanej przypisanej przez użytkownika i/lub z zestawu skalowania maszyn wirtualnych.
    • Rola Współautor tożsamości zarządzanej w celu utworzenia tożsamości zarządzanej przypisanej przez użytkownika.
    • Rola Operator tożsamości zarządzanej w celu przypisania i usunięcia tożsamości zarządzanej przypisanej przez użytkownika z zestawu skalowania maszyn wirtualnych i do niego.

Szablony usługi Azure Resource Manager

Podobnie jak w przypadku witryny Azure Portal i tworzenia skryptów , szablony usługi Azure Resource Manager umożliwiają wdrażanie nowych lub zmodyfikowanych zasobów zdefiniowanych przez grupę zasobów platformy Azure. Dostępnych jest kilka opcji edytowania i wdrażania szablonów, zarówno lokalnych, jak i opartych na portalu, w tym:

Niezależnie od wybranej opcji składnia szablonu jest taka sama podczas początkowego wdrażania i ponownego wdrażania. Włączenie tożsamości zarządzanych dla zasobów platformy Azure na nowej lub istniejącej maszynie wirtualnej odbywa się w ten sam sposób. Ponadto usługa Azure Resource Manager domyślnie wykonuje przyrostową aktualizację wdrożeń.

Tożsamość zarządzana przypisana przez system

W tej sekcji włączysz i wyłączysz tożsamość zarządzaną przypisaną przez system przy użyciu szablonu usługi Azure Resource Manager.

Włączanie tożsamości zarządzanej przypisanej przez system podczas tworzenia zestawu skalowania maszyn wirtualnych lub istniejącego zestawu skalowania maszyn wirtualnych

  1. Niezależnie od tego, czy logujesz się do platformy Azure lokalnie, czy za pośrednictwem witryny Azure Portal, użyj konta skojarzonego z subskrypcją platformy Azure zawierającą zestaw skalowania maszyn wirtualnych.

  2. Aby włączyć tożsamość zarządzaną przypisaną przez system, załaduj szablon do edytora, znajdź Microsoft.Compute/virtualMachinesScaleSets interesujący go zasób w sekcji zasobów i dodaj identity właściwość na tym samym poziomie co "type": "Microsoft.Compute/virtualMachinesScaleSets" właściwość. Użyj następującej składni:

    "identity": {
        "type": "SystemAssigned"
    }
    
  3. Po zakończeniu następujące sekcje powinny zostać dodane do sekcji zasobów szablonu i powinny wyglądać podobnie do przykładu przedstawionego poniżej:

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

Wyłączanie tożsamości zarządzanej przypisanej przez system z zestawu skalowania maszyn wirtualnych platformy Azure

Jeśli masz zestaw skalowania maszyn wirtualnych, który nie potrzebuje już tożsamości zarządzanej przypisanej przez system:

  1. Niezależnie od tego, czy logujesz się do platformy Azure lokalnie, czy za pośrednictwem witryny Azure Portal, użyj konta skojarzonego z subskrypcją platformy Azure zawierającą zestaw skalowania maszyn wirtualnych.

  2. Załaduj szablon do edytora i znajdź Microsoft.Compute/virtualMachineScaleSets interesujący go zasób w resources sekcji. Jeśli masz maszynę wirtualną, która ma tylko tożsamość zarządzaną przypisaną przez system, możesz ją wyłączyć, zmieniając typ tożsamości na None.

    Microsoft.Compute/virtualMachineScaleSets API w wersji 2018-06-01

    Jeśli twoja wersja apiVersion jest 2018-06-01 i maszyna wirtualna ma tożsamości zarządzane przypisane przez system i użytkownika, usuń SystemAssigned z typu tożsamości i zachowaj UserAssigned razem z wartościami słownika userAssignedIdentities.

    Microsoft.Compute/virtualMachineScaleSets API w wersji 2018-06-01

    Jeśli element apiVersion jest 2017-12-01 i zestaw skalowania maszyn wirtualnych ma tożsamości zarządzane przypisane przez użytkownika, usuń SystemAssigned z typu tożsamości i zachowaj UserAssigned je wraz z identityIds tablicą tożsamości przypisanych przez użytkownika.

    W poniższym przykładzie pokazano, jak usunąć tożsamość zarządzaną przypisaną przez system z zestawu skalowania maszyn wirtualnych bez tożsamości zarządzanych przypisanych przez użytkownika:

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

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

W tej sekcji przypiszesz tożsamość zarządzaną przypisaną przez użytkownika do zestawu skalowania maszyn wirtualnych przy użyciu szablonu usługi Azure Resource Manager.

Uwaga

Aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika przy użyciu szablonu usługi Azure Resource Manager, zobacz Tworzenie tożsamości zarządzanej przypisanej przez użytkownika.

Przypisywanie tożsamości zarządzanej przypisanej przez użytkownika do zestawu skalowania maszyn wirtualnych

  1. W obszarze elementu resources dodaj następujący wpis, aby przypisać tożsamość zarządzaną przypisaną przez użytkownika do zestawu skalowania maszyn wirtualnych. Pamiętaj, aby zastąpić <USERASSIGNEDIDENTITY> ciąg nazwą utworzonej tożsamości zarządzanej przypisanej przez użytkownika.

    Microsoft.Compute/virtualMachineScaleSets API w wersji 2018-06-01

    Jeśli parametr apiVersion to 2018-06-01, tożsamości zarządzane przypisane przez użytkownika są przechowywane w userAssignedIdentities formacie słownika, a <USERASSIGNEDIDENTITYNAME> wartość musi być przechowywana w zmiennej zdefiniowanej w variables sekcji szablonu.

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

    Microsoft.Compute/virtualMachineScaleSets API w wersji 2017-12-01

    Jeśli twoje apiVersion2017-12-01 tożsamości zarządzane przypisane przez użytkownika są przechowywane w identityIds tablicy, a <USERASSIGNEDIDENTITYNAME> wartość musi być przechowywana w zmiennej zdefiniowanej w sekcji zmiennych szablonu.

    {
        "name": "[variables('vmssName')]",
        "apiVersion": "2017-03-30",
        "location": "[parameters(Location')]",
        "identity": {
            "type": "userAssigned",
            "identityIds": [
                "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITY>'))]"
            ]
        }
    }
    
  2. Po zakończeniu szablon powinien wyglądać podobnie do następującego:

    Microsoft.Compute/virtualMachineScaleSets API w wersji 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 w wersji 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...
                 }
             }
         }
     ]
    

Usuwanie tożsamości zarządzanej przypisanej przez użytkownika z zestawu skalowania maszyn wirtualnych platformy Azure

Jeśli masz zestaw skalowania maszyn wirtualnych, który nie potrzebuje już tożsamości zarządzanej przypisanej przez użytkownika:

  1. Niezależnie od tego, czy logujesz się do platformy Azure lokalnie, czy za pośrednictwem witryny Azure Portal, użyj konta skojarzonego z subskrypcją platformy Azure zawierającą zestaw skalowania maszyn wirtualnych.

  2. Załaduj szablon do edytora i znajdź Microsoft.Compute/virtualMachineScaleSets interesujący go zasób w resources sekcji. Jeśli masz zestaw skalowania maszyn wirtualnych, który ma tylko tożsamość zarządzaną przypisaną przez użytkownika, możesz go wyłączyć, zmieniając typ tożsamości na None.

    W poniższym przykładzie pokazano, jak usunąć wszystkie tożsamości zarządzane przypisane przez użytkownika z maszyny wirtualnej bez tożsamości zarządzanych przypisanych przez system:

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

    Microsoft.Compute/virtualMachineScaleSets API w wersji 2018-06-01

    Aby usunąć tożsamość zarządzaną przypisaną przez jednego użytkownika z zestawu skalowania maszyn wirtualnych, usuń ją ze słownika userAssignedIdentities .

    Jeśli masz tożsamość przypisaną przez system, zachowaj ją w type wartości poniżej identity wartości.

    Microsoft.Compute/virtualMachineScaleSets API w wersji 2017-12-01

    Aby usunąć tożsamość zarządzaną przypisaną przez jednego użytkownika z zestawu skalowania maszyn wirtualnych, usuń ją z tablicy identityIds .

    Jeśli masz tożsamość zarządzaną przypisaną przez system, zachowaj ją w type wartości poniżej identity wartości.

Następne kroki

  • Omówienie tożsamości zarządzanych dla zasobów platformy Azure.