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

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

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

Вы узнаете, как выполнять следующие задачи:

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

Предварительные требования

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

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

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

  1. Откройте портал Azure.

  2. В верхней части меню навигации слева выберите Создать ресурс.

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

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

  5. Выберите Создать.

  6. Укажите имя для нового хранилища Key Vault.

    Экран "Создание хранилища ключей"

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

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

  9. Выберите Создать.

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

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

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

  2. Выберите Секреты и щелкните Добавить.

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

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

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

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

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

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

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

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

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

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

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

    Экран создания политики доступа к Key Vault

  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 или CLI.

Дальнейшие действия

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