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

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

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

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

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

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

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

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

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

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

  1. Используя одно из кратких руководств ниже, выполните действия только в нужных разделах ("Вход в Azure", "Создание группы ресурсов", "Создание группы сети", "Создание виртуальной машины").

    При выполнении действий, описанных в разделе о создании виртуальной машины, не забудьте внести небольшие изменения в синтаксис командлета New-AzVMConfig. Чтобы подготовить виртуальную машину с включенным удостоверением, назначаемым системой, добавьте параметр -IdentityType SystemAssigned, как показано ниже.

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

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

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

  1. Извлеките свойства виртуальной машины с помощью командлета Get-AzVM. Затем, чтобы включить управляемое удостоверение, назначаемое системой, используйте параметр -IdentityType в командлете Update-AzVM.

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

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

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

  1. Получите и запишите ObjectID (как указано в поле Id возвращаемых значений) субъекта-службы виртуальной машины.

    Get-AzADServicePrincipal -displayname "myVM"
    
  2. Получите и запишите ObjectID (как указано в поле Id возвращаемых значений) группы.

    Get-AzADGroup -searchstring "myGroup"
    
  3. Добавление субъекта-службы виртуальной машины в группу.

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

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

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

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

  1. Получите свойства виртуальной машины с помощью командлета Get-AzVM и задайте для параметра -IdentityType значение 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>..."
    

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

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

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

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

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

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

  1. Используя одно из кратких руководств ниже, выполните действия только в нужных разделах ("Вход в Azure", "Создание группы ресурсов", "Создание группы сети", "Создание виртуальной машины").

    При выполнении действий, описанных в разделе о создании виртуальной машины, не забудьте внести небольшие изменения в синтаксис командлета New-AzVMConfig. Добавьте параметры -IdentityType UserAssigned и -IdentityID, чтобы подготовить виртуальную машину с удостоверением, назначаемым пользователем. Замените <VM NAME>,<SUBSCRIPTION ID>, <RESROURCE GROUP> и <USER ASSIGNED IDENTITY NAME> собственными значениями. Например:

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

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

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

  1. Создайте управляемое удостоверение, назначаемое пользователем, с помощью командлета New-AzUserAssignedIdentity. Обратите внимание на Id в выходных данных. Эта информация потребуется вам на следующем шаге.

    Важно!

    При создании управляемых удостоверений, назначаемых пользователем, можно использовать только буквы, цифры, знак подчеркивания и дефис (0–9, a–z, A–Z, _ или -). Кроме того, чтобы назначение виртуальной машине или масштабируемому набору виртуальных машин производилось правильно, длина имени должна составлять 3–128 символов. Дополнительные сведения см. в разделе Часто задаваемые вопросы и известные проблемы.

    New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
    
  2. Извлеките свойства виртуальной машины с помощью командлета Get-AzVM. Затем, чтобы задать управляемое удостоверение, назначаемое пользователем, для виртуальной машины Azure, используйте параметры -IdentityType и -IdentityID в командлете Update-AzVM. Для параметра -IdentityId следует использовать значение Id из предыдущего шага. Замените <VM NAME>, <SUBSCRIPTION ID>, <RESROURCE GROUP> и <USER ASSIGNED IDENTITY NAME> собственными значениями.

    Предупреждение

    Чтобы сохранить ранее назначенные пользователем управляемые удостоверения, предназначенные для виртуальной машины, запросите свойство Identity объекта VM (например, $vm.Identity). Если какие-либо назначенные пользователем управляемые удостоверения возвращаются, включите их в следующую команду вместе с новым удостоверением, которое необходимо назначить виртуальной машине.

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

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

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

Если у виртуальной машины несколько управляемых удостоверений, назначаемых пользователем, с помощью приведенных ниже команд можно удалить все эти удостоверения, кроме последнего. Не забудьте заменить значения параметров <RESOURCE GROUP> и <VM NAME> собственными. <USER ASSIGNED IDENTITY NAME> — это имя управляемого удостоверения, назначаемого пользователем, которое следует оставить в виртуальной машине. Эти сведения можно обнаружить с помощью запроса для поиска Identity свойства объекта виртуальной машины. Например, $vm.Identity:

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

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

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

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

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

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