Настройка управляемых удостоверений для ресурсов Azure в масштабируемом наборе виртуальных машин Azure с помощью шаблона
Управляемые удостоверения для ресурсов Azure — это функция идентификатора Microsoft Entra. Каждая служба Azure, которая поддерживает управляемые удостоверения для ресурсов Azure, используется в соответствии с собственной временной шкалой. Прежде чем начать работу, обязательно проверьте состояние доступности управляемых удостоверений для своего ресурса и ознакомьтесь с известными проблемами.
Управляемые удостоверения для ресурсов Azure предоставляют службам Azure автоматически управляемое удостоверение, которое хранится в Microsoft Entra ID. Это удостоверение можно использовать для проверки подлинности в любой службе, которая поддерживает аутентификацию Microsoft Entra, без использования учетных данных в коде.
В этой статье вы узнаете, как выполнять приведенные ниже операции с управляемыми удостоверениями для ресурсов Azure в масштабируемом наборе виртуальных машин Azure с помощью шаблона развертывания Azure Resource Manager.
- Включение и отключение управляемого удостоверения, назначаемого системой, в масштабируемом наборе виртуальных машин Azure
- Добавление и удаление управляемого удостоверения, назначаемого пользователем, в масштабируемом наборе виртуальных машин Azure
Необходимые компоненты
Если вы не работали с управляемыми удостоверениями для ресурсов Azure, изучите общие сведения. Обратите внимание на различие между управляемыми удостоверениями, назначаемыми системой и назначаемыми пользователями.
Если у вас нет учетной записи Azure, зарегистрируйтесь для получения бесплатной пробной учетной записи, прежде чем продолжать.
Для выполнения операций управления, описанных в этой статье, учетной записи требуются следующие назначения управления доступом на основе ролей Azure:
Примечание.
Дополнительные назначения ролей каталога Microsoft Entra не требуются.
- Участник виртуальных машин для создания масштабируемого набора виртуальных машин, а также для включения и удаления управляемого удостоверения, назначаемого системой, и (или) управляемого удостоверения, назначаемого пользователем, из масштабируемого набора виртуальных машин.
- Роль Участник управляемого удостоверения: для создания управляемого удостоверения, назначаемого пользователем.
- Роль Оператор управляемого удостоверения: для назначения и удаления управляемого удостоверения, назначаемого пользователем, в масштабируемом наборе виртуальных машин.
Шаблоны диспетчера ресурсов Azure
Так же как портал Azure и сценарии, шаблоны Azure Resource Manager предоставляют возможность развертывать новые или измененные ресурсы, определенные в группе ресурсов Azure. Доступно несколько способов редактирования и развертывания шаблона, локально и на портале, в том числе:
- Применение пользовательского шаблона из Azure Marketplace, что позволяет создать шаблон с нуля или взять за основу существующий общий шаблон или шаблон быстрого запуска.
- Наследование от имеющейся группы ресурсов путем экспорта шаблона из исходного развертывания или от текущего состояния развертывания.
- Использование локального редактора JSON (например, VS Code), а затем передача и развертывание с помощью PowerShell или интерфейса командной строки.
- Использование проекта группы ресурсов Azure Visual Studio для создания и развертывания шаблона.
Независимо оттого, какой вариант выбран, во время первоначального развертывания и повторного развертывания в шаблоне используется одинаковый синтаксис. Включение управляемых удостоверений для ресурсов Azure на новой или существующей виртуальной машине выполняется таким же образом. Коме того, по умолчанию Azure Resource Manager выполняет добавочное обновление для развертываний.
Управляемое удостоверение, назначаемое системой
В этом разделе вы узнаете, как включить и отключить управляемое удостоверение, назначаемое системой, с помощью шаблона Azure Resource Manager.
Включение управляемого удостоверения, назначаемого системой, для создаваемого или существующего масштабируемого набора виртуальных машин
После входа в Azure локально или через портал Azure используйте учетную запись, связанную с подпиской Azure, которая содержит масштабируемый набор виртуальных машин.
Чтобы включить управляемое удостоверение, назначаемое системой, загрузите шаблон в редактор, найдите интересующий ресурс
Microsoft.Compute/virtualMachinesScaleSets
в разделе ресурсов и добавьте свойствоidentity
на том же уровне, что и свойство"type": "Microsoft.Compute/virtualMachinesScaleSets"
. Используйте следующий синтаксис:"identity": { "type": "SystemAssigned" }
Когда все будет готово, необходимо добавить следующие разделы в раздел ресурсов шаблона, который должен выглядеть так, как показано в приведенном ниже примере.
"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
Если для масштабируемого набора виртуальных машин управляемое удостоверение, назначаемое системой, больше не требуется, сделайте следующее.
После входа в Azure локально или через портал Azure используйте учетную запись, связанную с подпиской Azure, которая содержит масштабируемый набор виртуальных машин.
Загрузив шаблон в редактор, найдите нужный ресурс
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, обратитесь к разделу Создание управляемого удостоверения, назначаемого пользователем.
Присвоение управляемого удостоверения, назначаемого пользователем, для масштабируемого набора виртуальных машин
Чтобы задать управлемое удостоверение, назначаемое пользователем, для масштабируемого набора виртуальных машин, в элемент
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>'))]" ] } }
По завершении шаблон должен выглядеть следующим образом.
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
Если для масштабируемого набора виртуальных машин больше не требуется управляемое удостоверение, назначаемое пользователем, сделайте следующее.
После входа в Azure локально или через портал Azure используйте учетную запись, связанную с подпиской Azure, которая содержит масштабируемый набор виртуальных машин.
Загрузив шаблон в редактор, найдите нужный ресурс
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
.