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

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

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

В этой статье вы узнаете, как с помощью Azure CLI выполнять приведенные ниже операции с управляемыми удостоверениями для ресурсов 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 не требуются.

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

    az group create --name myResourceGroup --location westus
    
  2. Создайте виртуальную машину, выполнив команду 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 не требуются.

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

    az login
    
  2. Чтобы включить удостоверение, назначаемое системой на имеющейся виртуальной машине, используйте команду 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 не требуются.

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

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

    Важно!

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

    az identity create -g myResourceGroup -n myUserAssignedIdentity
    

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

    {
        "clientId": "73444643-8088-4d70-9532-c3a0fdc190fz",
        "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/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. Создайте виртуальную машину, выполнив команду 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 не требуются.

  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 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"    
    }
    
  2. Задайте удостоверение, назначаемое пользователем, для виртуальной машины с помощью команды 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 

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