Настройка управляемых удостоверений для ресурсов Azure в масштабируемом наборе виртуальных машин Azure с помощью шаблона

Управляемые удостоверения для ресурсов Azure — это функция идентификатора Microsoft Entra. Каждая служба Azure, которая поддерживает управляемые удостоверения для ресурсов Azure, используется в соответствии с собственной временной шкалой. Прежде чем начать работу, обязательно проверьте состояние доступности управляемых удостоверений для своего ресурса и ознакомьтесь с известными проблемами.

Управляемые удостоверения для ресурсов Azure предоставляют службам Azure автоматически управляемое удостоверение, которое хранится в Microsoft Entra ID. Это удостоверение можно использовать для проверки подлинности в любой службе, которая поддерживает аутентификацию Microsoft Entra, без использования учетных данных в коде.

В этой статье вы узнаете, как выполнять приведенные ниже операции с управляемыми удостоверениями для ресурсов Azure в масштабируемом наборе виртуальных машин Azure с помощью шаблона развертывания Azure Resource Manager.

  • Включение и отключение управляемого удостоверения, назначаемого системой, в масштабируемом наборе виртуальных машин Azure
  • Добавление и удаление управляемого удостоверения, назначаемого пользователем, в масштабируемом наборе виртуальных машин Azure

Необходимые компоненты

Шаблоны диспетчера ресурсов Azure

Так же как портал Azure и сценарии, шаблоны Azure Resource Manager предоставляют возможность развертывать новые или измененные ресурсы, определенные в группе ресурсов Azure. Доступно несколько способов редактирования и развертывания шаблона, локально и на портале, в том числе:

Независимо оттого, какой вариант выбран, во время первоначального развертывания и повторного развертывания в шаблоне используется одинаковый синтаксис. Включение управляемых удостоверений для ресурсов Azure на новой или существующей виртуальной машине выполняется таким же образом. Коме того, по умолчанию Azure Resource Manager выполняет добавочное обновление для развертываний.

Управляемое удостоверение, назначаемое системой

В этом разделе вы узнаете, как включить и отключить управляемое удостоверение, назначаемое системой, с помощью шаблона Azure Resource Manager.

Включение управляемого удостоверения, назначаемого системой, для создаваемого или существующего масштабируемого набора виртуальных машин

  1. После входа в Azure локально или через портал Azure используйте учетную запись, связанную с подпиской Azure, которая содержит масштабируемый набор виртуальных машин.

  2. Чтобы включить управляемое удостоверение, назначаемое системой, загрузите шаблон в редактор, найдите интересующий ресурс Microsoft.Compute/virtualMachinesScaleSets в разделе ресурсов и добавьте свойство identity на том же уровне, что и свойство "type": "Microsoft.Compute/virtualMachinesScaleSets". Используйте следующий синтаксис:

    "identity": {
        "type": "SystemAssigned"
    }
    
  3. Когда все будет готово, необходимо добавить следующие разделы в раздел ресурсов шаблона, который должен выглядеть так, как показано в приведенном ниже примере.

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

Отключение управляемого удостоверения, назначаемого системой, в масштабируемом наборе виртуальных машин Azure

Если для масштабируемого набора виртуальных машин управляемое удостоверение, назначаемое системой, больше не требуется, сделайте следующее.

  1. После входа в Azure локально или через портал Azure используйте учетную запись, связанную с подпиской Azure, которая содержит масштабируемый набор виртуальных машин.

  2. Загрузив шаблон в редактор, найдите нужный ресурс Microsoft.Compute/virtualMachineScaleSets в разделе resources. Если у вашей виртуальной машины есть только управляемое удостоверение, назначаемое системой, его можно отключить, изменив тип удостоверения на None.

    Microsoft.Compute/virtualMachineScaleSets API версии 2018-06-01

    Если apiVersion имеет значение 2018-06-01 и в виртуальной машине есть управляемые удостоверения, назначаемые как системой, так и пользователем, удалите SystemAssigned из типа удостоверения и оставьте UserAssigned вместе со значениями словаря userAssignedIdentities.

    Microsoft.Compute/virtualMachineScaleSets API версии 2018-06-01

    Если apiVersion имеет значение 2017-12-01 и у масштабируемого набора виртуальных машин есть управляемые удостоверения, назначаемые как системой, так и пользователем, удалите SystemAssigned из типов удостоверения и оставьте UserAssigned вместе с массивом управляемых удостоверений, назначаемых пользователем, identityIds.

    В следующем примере показано, как удалить управляемое удостоверение, назначаемое системой, из масштабируемого набора виртуальных машин без управляемых удостоверений, назначаемых пользователем.

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

