Руководство. Использование назначаемого системой управляемого удостоверения на виртуальной машине Linux для доступа к Azure Key Vault
Управляемые удостоверения для ресурсов Azure — это функция идентификатора Microsoft Entra. Каждая служба Azure, которая поддерживает управляемые удостоверения для ресурсов Azure, используется в соответствии с собственной временной шкалой. Прежде чем начать работу, обязательно проверьте состояние доступности управляемых удостоверений для своего ресурса и ознакомьтесь с известными проблемами.
В этом учебнике описано, как получить доступ к Azure Key Vault с помощью назначаемого системой управляемого удостоверения для виртуальной машины Linux. Key Vault позволяет клиентскому приложению использовать секрет для доступа к ресурсам, не защищенным идентификатором Microsoft Entra. Управляемые удостоверения служб автоматически управляются Azure и позволяют выполнять проверку подлинности в службах, поддерживающих проверку подлинности Microsoft Entra, без включения сведений о проверке подлинности в коде.
Узнайте следующие темы:
- предоставлять виртуальной машине доступ к секрету в Key Vault;
- Получение маркера доступа с помощью удостоверения виртуальной машины и его использование для получения секрета из Key Vault
Необходимые компоненты
- Базовое представление об управляемых удостоверениях. См. дополнительные сведения об управляемых удостоверениях для ресурсов Azure.
- Учетная запись Azure. Зарегистрируйте бесплатную учетную запись.
- Разрешения роли "Владелец" в соответствующей области (подписка или группа ресурсов) для выполнения требуемых операций создания ресурсов и управления ролями учетной записи. Если нуждаетесь в помощи с назначением ролей, прочитайте статью Назначение ролей Azure с помощью портала Azure.
- Кроме того, вам потребуется виртуальная машина Linux с включенными управляемыми удостоверениями, назначенными системой.
- Если вам нужно создать виртуальную машину для работы с этим учебником, выполните инструкции из раздела Создание виртуальной машины Linux с помощью портала Azure.
Создание Хранилища ключей
Совет
Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.
В этом разделе показано, как предоставить виртуальной машине доступ к секрету в Key Vault. С помощью управляемых удостоверений для ресурсов Azure код может получить маркеры доступа для проверки подлинности в ресурсах, поддерживающих проверку подлинности Microsoft Entra. Однако не все службы Azure поддерживают проверку подлинности Microsoft Entra. Чтобы использовать управляемые удостоверения для ресурсов Azure с такими службами, сохраните учетные данные службы в Azure Key Vault и используйте управляемое удостоверение виртуальной машины для доступа к Key Vault и получения учетных данных.
Сначала нужно создать хранилище ключей и предоставить назначаемому системой управляемому удостоверению виртуальной машины доступ к этому хранилищу.
Войдите на портал Azure.
В верхней части левой панели навигации нажмите кнопку "Создать ресурс".
В поле Поиск в Marketplace введите Key Vault и нажмите клавишу ВВОД.
В списке результатов выберите Key Vault.
Нажмите кнопку создания.
Укажите имя нового хранилища ключей.
Укажите необходимые сведения, чтобы выбрать подписку и группу ресурсов, в которых была создана виртуальная машина, используемая для работы с этим учебником.
Выберите Просмотр и создание.
Нажмите кнопку Создать
Создание секрета
Затем добавьте секрет в хранилище Key Vault, чтобы позже извлечь его с помощью кода, который вы запустите на виртуальной машине: Для этого учебника используется PowerShell, но эти принципы применимы к любому коду, выполняющемуся в этой виртуальной машине.
Вернитесь к только что созданному экземпляру Key Vault.
Выберите Секретыи нажмите кнопку Добавить.
Выберите Создать или импортировать.
На экране Создание секрета в разделе Параметры отправки выберите Вручную.
Введите имя и значение для секрета. Значение может быть любым.
Не указывайте дату активации и окончания срока действия и для параметра Включено оставьте значение Да.
Щелкните Создать, чтобы создать секрет.
Предоставление доступа
Управляемое удостоверение, используемое виртуальной машиной, должно получить доступ к секрету, хранящейся в Key Vault.
Вернитесь к только что созданному экземпляру Key Vault.
Выберите Политика доступа в меню слева.
Нажмите Добавить политику доступа
В разделе Добавить политику доступа в окне Настроить при помощи шаблона (необязательно) в раскрывающемся меню выберите Управление секретами.
Выберите Выбор субъекта и в поле поиска введите имя созданной ранее виртуальной машины. Выберите виртуальную машину в списке результатов и щелкните Выбрать.
Выберите Добавить
Выберите Сохранить.
Доступ к данным
Для выполнения этих действий вам потребуется клиент SSH. Если вы используете Windows, можно использовать клиент SSH в подсистеме Windows для Linux. Если вам нужна помощь в настройке ключей SSH-клиента, ознакомьтесь с разделом Использование ключей SSH с Windows в Azure или Как создать и использовать пару из открытого и закрытого ключей SSH для виртуальных машин Linux в Azure.
Внимание
Все пакеты SDK Azure поддерживают библиотеку Azure.Identity, которая упрощает получение маркеров Microsoft Entra для доступа к целевым службам. Узнайте больше о пакетах Azure SDK и воспользуйтесь библиотекой Azure.Identity.
На портале перейдите к виртуальной машине Linux и в разделе "Обзор" выберите Подключение.
Подключитесь к виртуальной машине с помощью выбранного клиента SSH.
В окне терминала выполните запрос к локальным управляемым удостоверениям для конечной точки ресурсов Azure с помощью cURL, чтобы получить маркер доступа для Azure Key Vault. Запрос cURL маркера доступа приведен ниже.
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true
Ответ включает маркер доступа, необходимый для доступа к Resource Manager.
Ответ:
{"access_token":"eyJ0eXAi...", "refresh_token":"", "expires_in":"3599", "expires_on":"1504130527", "not_before":"1504126627", "resource":"https://vault.azure.net", "token_type":"Bearer"}
Этот маркер доступа можно использовать для аутентификации в Azure Key Vault. В следующем запросе cURL показано, как считать секрет из хранилища Key Vault с помощью cURL и REST API для Key Vault. Вам нужен URL-адрес хранилища ключей, который находится в разделе "Основные сведения" страницы "Обзор" хранилища ключей. Вам также нужен маркер доступа, полученный при предыдущем вызове.
curl 'https://<YOUR-KEY-VAULT-URL>/secrets/<secret-name>?api-version=2016-10-01' -H "Authorization: Bearer <ACCESS TOKEN>"
Ответ выглядит следующим образом:
{"value":"p@ssw0rd!","id":"https://mytestkeyvault.vault.azure.net/secrets/MyTestSecret/7c2204c6093c4d859bc5b9eff8f29050","attributes":{"enabled":true,"created":1505088747,"updated":1505088747,"recoveryLevel":"Purgeable"}}
После получения секрета из Key Vault его можно использовать для проверки подлинности в службе, требующей имени и пароля.
Очистка ресурсов
Если вы хотите очистить ресурсы, войдите в портал Azure, выберите группы ресурсов, найдите и выберите группу ресурсов, созданную в процессе этого руководства (напримерmi-test
), а затем используйте команду "Удалить группу ресурсов".
Кроме того, это можно сделать с помощью PowerShell или ИНТЕРФЕЙСА командной строки.
Следующие шаги
Из этого руководства вы узнали, как получить доступ к Azure Key Vault с помощью назначаемого системой управляемого удостоверения на виртуальной машине Linux. Дополнительные сведения об Azure Key Vault см. здесь: