Настройка управляемых удостоверений на виртуальных машинах Azure
Управляемые удостоверения для ресурсов Azure — это функция идентификатора Microsoft Entra. Каждая служба Azure, которая поддерживает управляемые удостоверения для ресурсов Azure, используется в соответствии с собственной временной шкалой. Прежде чем начать работу, обязательно проверьте состояние доступности управляемых удостоверений для своего ресурса и ознакомьтесь с известными проблемами.
Управляемые удостоверения для ресурсов Azure предоставляют службам Azure автоматически управляемое удостоверение, которое хранится в Microsoft Entra ID. Это удостоверение можно использовать для проверки подлинности в любой службе, которая поддерживает аутентификацию Microsoft Entra, без использования учетных данных в коде.
Сведения об определении и деталях Политика Azure см. в разделе "Использование Политика Azure для назначения управляемых удостоверений (предварительная версия)".
Из этой статьи вы узнаете, как включать и отключать управляемые удостоверения, назначаемые пользователем и назначаемые системой, для виртуальной машины Azure с помощью портала Azure.
Необходимые компоненты
- Если вы не работали с управляемыми удостоверениями для ресурсов Azure, изучите общие сведения.
- Если у вас нет учетной записи Azure, зарегистрируйтесь для получения бесплатной пробной учетной записи, прежде чем продолжать.
Управляемое удостоверение, назначаемое системой
В этом разделе вы узнаете, как включить и отключить управляемое удостоверение, назначаемое системой, для виртуальной машины с помощью портала Azure.
Включение управляемого удостоверения, назначаемого системой, во время создания виртуальной машины
Чтобы включить назначаемое системой управляемое удостоверение на виртуальной машине во время ее создания, вашей учетной записи должна быть назначена роль Участника виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
- На вкладке Управление в разделе Удостоверение переключите параметр Управляемое удостоверение службы в состояние Включено.
Сведения о создании виртуальной машины см. в следующих кратких руководствах:
- Создание виртуальной машины Windows с помощью портала Azure
- Создание виртуальной машины Linux с помощью портала Azure
Включение управляемого удостоверения, назначаемого системой, для имеющейся виртуальной машины
Совет
Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.
Чтобы включить назначаемое системой управляемое удостоверение на виртуальной машине, которая была подготовлена без него, вашей учетной записи должна быть назначена роль Участника виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
Войдите на портал Azure с помощью учетной записи, связанной с подпиской Azure, которая содержит виртуальную машину.
Перейдите к нужной виртуальной машине и выберите Удостоверение.
На вкладке Назначено системой в области Состояние нажмите кнопку Вкл., а затем — Сохранить.
Удаление управляемого удостоверения, назначаемого системой, из виртуальной машины
Чтобы удалить назначаемое системой управляемое удостоверение на виртуальной машине, вашей учетной записи должна быть назначена роль Участника виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
При наличии виртуальной машины, которой больше не требуется управляемое удостоверение, назначаемое системой, сделайте следующее.
Войдите на портал Azure с помощью учетной записи, связанной с подпиской Azure, которая содержит виртуальную машину.
Перейдите к нужной виртуальной машине и выберите Удостоверение.
На вкладке Назначено системой в области Состояние нажмите кнопку Выкл., а затем — Сохранить.
Управляемое удостоверение, назначаемое пользователем
В этом разделе вы узнаете, как добавить и удалить управляемое удостоверение, назначаемое пользователем, для виртуальной машины с помощью портала Azure.
Добавление удостоверения, назначаемого пользователем, во время создания виртуальной машины
Чтобы присвоить назначаемое пользователем удостоверение виртуальной машине, вашей учетной записи должны быть назначены роли Участник виртуальных машин и Оператор управляемого удостоверения. Другие назначения ролей каталога Microsoft Entra не требуются.
Сейчас портал Azure не поддерживает задание управляемого удостоверения, назначаемого пользователем, во время создания виртуальной машины. Вместо этого ознакомьтесь с одним из приведенных ниже кратких руководств по созданию виртуальной машины, а затем перейдите к следующему разделу со сведениями о назначении виртуальной машине управляемого удостоверения, назначаемого пользователем.
- Создание виртуальной машины Windows с помощью портала Azure
- Создание виртуальной машины Linux с помощью портала Azure
Задание управляемого удостоверения, назначаемого пользователем, для имеющейся виртуальной машины
Чтобы присвоить назначаемое пользователем удостоверение виртуальной машине, вашей учетной записи должны быть назначены роли Участник виртуальных машин и Оператор управляемого удостоверения. Другие назначения ролей каталога Microsoft Entra не требуются.
Войдите на портал Azure с помощью учетной записи, связанной с подпиской Azure, которая содержит виртуальную машину.
Перейдите к нужной виртуальной машине и выберите Удостоверение, Назначено пользователем, а затем — + Добавить.
Выберите удостоверение, назначаемое пользователем, которое нужно добавить в виртуальную машину, а затем нажмите кнопку Добавить.
Удаление управляемого удостоверения, назначаемого пользователем, из виртуальной машины
Чтобы удалить назначаемое пользователем удостоверение на виртуальной машине, вашей учетной записи должна быть назначена роль Участника виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
Войдите на портал Azure с помощью учетной записи, связанной с подпиской Azure, которая содержит виртуальную машину.
Перейдите к нужной виртуальной машине и выберите удостоверение, назначаемое пользователем, имя управляемого удостоверения, назначаемого пользователем, и нажмите кнопку "Удалить" (нажмите кнопку "Да" в области подтверждения).
Следующие шаги
- С помощью портала Azure предоставьте управляемому удостоверению виртуальной машины Azure доступ к другому ресурсу Azure.
В этой статье вы узнаете, как с помощью Azure CLI выполнять приведенные ниже операции с управляемыми удостоверениями для ресурсов Azure на виртуальной машине Azure.
- Включение и отключение управляемого удостоверения, назначаемого системой, на виртуальной машине Azure
- Добавление и удаление управляемого удостоверения, назначаемого пользователем, в виртуальной машине Azure
Если у вас нет учетной записи Azure, зарегистрируйтесь для получения бесплатной пробной учетной записи, прежде чем продолжать.
Необходимые компоненты
- Если вы не работали с управляемыми удостоверениями для ресурсов Azure, см. статью Что такое управляемые удостоверения для ресурсов Azure. Сведения об удостоверениях, назначаемых системой и назначаемых пользователем, см. в разделе Типы управляемых удостоверений.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Управляемое удостоверение, назначаемое системой
В этом разделе вы узнаете, как включить и отключить управляемое удостоверение, назначаемое системой, на виртуальной машине Azure с помощью Azure CLI.
Включение управляемого удостоверения, назначаемого системой, во время создания виртуальной машины Azure
Чтобы создать виртуальную машину Azure с включенным управляемым удостоверением, назначаемым системой, вашей учетной записи должна быть назначена роль Участник виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
Создайте группу ресурсов с помощью параметра az group create, чтобы сохранить и развернуть виртуальную машину и связанные с ней ресурсы. Если вы уже создали группу ресурсов, которую можно использовать, этот шаг можно пропустить:
az group create --name myResourceGroup --location westus
Создайте виртуальную машину, выполнив команду az vm create. В приведенном ниже примере создается виртуальная машина myVM с управляемым удостоверением, назначаемым системой, в соответствии с параметром
--assign-identity
с указанными--role
и--scope
. В параметрах--admin-username
и--admin-password
определяются имя и пароль учетной записи администратора для входа в виртуальную машину. Подставьте соответствующие значения для своей среды:az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --role contributor --scope mySubscription --admin-username azureuser --admin-password myPassword12
Включение управляемого удостоверения, назначаемого системой, для имеющейся виртуальной машины Azure
Чтобы включить назначаемое системой управляемое удостоверение на виртуальной машине, вашей учетной записи должна быть назначена роль Участника виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
Если вы используете Azure CLI в локальной консоли, сначала выполните вход в Azure с помощью команды az login. Используйте учетную запись, связанную с подпиской Azure, которая содержит виртуальную машину.
az login
Чтобы включить удостоверение, назначаемое системой на имеющейся виртуальной машине, используйте команду az vm identity assign с параметром
identity assign
.az vm identity assign -g myResourceGroup -n myVm
Отключение удостоверения, назначаемого системой, на виртуальной машине Azure
Чтобы отключить назначаемое системой управляемое удостоверение на виртуальной машине, вашей учетной записи должна быть назначена роль Участник виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
Если на виртуальной машине больше не требуется удостоверение, назначаемое системой, но по-прежнему требуются удостоверения, назначаемые пользователем, используйте следующую команду.
az vm update -n myVM -g myResourceGroup --set identity.type='UserAssigned'
Если имеется виртуальная машина, для которой не требуется удостоверение, назначаемое системой, и на которой нет удостоверений, назначаемых пользователем, используйте следующие команды.
Примечание.
В значении none
учитывается регистр. Оно должно содержать строчные буквы.
az vm update -n myVM -g myResourceGroup --set identity.type="none"
Управляемое удостоверение, назначаемое пользователем
В этом разделе вы узнаете, как добавить и удалить управляемое удостоверение, назначаемое пользователем, для виртуальной машины Azure с помощью Azure CLI. Вы можете создать управляемое удостоверение, назначаемое пользователем, в группе ресурсов, отличающейся от той, в которую включена виртуальная машина. Чтобы назначить его виртуальной машине, используйте URL-адрес управляемого удостоверения. Например:
--identities "/subscriptions/<SUBID>/resourcegroups/<RESROURCEGROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_ASSIGNED_ID_NAME>"
Задание управляемого удостоверения, назначаемого пользователем, во время создания виртуальной машины Azure
Чтобы назначить назначаемое пользователем удостоверение виртуальной машине во время ее создания, вашей учетной записи должны быть назначены роли Участника виртуальных машин и Оператора управляемого удостоверения. Другие назначения ролей каталога Microsoft Entra не требуются.
Если вы уже создали группу ресурсов, которую можно использовать, этот шаг можно пропустить. Создайте группу ресурсов для хранения и развертывания управляемого удостоверения, назначаемого пользователем, используя команду az group create. Не забудьте заменить значения параметров
<RESOURCE GROUP>
и<LOCATION>
собственными. :az group create --name <RESOURCE GROUP> --location <LOCATION>
Создайте управляемое удостоверение, назначаемое пользователем, с помощью команды az identity create. Параметр
-g
указывает группу ресурсов, в которой создается управляемое удостоверение, назначаемое пользователем, а параметр-n
— его имя.Внимание
При создании управляемых удостоверений, назначаемых пользователем, имя должно начинаться с буквы или числа, а также может включать сочетание буквенно-цифровых символов, дефисов (-) и символов подчеркивания (_). Для корректной работы назначения для виртуальной машины или масштабируемого набора виртуальных машин имя должно содержать не более 24 символов. Дополнительные сведения см. в разделе Часто задаваемые вопросы и известные проблемы.
az identity create -g myResourceGroup -n myUserAssignedIdentity
Ответ содержит подробные сведения о созданном управляемом удостоверении, назначаемом пользователем, как показано ниже. Значение идентификатора ресурса, присвоенное управляемому удостоверению, назначаемому пользователем, используется на следующем шаге.
{ "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY NAME>", "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Создайте виртуальную машину, выполнив команду az vm create. В приведенном ниже примере создается виртуальная машина, связанная с новым удостоверением, назначаемым пользователем, в соответствии с параметром
--assign-identity
с указанными--role
и--scope
. Обязательно замените значения параметров<RESOURCE GROUP>
,<VM NAME>
,<USER NAME>
,<PASSWORD>
,<USER ASSIGNED IDENTITY NAME>
,<ROLE>
и<SUBSCRIPTION>
собственными.az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image <SKU linux image> --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY NAME> --role <ROLE> --scope <SUBSCRIPTION>
Задание управляемого удостоверения, назначаемого пользователем, для имеющейся виртуальной машины Azure
Чтобы присвоить назначаемое пользователем удостоверение виртуальной машине, вашей учетной записи должны быть назначены роли Участник виртуальных машин и Оператор управляемого удостоверения. Другие назначения ролей каталога Microsoft Entra не требуются.
Создайте пользовательское удостоверение с помощью команды az identity create. Параметр
-g
указывает группу ресурсов, в которой создается удостоверение, назначаемое пользователем, а параметр-n
— его имя. Не забудьте заменить значения параметров<RESOURCE GROUP>
и<USER ASSIGNED IDENTITY NAME>
собственными:Внимание
Создание управляемых удостоверений, назначаемых пользователем, с помощью специальных символов (то есть подчеркивания) в имени в настоящее время не поддерживается. Используйте буквенно-цифровые символы. Загляните сюда позже, чтобы проверить наличие новой информации. Дополнительные сведения см. в разделе Часто задаваемые вопросы и известные проблемы.
az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
Ответ содержит подробные сведения о созданном управляемом удостоверении, назначаемом пользователем, как показано ниже.
{ "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444", "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>", "location": "westcentralus", "name": "<USER ASSIGNED IDENTITY NAME>", "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "resourceGroup": "<RESOURCE GROUP>", "tags": {}, "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Задайте удостоверение, назначаемое пользователем, для виртуальной машины с помощью команды az vm identity assign. Не забудьте заменить значения параметров
<RESOURCE GROUP>
и<VM NAME>
собственными.<USER ASSIGNED IDENTITY NAME>
— это свойство ресурсаname
управляемого удостоверения, назначаемого пользователем, созданного на предыдущем шаге. Вы можете создать управляемое удостоверение, назначаемое пользователем, в группе ресурсов, отличающейся от той, в которую включена виртуальная машина. Используйте URL-адрес управляемого удостоверения.az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
Удаление управляемого удостоверения, назначаемого пользователем, из виртуальной машины Azure
Чтобы удалить назначаемое пользователем удостоверение на виртуальной машине, вашей учетной записи должна быть назначена роль Участник виртуальных машин.
Если это единственное управляемое удостоверение, назначаемое пользователем, заданное для виртуальной машины, то UserAssigned
будет удалено из значения типа удостоверения. Не забудьте заменить значения параметров <RESOURCE GROUP>
и <VM NAME>
собственными. <USER ASSIGNED IDENTITY>
будет свойством name
удостоверения, назначаемого пользователем, которое можно найти в разделе удостоверений виртуальной машины, используя az vm identity show
.
az vm identity remove -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
Если в виртуальной машине нет управляемого удостоверения, назначаемого системой, и вы хотите удалить из нее все управляемые удостоверения, назначаемые пользователем, используйте следующую команду.
Примечание.
В значении none
учитывается регистр. Оно должно содержать строчные буквы.
az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null
Если у виртуальной машины есть как удостоверение, назначаемое системой, так и удостоверения, назначаемые пользователем, вы можете удалить все удостоверения, назначаемые пользователем, переключившись на использование только удостоверения, назначаемого системой. Используйте следующую команду:
az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null
Следующие шаги
- Обзор управляемых удостоверений для ресурсов Azure.
- Полные краткие руководства по созданию виртуальных машин Azure см. в следующих руководствах.
В этой статье вы узнаете, как с помощью PowerShell выполнять приведенные ниже операции с управляемыми удостоверениями для ресурсов Azure на виртуальной машине Azure.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Необходимые компоненты
- Если вы не работали с управляемыми удостоверениями для ресурсов Azure, изучите общие сведения. Обратите внимание на различие между управляемыми удостоверениями, назначаемыми системой и назначаемыми пользователями.
- Если у вас нет учетной записи Azure, зарегистрируйтесь для получения бесплатной пробной учетной записи, прежде чем продолжать.
- Чтобы запустить примеры скриптов, у вас есть два варианта:
- Используйте службу Azure Cloud Shell, которую можно открыть с помощью кнопки Попробовать в правом верхнем углу блоков кода.
- Выполните скрипты локально, установив последнюю версию Azure PowerShell, а затем войдите в Azure с помощью команды
Connect-AzAccount
.
Управляемое удостоверение, назначаемое системой
В этом разделе описано, как включить и отключить управляемое удостоверение, назначаемое системой, с помощью Azure PowerShell.
Включение управляемого удостоверения, назначаемого системой, во время создания виртуальной машины Azure
Чтобы создать виртуальную машину Azure с включенным управляемым удостоверением, назначаемым системой, вашей учетной записи должна быть назначена роль Участник виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
Используя одно из кратких руководств ниже, выполните действия только в нужных разделах ("Вход в Azure", "Создание группы ресурсов", "Создание группы сети", "Создание виртуальной машины").
При выполнении действий, описанных в разделе о создании виртуальной машины, не забудьте внести небольшие изменения в синтаксис командлета New-AzVMConfig. Чтобы подготовить виртуальную машину с включенным удостоверением, назначаемым системой, добавьте параметр
-IdentityType SystemAssigned
, как показано ниже.$vmConfig = New-AzVMConfig -VMName myVM -IdentityType SystemAssigned ...
Включение управляемого удостоверения, назначаемого системой, для имеющейся виртуальной машины Azure
Чтобы включить назначаемое системой управляемое удостоверение на виртуальной машине, которая была подготовлена без него, вашей учетной записи должна быть назначена роль Участника виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
Извлеките свойства виртуальной машины с помощью командлета
Get-AzVM
. Затем, чтобы включить управляемое удостоверение, назначаемое системой, используйте параметр-IdentityType
в командлете Update-AzVM.$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM Update-AzVM -ResourceGroupName myResourceGroup -VM $vm -IdentityType SystemAssigned
Добавление назначаемого системой удостоверения виртуальной машины в группу
После включения назначенного системной удостоверения на виртуальной машине, вы можете добавить его в группу. Следующая процедура добавляет назначенное системой удостоверение в группу.
Получите и запишите
ObjectID
(как указано в полеId
возвращаемых значений) субъекта-службы виртуальной машины.Get-AzADServicePrincipal -displayname "myVM"
Получите и запишите
ObjectID
(как указано в полеId
возвращаемых значений) группы.Get-AzADGroup -searchstring "myGroup"
Добавление субъекта-службы виртуальной машины в группу.
New-MgGroupMember -GroupId "<Id of group>" -DirectoryObjectId "<Id of VM service principal>"
Отключение управляемого удостоверения, назначаемого системой, на виртуальной машине Azure
Чтобы отключить назначаемое системой управляемое удостоверение на виртуальной машине, вашей учетной записи должна быть назначена роль Участник виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
Если на виртуальной машине больше не требуется управляемое удостоверение, назначаемое системой, но по-прежнему требуются управляемые удостоверения, назначаемые пользователем, используйте следующий командлет.
Получите свойства виртуальной машины с помощью командлета
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 не требуются.
Используя одно из кратких руководств ниже, выполните действия только в нужных разделах ("Вход в 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 не требуются.
Создайте управляемое удостоверение, назначаемое пользователем, с помощью командлета New-AzUserAssignedIdentity. Обратите внимание на
Id
в выходных данных. Эта информация потребуется вам на следующем шаге.Внимание
При создании управляемых удостоверений, назначаемых пользователем, можно использовать только буквы, цифры, знак подчеркивания и дефис (0–9, a–z, A–Z, _ или -). Кроме того, чтобы назначение виртуальной машине или масштабируемому набору виртуальных машин производилось правильно, длина имени должна составлять 3–128 символов. Дополнительные сведения см. в разделе Часто задаваемые вопросы и известные проблемы.
New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
Извлеките свойства виртуальной машины с помощью командлета
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> # Get the list of existing identity IDs and then append to it $identityIds = $vm.Identity.UserAssignedIdentities.Keys $uid = "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>" $identityIds = $identityIds + $uid # Update the VM with added identity IDs Update-AzVM -ResourceGroupName <RESOURCE GROUP> -VM $vm -IdentityType UserAssigned -IdentityID $uid
Удаление управляемого удостоверения, назначаемого пользователем, из виртуальной машины 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"
Следующие шаги
Ниже приведены комплексные краткие руководства по созданию виртуальных машин Azure:
В этой статье вы узнаете, как с помощью шаблона развертывания 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
.
Следующие шаги
В этой статье вы узнаете, как выполнять приведенные ниже операции с управляемыми удостоверениями для ресурсов Azure на виртуальной машине Azure, используя CURL для выполнения вызовов к конечной точке REST Azure Resource Manager.
- Включение и отключение управляемого удостоверения, назначаемого системой, на виртуальной машине Azure
- Добавление и удаление управляемого удостоверения, назначаемого пользователем, в виртуальной машине Azure
Если у вас нет учетной записи Azure, зарегистрируйтесь для получения бесплатной пробной учетной записи, прежде чем продолжать.
Необходимые компоненты
- Если вы не работали с управляемыми удостоверениями для ресурсов Azure, см. статью Что такое управляемые удостоверения для ресурсов Azure. Сведения об удостоверениях, назначаемых системой и назначаемых пользователем, см. в разделе Типы управляемых удостоверений.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Управляемое удостоверение, назначаемое системой
Этот раздел описывает, как включить и отключить управляемое удостоверение, назначаемое системой, на виртуальной машине Azure, используя CURL для выполнения вызовов к конечной точке REST Azure Resource Manager.
Включение управляемого удостоверения, назначаемого системой, во время создания виртуальной машины Azure
Чтобы создать виртуальную машину Azure с включенным управляемым удостоверением, назначаемым системой, вашей учетной записи должна быть назначена роль Участник виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
Создайте группу ресурсов с помощью параметра az group create, чтобы сохранить и развернуть виртуальную машину и связанные с ней ресурсы. Если вы уже создали группу ресурсов, которую можно использовать, этот шаг можно пропустить:
az group create --name myResourceGroup --location westus
Создайте сетевой интерфейс для виртуальной машины:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Получите маркер доступа носителя, который понадобится в следующем шаге в заголовке авторизации для создания виртуальной машины с удостоверением, назначаемым системой.
az account get-access-token
С помощью Azure Cloud Shell создайте виртуальную машину, используя CURL для вызова конечной точки REST Azure Resource Manager. Приведенный ниже пример создает виртуальную машину myVM с управляемым удостоверением, назначаемым системой, в соответствии со значением
"identity":{"type":"SystemAssigned"}
в тексте запроса. Замените<ACCESS TOKEN>
значением, полученным на предыдущем шаге при запросе маркера доступа носителя, а вместо<SUBSCRIPTION ID>
укажите значение, подходящее для вашей среды.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"SystemAssigned"},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"<SECURE PASSWORD STRING>"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "location":"westus", "name":"myVM", "identity":{ "type":"SystemAssigned" }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
Включение удостоверения, назначаемого системой, на имеющейся виртуальной машине Azure
Чтобы включить назначаемое системой управляемое удостоверение на виртуальной машине, которая была подготовлена без него, вашей учетной записи должна быть назначена роль Участника виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
Получите маркер доступа носителя, который понадобится в следующем шаге в заголовке авторизации для создания виртуальной машины с удостоверением, назначаемым системой.
az account get-access-token
Используйте приведенную ниже команду CURL для вызова конечной точки REST Azure Resource Manager, чтобы включить управляемое удостоверение, назначаемое системой, на виртуальной машине в соответствии со значением
{"identity":{"type":"SystemAssigned"}
в тексте запроса для виртуальной машины myVM. Замените<ACCESS TOKEN>
значением, полученным на предыдущем шаге при запросе маркера доступа носителя, а вместо<SUBSCRIPTION ID>
укажите значение, подходящее для вашей среды.Внимание
Чтобы предотвратить удаление существующих управляемых удостоверений, назначаемых пользователем, для виртуальной машины, нужно получить список этих удостоверений с помощью следующей команды CURL:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
. Если для виртуальной машины заданы управляемые удостоверения, назначаемые пользователем, как указано в значенииidentity
в ответе, перейдите к шагу 3, где описано, как сохранить управляемые удостоверения, назначаемые пользователем, при включении на виртуальной машине управляемого удостоверения, назначаемого системой.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "identity":{ "type":"SystemAssigned" } }
Чтобы включить управляемое удостоверение, назначаемое системой, на виртуальной машине с существующими управляемыми удостоверениями, назначаемыми пользователем, нужно добавить
SystemAssigned
в значениеtype
.Например, если для виртуальной машины назначены управляемые удостоверения, назначаемые пользователем,
ID1
иID2
, и вы хотите добавить для нее управляемое удостоверение, назначаемое системой, используйте приведенный ниже вызов CURL. Замените<ACCESS TOKEN>
и<SUBSCRIPTION ID>
значениями, уместными для вашей среды.API версии
2018-06-01
хранит управляемые удостоверения, назначаемые пользователем, в значенииuserAssignedIdentities
в формате словаря в отличие от значенияidentityIds
в формате массива, используемого в API версии2017-12-01
.API версии 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ }, "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{ } } } }
API версии 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "identity":{ "type":"SystemAssigned, UserAssigned", "identityIds":[ "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1", "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2" ] } }
Отключение управляемого удостоверения, назначаемого системой, на виртуальной машине Azure
Чтобы отключить назначаемое системой управляемое удостоверение на виртуальной машине, вашей учетной записи должна быть назначена роль Участник виртуальных машин. Другие назначения ролей каталога Microsoft Entra не требуются.
Получите маркер доступа носителя, который понадобится в следующем шаге в заголовке авторизации для создания виртуальной машины с удостоверением, назначаемым системой.
az account get-access-token
Измените виртуальную машину, используя CURL для вызова конечной точки REST Azure Resource Manager, чтобы отключить управляемое удостоверение, назначаемое системой. Приведенный ниже пример отключает управляемое удостоверение, назначаемое системой, на виртуальной машине myVM в соответствии со значением
{"identity":{"type":"None"}}
в тексте запроса. Замените<ACCESS TOKEN>
значением, полученным на предыдущем шаге при запросе маркера доступа носителя, а вместо<SUBSCRIPTION ID>
укажите значение, подходящее для вашей среды.Внимание
Чтобы предотвратить удаление существующих управляемых удостоверений, назначаемых пользователем, для виртуальной машины, нужно получить список этих удостоверений с помощью следующей команды CURL:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
. Если для виртуальной машины заданы управляемые удостоверения, назначаемые пользователем, как указано в значенииidentity
в ответе, перейдите к шагу 3, где описано, как сохранить управляемые удостоверения, назначаемые пользователем, при отключении на виртуальной машине управляемого удостоверения, назначаемого системой.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "identity":{ "type":"None" } }
Чтобы удалить управляемое удостоверение, назначаемое системой, из виртуальной машины, в которой есть управляемые удостоверения, назначаемые пользователем, удалите
SystemAssigned
из значения{"identity":{"type:" "}}
, сохранив значениеUserAssigned
и значения словаряuserAssignedIdentities
, если используется API версии 2018-06-01. При использовании API версии 2017-12-01 или более ранних версий сохраните массивidentityIds
.
Управляемое удостоверение, назначаемое пользователем
В этом разделе описывается, как добавить и удалить управляемое удостоверение, назначаемое пользователем, в виртуальной машине Azure, используя CURL для выполнения вызовов к конечной точке REST Azure Resource Manager.
Задание управляемого удостоверения, назначаемого пользователем, во время создания виртуальной машины Azure
Чтобы присвоить назначаемое пользователем удостоверение виртуальной машине, вашей учетной записи должны быть назначены роли Участник виртуальных машин и Оператор управляемого удостоверения. Другие назначения ролей каталога Microsoft Entra не требуются.
Получите маркер доступа носителя, который понадобится в следующем шаге в заголовке авторизации для создания виртуальной машины с удостоверением, назначаемым системой.
az account get-access-token
Создайте сетевой интерфейс для виртуальной машины:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Получите маркер доступа носителя, который понадобится в следующем шаге в заголовке авторизации для создания виртуальной машины с удостоверением, назначаемым системой.
az account get-access-token
Создайте управляемое удостоверение, назначаемое пользователем, как описано в разделе Настройка управляемых удостоверений для ресурсов Azure на виртуальной машине Azure с помощью вызовов REST API.
Создайте виртуальную машину, используя CURL для вызова конечной точки REST Azure Resource Manager. Приведенный ниже пример создает в группе ресурсов myResourceGroup виртуальную машину myVM с управляемым удостоверением, назначаемым пользователем,
ID1
в соответствии со значением"identity":{"type":"UserAssigned"}
в тексте запроса. Замените<ACCESS TOKEN>
значением, полученным на предыдущем шаге при запросе маркера доступа носителя, а вместо<SUBSCRIPTION ID>
укажите значение, подходящее для вашей среды.API версии 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "location":"westus", "name":"myVM", "identity":{ "type":"UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
API версии 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "location":"westus", "name":"myVM", "identity":{ "type":"UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
Задание управляемого удостоверения, назначаемого пользователем, для имеющейся виртуальной машины Azure
Чтобы присвоить назначаемое пользователем удостоверение виртуальной машине, вашей учетной записи должны быть назначены роли Участник виртуальных машин и Оператор управляемого удостоверения. Другие назначения ролей каталога Microsoft Entra не требуются.
Получите маркер доступа носителя, который понадобится в следующем шаге в заголовке авторизации для создания виртуальной машины с удостоверением, назначаемым системой.
az account get-access-token
Создайте управляемое удостоверение, назначаемое пользователем, как описано в разделе Настройка управляемых удостоверений для ресурсов Azure на виртуальной машине Azure с помощью вызовов REST API.
Чтобы предотвратить удаление существующих управляемых удостоверений, назначаемых пользователем или назначаемых системой, для виртуальной машины, нужно получить список назначенных ей типов удостоверений с помощью приведенной ниже команды CURL. Если у вас есть управляемые удостоверения, назначенные масштабируемому набору виртуальных машин, они перечислены в значении
identity
.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Если для виртуальной машины заданы управляемые удостоверения, назначаемые пользователем или назначаемые системой, как указано в значении
identity
в ответе, перейдите к шагу 5, где описано, как сохранить управляемое удостоверение, назначаемое системой, при добавлении в виртуальную машину управляемого удостоверения, назначаемого пользователем.Если для виртуальной машины не заданы какие-либо управляемые удостоверения, назначаемые пользователем, используйте приведенную ниже команду CURL для вызова конечной точки REST Azure Resource Manager, чтобы назначить виртуальной машине первое управляемое удостоверение, назначаемое пользователем.
Следующий пример задает управляемое удостоверение, назначаемое пользователем
ID1
для виртуальной машины myVM в группе ресурсов myResourceGroup. Замените<ACCESS TOKEN>
значением, полученным на предыдущем шаге при запросе маркера доступа носителя, а вместо<SUBSCRIPTION ID>
укажите значение, подходящее для вашей среды.API версии 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "identity":{ "type":"UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ } } } }
API версии 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "identity":{ "type":"userAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Если для виртуальной машины заданы управляемые удостоверения, назначаемые пользователем или назначаемые системой, сделайте следующее.
API версии 2018-06-01
Добавьте управляемое удостоверение, назначаемое пользователем, в значение словаря
userAssignedIdentities
.Например, если для виртуальной машины заданы управляемое удостоверение, назначаемое системой, и управляемое удостоверение, назначаемое пользователем,
ID1
и вы хотите добавить для него управляемое удостоверение, назначаемое пользователем,ID2
, сделайте следующее.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ }, "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{ } } } }
API версии 2017-12-01
При добавлении нового управляемого удостоверения, назначаемого пользователем, сохраните управляемые удостоверения, назначаемые пользователем, которые вы хотите оставить в значении массива
identityIds
.Например, если для виртуальной машины заданы управляемое удостоверение, назначаемое системой, и управляемое удостоверение, назначаемое пользователем,
ID1
и вы хотите добавить для него управляемое удостоверение, назначаемое пользователем,ID2
, сделайте следующее.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "identity":{ "type":"SystemAssigned,UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1", "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2" ] } }
Удаление управляемого удостоверения, назначаемого пользователем, из виртуальной машины Azure
Чтобы удалить назначаемое пользователем удостоверение на виртуальной машине, вашей учетной записи должна быть назначена роль Участник виртуальных машин.
Получите маркер доступа носителя, который понадобится в следующем шаге в заголовке авторизации для создания виртуальной машины с удостоверением, назначаемым системой.
az account get-access-token
Чтобы предотвратить удаление существующих управляемых удостоверений, назначаемых пользователем, которые нужно сохранить для виртуальной машины, или удалить управляемое удостоверение, назначаемое системой, нужно получить список управляемых удостоверений с помощью следующей команды CURL.
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Если у вас есть управляемые удостоверения, назначенные виртуальной машине, они перечислены в значении
identity
в ответе.Например, если для виртуальной машины заданы управляемые удостоверения, назначаемые пользователем,
ID1
иID2
, и вы хотите оставить назначенным толькоID1
, при этом сохранив удостоверение, назначаемое системой, сделайте следующее.API версии 2018-06-01
К управляемому удостоверению, назначаемому пользователем, которое требуется удалить, необходимо добавить
null
.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null } } }
API версии 2017-12-01
В массиве
identityIds
оставьте только те управляемые удостоверения, назначаемые пользователем, которые вы хотите сохранить.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Заголовки запроса
Заголовок запроса Description Content-Type Обязательный. Задайте значение application/json
.Авторизация Обязательный. Задайте допустимый маркер доступа для Bearer
.Текст запроса
{ "identity":{ "type":"SystemAssigned, UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Если у виртуальной машины есть управляемые удостоверения, назначаемые системой и назначаемые пользователем, вы можете удалить все управляемые удостоверения, назначаемые пользователем, переключившись на использование только управляемого удостоверения, назначаемого системой, с помощью следующей команды.
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса | Description |
---|---|
Content-Type | Обязательный. Задайте значение application/json . |
Авторизация | Обязательный. Задайте допустимый маркер доступа для Bearer . |
Текст запроса
{
"identity":{
"type":"SystemAssigned"
}
}
Если ваша виртуальная машина имеет только управляемые удостоверения, назначаемые пользователем, и вы хотите удалить их все, используйте следующую команду.
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Заголовки запроса
Заголовок запроса | Description |
---|---|
Content-Type | Обязательный. Задайте значение application/json . |
Авторизация | Обязательный. Задайте допустимый маркер доступа для Bearer . |
Текст запроса
{
"identity":{
"type":"None"
}
}
Следующие шаги
Сведения о создании и удалении управляемых удостоверений, назначаемых пользователем, а также получении их списка с помощью REST:
В этой статье вы узнаете, как включать и удалять управляемые удостоверения для ресурсов Azure на виртуальной машины Azure с помощью пакета SDK для Azure.
Необходимые компоненты
- См. дополнительные сведения об управляемых удостоверениях для ресурсов Azure. Если у вас нет учетной записи Azure, зарегистрируйтесь для получения бесплатной учетной записи, прежде чем продолжить.
Пакеты SDK для Azure с поддержкой управляемых удостоверений для ресурсов Azure
Благодаря пакетам SDK Azure в Azure реализована поддержка разных платформ программирования. Некоторые из них обновлены для поддержки управляемых удостоверений для ресурсов Azure. Кроме того, для них предоставляются соответствующие примеры использования. Этот список обновляется по мере добавления поддержки других платформ:
Следующие шаги
- Сведения о том, как использовать портал Azure, PowerShell, интерфейс командной строки и шаблоны ресурсов, приведены в соответствующих статьях раздела Configure Identity for an Azure VM (Настройка удостоверения для виртуальной машины Azure).