Использование назначаемого системой управляемого удостоверения на виртуальной машине Windows для доступа к Resource Manager

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

В этом руководстве показано, как получить доступ к API Azure Resource Manager с помощью виртуальной машины Windows с включенным управляемым удостоверением, назначаемым системой. Управляемые удостоверения для ресурсов Azure автоматически управляются Azure и позволяют выполнять проверку подлинности в службах, поддерживающих проверку подлинности Microsoft Entra, без необходимости вставлять учетные данные в код. Узнайте следующие темы:

  • Предоставление виртуальной машине доступа к группе ресурсов в Azure Resource Manager.
  • Получение маркера доступа с помощью удостоверения виртуальной машины и вызов Azure Resource Manager с его помощью.

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

Включить

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

Screenshot shows the System assigned tab for a virtual machine where you can turn on the System assigned status.

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

  1. Войдите на портал Azure

  2. Создайте виртуальную машину с включенным удостоверением, назначенным системой.

Предоставьте виртуальной машине доступ к группе ресурсов в Resource Manager.

Совет

Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.

С помощью управляемых удостоверений для ресурсов Azure приложение может получить маркеры доступа для проверки подлинности в ресурсах, поддерживающих проверку подлинности Microsoft Entra. API Azure Resource Manager поддерживает проверку подлинности Microsoft Entra. В этом случае группа ресурсов предоставляет этому виртуальной машине доступ к ресурсу в Azure Resource Manager. Мы назначаем роль читателя управляемому удостоверению в область группы ресурсов.

  1. Войдите в портал Azure с учетной записью администратора.
  2. Перейдите на вкладку Группы ресурсов.
  3. Выберите группу ресурсов, к которой нужно предоставить доступ к управляемому удостоверению виртуальной машины.
  4. На левой панели выберите элемент управления доступом (IAM).
  5. Выберите Добавить, затем выберите Добавить назначение ролей.
  6. На вкладке "Роль" выберите "Читатель". Эта роль позволяет просматривать все ресурсы, но не позволяет вносить изменения.
  7. На вкладке "Члены" выберите "Назначить доступ" и выберите "Управляемое удостоверение". Затем нажмите кнопку +Выбрать участников.
  8. Убедитесь, что в раскрывающемся списке подписки указана соответствующая подписка . В поле Группа ресурсов выберите Все группы ресурсов.
  9. В раскрывающемся списке "Управление удостоверениями " выберите виртуальную машину.
  10. Наконец, в раскрывающемся списке выберите виртуальную машину Windows и нажмите кнопку "Сохранить".

Получение маркера доступа с использованием назначаемого системой управляемого удостоверения виртуальной машины и вызов Azure Resource Manager с помощью этого маркера

В этой части необходимо использовать PowerShell . Если среда PowerShell не установлена, загрузите ее отсюда.

  1. На портале перейдите к разделу Виртуальные машины, выберите свою виртуальную машину Windows и в разделе Обзор щелкните Подключить.

  2. Введите имя пользователя и пароль, добавленные при создании виртуальной машины Windows.

  3. Теперь, когда создано подключение к удаленному рабочему столу с виртуальной машиной, откройте PowerShell в удаленном сеансе.

  4. С помощью командлета Invoke-WebRequest выполните запрос к локальной конечной точке управляемых удостоверений для ресурсов Azure, чтобы получить маркер доступа к Azure Resource Manager.

       $response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -Method GET -Headers @{Metadata="true"}
    

    Примечание.

    Значение параметра resource должно совпадать с ожидаемым идентификатором Microsoft Entra. Если используется идентификатор ресурса Resource Manager, добавьте косую черту после универсального кода ресурса (URI).

    Затем извлеките полный ответ, который хранится в виде форматированной строки JSON в объекте $response.

    $content = $response.Content | ConvertFrom-Json
    

    Затем извлеките маркер доступа из ответа.

    $ArmToken = $content.access_token
    

    Теперь вызовите Azure Resource Manager с использованием маркера доступа. В этом примере также используется командлет Invoke-WebRequest для вызова Azure Resource Manager и включения маркер доступа в заголовок авторизации.

    (Invoke-WebRequest -Uri https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>?api-version=2016-06-01 -Method GET -ContentType "application/json" -Headers @{ Authorization ="Bearer $ArmToken"}).content
    

    Примечание.

    URL-адрес чувствителен к регистру, поэтому должен использоваться тот же регистр, который использовался, когда вы присваивали имя группе ресурсов. Проверьте, чтобы в resourceGroups обязательно использовался символ "G" (прописная буква).

    Следующая команда возвращает сведения о группе ресурсов:

    {"id":"/subscriptions/98f51385-2edc-4b79-bed9-7718de4cb861/resourceGroups/DevTest","name":"DevTest","location":"westus","properties":{"provisioningState":"Succeeded"}}
    

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

Из этого краткого руководства вы узнали, как использовать назначаемое системой управляемое удостоверение для доступа к API Azure Resource Manager. Сведения об Azure Resource Manager см. здесь: