Руководство: использование назначенного системой управляемого удостоверения на виртуальной машине Windows для доступа к Azure Key Vault
Управляемые удостоверения для ресурсов Azure — это функция идентификатора Microsoft Entra. Каждая служба Azure, которая поддерживает управляемые удостоверения для ресурсов Azure, используется в соответствии с собственной временной шкалой. Прежде чем начать работу, обязательно проверьте состояние доступности управляемых удостоверений для своего ресурса и ознакомьтесь с известными проблемами.
В этом руководстве показано, как получить доступ к Azure Key Vault с помощью назначаемого системой управляемого удостоверения для виртуальной машины Windows. Key Vault позволяет клиентскому приложению использовать секрет для доступа к ресурсам, не защищенным идентификатором Microsoft Entra. Управляемые удостоверения автоматически управляются платформой Azure. Они позволяют выполнять проверку подлинности в службах, поддерживающих проверку подлинности Microsoft Entra, не включая сведения о проверке подлинности в коде.
Узнайте следующие темы:
- предоставлять виртуальной машине доступ к секрету в Key Vault;
- получать маркер доступа с помощью удостоверения виртуальной машины и использовать его для получения секрета из Key Vault.
Необходимые компоненты
- Основные сведения об управляемых удостоверениях. См. дополнительные сведения об управляемых удостоверениях для ресурсов Azure.
- Учетная запись Azure. Зарегистрируйте бесплатную учетную запись.
- Разрешения роли "Владелец" в соответствующей области (подписка или группа ресурсов) для выполнения требуемых операций создания ресурсов и управления ролями учетной записи. Если нуждаетесь в помощи с назначением ролей, прочитайте статью Назначение ролей Azure с помощью портала Azure.
- Кроме того, вам потребуется виртуальная машина Windows с включенными управляемыми удостоверениями, назначенными системой.
- Если вам нужно создать виртуальную машину для работы с этим руководством, см. раздел Управляемое удостоверение, назначаемое системой.
Создание Хранилища ключей
Совет
Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.
В этом разделе показано, как предоставить виртуальной машине доступ к секрету в Key Vault. При использовании управляемых удостоверений для ресурсов Azure код может получить маркеры доступа для проверки подлинности в ресурсах, поддерживающих проверку подлинности Microsoft Entra. Однако не все службы Azure поддерживают проверку подлинности Microsoft Entra. Чтобы использовать управляемые удостоверения для ресурсов Azure с такими службами, сохраните учетные данные службы в Azure Key Vault и используйте управляемое удостоверение виртуальной машины для доступа к Key Vault и получения учетных данных.
Сначала нужно создать хранилище Key Vault и предоставить удостоверению виртуальной машины доступ к нему.
Войдите на портал Azure.
В верхней части левой панели навигации нажмите кнопку "Создать ресурс".
В поле Поиск в Marketplace введите Key Vault и нажмите клавишу ВВОД.
В списке результатов выберите Key Vault.
Нажмите кнопку создания.
Укажите имя нового хранилища ключей.
Заполните все необходимые сведения. Обязательно выберите подписку и группу ресурсов, используемые для работы с этим руководством.
Выберите Просмотр и создание.
Нажмите кнопку Создать
Создание секрета
Затем добавьте секрет в хранилище Key Vault, чтобы позже извлечь его с помощью кода, который вы запустите на виртуальной машине: Для этого учебника используется PowerShell, но эти принципы применимы к любому коду, выполняющемуся в этой виртуальной машине.
Вернитесь к только что созданному экземпляру Key Vault.
Выберите Секретыи нажмите кнопку Добавить.
Выберите Создать или импортировать.
На экране Создание секрета в разделе Параметры отправки выберите Вручную.
Введите имя и значение для секрета. Значение может быть любым.
Не указывайте дату активации и окончания срока действия и для параметра Включено оставьте значение Да.
Щелкните Создать, чтобы создать секрет.
Предоставление доступа
Управляемому удостоверению, используемому виртуальной машиной, необходимо предоставить доступ для чтения секрета, который будет храниться в хранилище Key Vault.
Вернитесь к только что созданному экземпляру Key Vault.
Выберите Политика доступа в меню слева.
Нажмите Добавить политику доступа
В разделе Добавить политику доступа в окне Настроить при помощи шаблона (необязательно) в раскрывающемся меню выберите Управление секретами.
Выберите Выбор субъекта и в поле поиска введите имя созданной ранее виртуальной машины. Выберите виртуальную машину в списке результатов и щелкните Выбрать.
Выберите Добавить
Выберите Сохранить.
Доступ к данным
В этом разделе показано, как получить маркер доступа с помощью удостоверения виртуальной машины и использовать этот маркер для получения секрета из Key Vault. Если вы не установили версию PowerShell 4.3.1 или выше, загрузите и установите последнюю версию.
Во-первых, мы используем управляемое удостоверение виртуальной машины, назначаемое системой, для получения маркера доступа для проверки подлинности в Key Vault:
- На портале перейдите к разделу Виртуальные машины, выберите свою виртуальную машину Windows и в разделе Обзор щелкните Подключить.
- Введите имя пользователя и пароль, добавленные при создании виртуальной машины Windows.
- Теперь, когда создано подключение к удаленному рабочему столу с виртуальной машиной, откройте PowerShell в удаленном сеансе.
- Отправьте веб-запрос к клиенту в PowerShell, чтобы получить токен для локального узла на конкретный порт для виртуальной машины.
Запрос PowerShell:
$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -Method GET -Headers @{Metadata="true"}
Вы можете увидеть, как выглядит ответ:
Затем извлеките маркер доступа из ответа.
$KeyVaultToken = $Response.access_token
Наконец используйте команду Invoke-WebRequest PowerShell для извлечения секрета, созданного ранее в хранилище Key Vault, и передайте маркер доступа в заголовок авторизации. Вам потребуется URL-адрес вашего хранилища ключей, который находится в разделе Основные компоненты на странице Обзор в этом хранилище.
Invoke-RestMethod -Uri https://<your-key-vault-URL>/secrets/<secret-name>?api-version=2016-10-01 -Method GET -Headers @{Authorization="Bearer $KeyVaultToken"}
Ответ будет выглядеть следующим образом:
value id attributes
----- -- ----------
'My Secret' https://mi-lab-vault.vault.azure.net/secrets/mi-test/50644e90b13249b584c44b9f712f2e51 @{enabled=True; created=16…
После получения секрета из хранилища Key Vault, его можно использовать для аутентификации в службе, требующей имя пользователя и пароль.
Очистка ресурсов
Если вы хотите очистить ресурсы, войдите в портал Azure, выберите группы ресурсов, найдите и выберите группу ресурсов, созданную в процессе этого руководства (напримерmi-test
), а затем используйте команду "Удалить группу ресурсов".
Кроме того, можно очищать ресурсы с помощью PowerShell или интерфейса командной строки
Следующие шаги
Из этого руководства вы узнали, как получить доступ к хранилищу Azure Key Vault с помощью назначенного системой управляемого удостоверения на виртуальной машине Windows. Дополнительные сведения об Azure Key Vault см. здесь: