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