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

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

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

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

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

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

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

  • Если вы не работали с управляемыми удостоверениями для ресурсов Azure, см. статью Что такое управляемые удостоверения для ресурсов Azure. Сведения об удостоверениях, назначаемых системой и назначаемых пользователем, см. в разделе Типы управляемых удостоверений.

  • Для выполнения операций управления, описанных в этой статье, учетной записи требуются следующие назначения управления доступом на основе ролей Azure:

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

    • Роль Участник управляемого удостоверения: для создания управляемого удостоверения, назначаемого пользователем.

    • Роль Оператор управляемого удостоверения: для назначения и удаления управляемого удостоверения, назначаемого пользователем, в масштабируемом наборе виртуальных машин.

    Примечание.

    Дополнительные назначения ролей каталога Microsoft Entra не требуются.

  • Используйте среду 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

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

  1. Чтобы сохранить и развернуть масштабируемый набор виртуальных машин и связанные с ним ресурсы, создайте группу ресурсов с помощью команды az group create. Если вы уже создали группу ресурсов, которую можно использовать, этот шаг можно пропустить:

    az group create --name myResourceGroup --location westus
    
  2. Создание масштабируемого набора виртуальных машин. В приведенном ниже примере создается масштабируемый набор виртуальных машин myVMSS с управляемым удостоверением, назначаемым системой, в соответствии с запросом параметра --assign-identity с указанными --role и --scope. В параметрах --admin-username и --admin-password определяются имя и пароль учетной записи администратора для входа в виртуальную машину. Подставьте соответствующие значения для своей среды:

    az vmss create --resource-group myResourceGroup --name myVMSS --image win2016datacenter --upgrade-policy-mode automatic --custom-data cloud-init.txt --admin-username azureuser --admin-password myPassword12 --assign-identity --generate-ssh-keys --role contributor --scope mySubscription
    

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

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

az vmss identity assign -g myResourceGroup -n myVMSS

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

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

az vmss update -n myVM -g myResourceGroup --set identity.type='UserAssigned' 

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

Примечание.

В значении none учитывается регистр. Оно должно содержать строчные буквы.

az vmss update -n myVM -g myResourceGroup --set identity.type="none"

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

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

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

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

  1. Если вы уже создали группу ресурсов, которую можно использовать, этот шаг можно пропустить. Создайте группу ресурсов для хранения и развертывания управляемого удостоверения, назначаемого пользователем, используя команду az group create. Не забудьте заменить значения параметров <RESOURCE GROUP> и <LOCATION> собственными. :

    az group create --name <RESOURCE GROUP> --location <LOCATION>
    
  2. Создайте управляемое удостоверение, назначаемое пользователем, с помощью команды az identity create. Параметр -g указывает группу ресурсов, в которой создается управляемое удостоверение, назначаемое пользователем, а параметр -n — его имя. Не забудьте заменить значения параметров <RESOURCE GROUP> и <USER ASSIGNED IDENTITY NAME> собственными:

    Внимание

    При создании управляемых удостоверений, назначаемых пользователем, имя должно начинаться с буквы или числа, а также может включать сочетание буквенно-цифровых символов, дефисов (-) и символов подчеркивания (_). Для корректной работы назначения для виртуальной машины или масштабируемого набора виртуальных машин имя должно содержать не более 24 символов. Дополнительные сведения см. в разделе Часто задаваемые вопросы и известные проблемы.

    az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
    

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

    {
         "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
         "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=73444643-8088-4d70-9532-c3a0fdc190fz",
         "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
         "location": "westcentralus",
         "name": "<USER ASSIGNED IDENTITY NAME>",
         "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
         "resourceGroup": "<RESOURCE GROUP>",
         "tags": {},
         "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
         "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  3. Создание масштабируемого набора виртуальных машин. В приведенном ниже примере создается масштабируемый набор виртуальных машин, связанный с новым управляемым удостоверением, назначаемым пользователем, в соответствии с параметром --assign-identity с указанными --role и --scope. Обязательно замените значения параметров <RESOURCE GROUP>, <VMSS NAME>, <USER NAME>, <PASSWORD>, <USER ASSIGNED IDENTITY>, <ROLE> и <SUBSCRIPTION> собственными.

    az vmss create --resource-group <RESOURCE GROUP> --name <VMSS NAME> --image <SKU Linux Image> --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY> --role <ROLE> --scope <SUBSCRIPTION>
    

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

  1. Создайте управляемое удостоверение, назначаемое пользователем, с помощью команды az identity create. Параметр -g указывает группу ресурсов, в которой создается управляемое удостоверение, назначаемое пользователем, а параметр -n — его имя. Не забудьте заменить значения параметров <RESOURCE GROUP> и <USER ASSIGNED IDENTITY NAME> собственными:

    az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
    

    Ответ содержит подробные сведения о созданном управляемом удостоверении, назначаемом пользователем, как показано ниже.

    {
         "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
         "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY >/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
         "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY>",
         "location": "westcentralus",
         "name": "<USER ASSIGNED IDENTITY>",
         "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
         "resourceGroup": "<RESOURCE GROUP>",
         "tags": {},
         "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
         "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  2. Присвоение управляемого удостоверения, назначаемого пользователем, для масштабируемого набора виртуальных машин. Не забудьте заменить значения параметров <RESOURCE GROUP> и <VIRTUAL MACHINE SCALE SET NAME> собственными. <USER ASSIGNED IDENTITY> — свойство ресурса name удостоверения, назначаемого пользователем, созданное на предыдущем шаге.

    az vmss identity assign -g <RESOURCE GROUP> -n <VIRTUAL MACHINE SCALE SET NAME> --identities <USER ASSIGNED IDENTITY>
    

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

Чтобы удалить управляемое удостоверение, назначаемое пользователем, из масштабируемого набора виртуальных машин, используйте az vmss identity remove. Если это единственное назначаемое пользователем управляемое удостоверение, назначенное масштабируемой группе виртуальных машин, UserAssigned удаляется из значения типа удостоверения. Не забудьте заменить значения параметров <RESOURCE GROUP> и <VIRTUAL MACHINE SCALE SET NAME> собственными. Это <USER ASSIGNED IDENTITY> свойство управляемого удостоверения, назначаемое пользователем, которое можно найти в разделе удостоверений name масштабируемого набора виртуальных машин с помощью az vmss identity show:

az vmss identity remove -g <RESOURCE GROUP> -n <VIRTUAL MACHINE SCALE SET NAME> --identities <USER ASSIGNED IDENTITY>

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

Примечание.

В значении none учитывается регистр. Оно должно содержать строчные буквы.

az vmss update -n myVMSS -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null

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

az vmss update -n myVMSS -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null 

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