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

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

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

  • Предоставление виртуальной машине доступа к группе ресурсов в Azure Resource Manager.
  • Получение маркера доступа с помощью удостоверения виртуальной машины и вызов Azure 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 и нажмите кнопку "Сохранить".

    Снимок экрана: добавление роли читателя в управляемое удостоверение.

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

Для выполнения этих действий вам потребуется клиент SSH. Если вы используете Windows, можно использовать клиент SSH в подсистеме Windows для Linux. Если вам нужна помощь в настройке ключей SSH-клиента, ознакомьтесь с разделом Использование ключей SSH с Windows в Azure или Как создать и использовать пару из открытого и закрытого ключей SSH для виртуальных машин Linux в Azure.

  1. На портале перейдите к виртуальной машине Linux и в разделе "Обзор" выберите Подключение.

  2. Подключитесь к виртуальной машине с помощью выбранного клиента SSH.

  3. В окне curlтерминала выполните запрос к локальным управляемым удостоверениям для конечной точки ресурсов Azure, чтобы получить маркер доступа для Azure Resource Manager.   Запрос curl маркера доступа приведен ниже.

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true

Примечание.

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

Ответ включает маркер доступа, необходимый для доступа к Azure Resource Manager.

Ответ:

{
  "access_token":"eyJ0eXAiOi...",
  "refresh_token":"",
  "expires_in":"3599",
  "expires_on":"1504130527",
  "not_before":"1504126627",
  "resource":"https://management.azure.com",
  "token_type":"Bearer"
}

Этот маркер доступа можно использовать для доступа к Azure Resource Manager, например для просмотра подробных сведений о группе ресурсов, к которой вы ранее предоставили доступ виртуальной машине. Замените значения <SUBSCRIPTION-ID>, <RESOURCE-GROUP> и <ACCESS-TOKEN> созданными ранее значениями.

Примечание.

В URL-адресе учитывается регистр знаков, поэтому должен использоваться тот же регистр, который использовался, когда вы присваивали имя группе ресурсов. Обязательно укажите прописную букву "G" в имени группы resourceGroup.

curl https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS-TOKEN>" 

Ответ обратно с определенными сведениями о группе ресурсов:

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

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

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