Управляемое удостоверение, назначаемое пользователем

В этом разделе вы зададите управляемое удостоверение, назначаемое пользователем, для масштабируемого набора виртуальных машин с помощью шаблона Azure Resource Manager.

Примечание.

Чтобы создать управляемое удостоверение, назначаемое пользователем, с помощью шаблона Azure Resource Manager, обратитесь к разделу Создание управляемого удостоверения, назначаемого пользователем.

Присвоение управляемого удостоверения, назначаемого пользователем, для масштабируемого набора виртуальных машин

  1. Чтобы задать управлемое удостоверение, назначаемое пользователем, для масштабируемого набора виртуальных машин, в элемент resources добавьте приведенную ниже запись. Не забудьте заменить <USERASSIGNEDIDENTITY> именем созданного управляемого удостоверения, назначаемого пользователем.

    Microsoft.Compute/virtualMachineScaleSets API версии 2018-06-01

    Если apiVersion имеет значение 2018-06-01, то управляемые удостоверения, назначаемые пользователем, хранятся в формате словаря userAssignedIdentities, а значение <USERASSIGNEDIDENTITYNAME> должно храниться в переменной, определенной в разделе 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 версии 2017-12-01

    Если apiVersion соответствует 2017-12-01 или более ранней версии, то управляемые удостоверения, назначаемые пользователем, хранятся в массиве identityIds, а значение <USERASSIGNEDIDENTITYNAME> должно храниться в переменной, определенной в разделе variables шаблона.

    {
        "name": "[variables('vmssName')]",
        "apiVersion": "2017-03-30",
        "location": "[parameters(Location')]",
        "identity": {
            "type": "userAssigned",
            "identityIds": [
                "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITY>'))]"
            ]
        }
    }
    
  2. По завершении шаблон должен выглядеть следующим образом.

    Microsoft.Compute/virtualMachineScaleSets API версии 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 версии 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...
                 }
             }
         }
     ]
    

Удаление управляемого удостоверения, назначаемого пользователем, из масштабируемого набора виртуальных машин Azure

Если для масштабируемого набора виртуальных машин больше не требуется управляемое удостоверение, назначаемое пользователем, сделайте следующее.

  1. После входа в Azure локально или через портал Azure используйте учетную запись, связанную с подпиской Azure, которая содержит масштабируемый набор виртуальных машин.

  2. Загрузив шаблон в редактор, найдите нужный ресурс Microsoft.Compute/virtualMachineScaleSets в разделе resources. Если у масштабируемого набора виртуальных машин есть только управляемое удостоверение, назначаемое пользователем, его можно отключить, изменив тип удостоверения на None.

    В следующем примере показано, как удалить все управляемые удостоверения, назначаемые пользователем, из виртуальной машины без управляемых удостоверений, назначаемых системой.

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

    Microsoft.Compute/virtualMachineScaleSets API версии 2018-06-01

    Чтобы удалить отдельное управляемое удостоверение, назначаемое пользователем, из масштабируемого набора виртуальных машин, удалите его из словаря userAssignedIdentities.

    Если у вас есть удостоверение, назначаемое системой, сохраните его в значении type в рамках значения identity.

    Microsoft.Compute/virtualMachineScaleSets API версии 2017-12-01

    Чтобы удалить отдельное управляемое удостоверение, назначаемое пользователем, из масштабируемого набора виртуальных машин, удалите его из массива identityIds.

    Если у вас есть управляемое удостоверение, назначаемое системой, сохраните его в значении type в рамках значения identity.

Следующие шаги