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

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

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

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

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

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

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

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

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

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

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

Чтобы включить назначаемое системой управляемое удостоверение на виртуальной машине, вашей учетной записи должна быть назначена роль Участника виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.

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

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

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

     "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "SystemAssigned",
                 }                        
         }
     ]
    

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

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

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

Чтобы удалить назначаемое системой управляемое удостоверение на виртуальной машине, вашей учетной записи должна быть назначена роль Участника виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.

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

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

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

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

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

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

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

{
    "apiVersion": "2018-06-01",
    "type": "Microsoft.Compute/virtualMachines",
    "name": "[parameters('vmName')]",
    "location": "[resourceGroup().location]",
    "identity": {
        "type": "None"
    }
}

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

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

Примечание.

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

Назначение управляемого удостоверения, назначаемого пользователем, виртуальной машине Linux

Чтобы присвоить назначаемое пользователем удостоверение виртуальной машине, вашей учетной записи должна быть назначена роль Оператор управляемого удостоверения. Другие назначения ролей каталога Microsoft Entra не требуются.

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

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

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

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

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

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

    {
        "apiVersion": "2017-12-01",
        "type": "Microsoft.Compute/virtualMachines",
        "name": "[variables('vmName')]",
        "location": "[resourceGroup().location]",
        "identity": {
            "type": "userAssigned",
            "identityIds": [
                "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]"
            ]
        }
    }
    
  2. Когда все будет готово, следующие разделы должны быть добавлены в раздел resource шаблона, который в результате должен выглядеть следующим образом.

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

      "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "userAssigned",
                 "userAssignedIdentities": {
                    "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
                 }
             }
         }
     ] 
    

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

    "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2017-12-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "userAssigned",
                 "identityIds": [
                    "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]"
                 ]
             }
         }
    ]
    

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

Чтобы удалить назначаемое пользователем удостоверение на виртуальной машине, вашей учетной записи должна быть назначена роль Участника виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.

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

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

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

     {
       "apiVersion": "2018-06-01",
       "type": "Microsoft.Compute/virtualMachines",
       "name": "[parameters('vmName')]",
       "location": "[resourceGroup().location]",
       "identity": {
           "type": "None"
           },
     }
    

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

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

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

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

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

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

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