Руководство: использование назначенного системой управляемого удостоверения на виртуальной машине Windows для доступа к Azure Key Vault

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

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

Узнайте следующие темы:

  • предоставлять виртуальной машине доступ к секрету в Key Vault;
  • получать маркер доступа с помощью удостоверения виртуальной машины и использовать его для получения секрета из Key Vault.

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

Создание Хранилища ключей

Совет

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

В этом разделе показано, как предоставить виртуальной машине доступ к секрету в Key Vault. При использовании управляемых удостоверений для ресурсов Azure код может получить маркеры доступа для проверки подлинности в ресурсах, поддерживающих проверку подлинности Microsoft Entra.  Однако не все службы Azure поддерживают проверку подлинности Microsoft Entra. Чтобы использовать управляемые удостоверения для ресурсов Azure с такими службами, сохраните учетные данные службы в Azure Key Vault и используйте управляемое удостоверение виртуальной машины для доступа к Key Vault и получения учетных данных.

Сначала нужно создать хранилище Key Vault и предоставить удостоверению виртуальной машины доступ к нему.

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

  2. В верхней части левой панели навигации нажмите кнопку "Создать ресурс".

  3. В поле Поиск в Marketplace введите Key Vault и нажмите клавишу ВВОД.

  4. В списке результатов выберите Key Vault.

  5. Нажмите кнопку создания.

  6. Укажите имя нового хранилища ключей.

    Создайте экран хранилища ключей.

  7. Заполните все необходимые сведения. Обязательно выберите подписку и группу ресурсов, используемые для работы с этим руководством.

  8. Выберите Просмотр и создание.

  9. Нажмите кнопку Создать

Создание секрета

Затем добавьте секрет в хранилище Key Vault, чтобы позже извлечь его с помощью кода, который вы запустите на виртуальной машине: Для этого учебника используется PowerShell, но эти принципы применимы к любому коду, выполняющемуся в этой виртуальной машине.

  1. Вернитесь к только что созданному экземпляру Key Vault.

  2. Выберите Секретыи нажмите кнопку Добавить.

  3. Выберите Создать или импортировать.

  4. На экране Создание секрета в разделе Параметры отправки выберите Вручную.

  5. Введите имя и значение для секрета.  Значение может быть любым. 

  6. Не указывайте дату активации и окончания срока действия и для параметра Включено оставьте значение Да

  7. Щелкните Создать, чтобы создать секрет.

    Снимок экрана: создание секрета.

Предоставление доступа

Управляемому удостоверению, используемому виртуальной машиной, необходимо предоставить доступ для чтения секрета, который будет храниться в хранилище Key Vault.

  1. Вернитесь к только что созданному экземпляру Key Vault.

  2. Выберите Политика доступа в меню слева.

  3. Нажмите Добавить политику доступа

    Снимок экрана: экран политики доступа к хранилищу ключей.

  4. В разделе Добавить политику доступа в окне Настроить при помощи шаблона (необязательно) в раскрывающемся меню выберите Управление секретами.

  5. Выберите Выбор субъекта и в поле поиска введите имя созданной ранее виртуальной машины.  Выберите виртуальную машину в списке результатов и щелкните Выбрать.

  6. Выберите Добавить

  7. Выберите Сохранить.

Доступ к данным

В этом разделе показано, как получить маркер доступа с помощью удостоверения виртуальной машины и использовать этот маркер для получения секрета из Key Vault. Если вы не установили версию PowerShell 4.3.1 или выше, загрузите и установите последнюю версию.

Во-первых, мы используем управляемое удостоверение виртуальной машины, назначаемое системой, для получения маркера доступа для проверки подлинности в Key Vault:

  1. На портале перейдите к разделу Виртуальные машины, выберите свою виртуальную машину Windows и в разделе Обзор щелкните Подключить.
  2. Введите имя пользователя и пароль, добавленные при создании виртуальной машины Windows.  
  3. Теперь, когда создано подключение к удаленному рабочему столу с виртуальной машиной, откройте PowerShell в удаленном сеансе.  
  4. Отправьте веб-запрос к клиенту в 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 см. здесь: