Создание виртуальной машины Azure с использованием пароля администратора виртуальной машины из секретного хранилища ключей Azure

Я использую пользовательский интерфейс портала Azure для создания виртуальной машины Windows в Azure. Я создал секретный adminpass в хранилище ключей Azure, который указывает пароль администратора для создаваемой виртуальной машины.

Когда дело доходит до использования этого adminpass секрета при создании виртуальной машины, существуют руководства, в которых описывается, как это сделать, если вы создаете виртуальную машину с использованием шаблона ARM: Безопасное развертывание виртуальной машины Azure с паролем локального администратора из Azure Key Vault, а не в шаблоне ARM

Но как я могу использовать этот секрет хранилища ключей, если я создаю виртуальную машину с помощью пользовательского интерфейса портала Azure? Это возможно?

И есть ли какие-либо преимущества (кроме безопасности) в указании пароля как секретного вместо необработанного текста? Я имею в виду, если мы добавим учетные записи пользователей Windows в KeyVault, возможно ли, что мы сможем легко изменить или отозвать доступ к виртуальной машине при необходимости?

РЕДАКТИРОВАТЬ:

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

Вот 2 сценария развертывания:

  • Создайте виртуальную машину через пользовательский интерфейс портала Azure, указав там имя пользователя и пароль администратора, а после развертывания виртуальной машины просто добавив учетные данные в секретный ключ хранилища, чтобы другие приложения могли их использовать.

  • Сначала добавьте учетные данные в секрет Keyvault, а затем разверните виртуальную машину с помощью шаблонов ARM, которые используют этот секрет для чтения учетных данных администратора виртуальной машины.

Я просто хочу убедиться, что в обоих случаях секрет keyvault предназначен для использования другими приложениями, которые хотят аутентифицировать виртуальную машину. И, с точки зрения виртуальной машины, он считывает хранилище ключей только при создании виртуальной машины. Я здесь прав?


person AnjanaDyna    schedule 03.06.2021    source источник


Ответы (1)


Нет, невозможно создать виртуальную машину Windows из портала, указав пароль из Keyvault. Не удивлюсь, если эта функция будет выпущена в ближайшее время, поскольку Microsoft прилагает много усилий в области безопасности.

В контексте секретов для паролей виртуальных машин Windows они обычно хранятся в Keyvault для упрощения управления и безопасности. Допустим, вы развертываете с помощью любого инструмента IaC, вам не нужно хранить свой пароль в качестве переменной среды или не нужно хранить его в Git.

Хранение его в Keyvault позволяет безопасно извлекать его, когда это необходимо для создания виртуальной машины, а также позволяет многим другим ресурсам получить доступ к этому паролю для чего-либо еще, для чего он может им понадобиться.

Во-вторых, для более удобного управления разрешениями. В Keyvault у вас есть та же концепция RBAC, что и для любого другого ресурса Azure, тогда у вас есть концепция политик доступа, которая теперь также доступна для определенных, за исключением новые политики Keyvault RBAC. Наличие этого уровня контроля позволяет вам решать, кто может или не может иметь доступ к учетным данным виртуальной машины / ресурса.

Сохранение пароля в Keyvault и удаление чьего-либо прямого разрешения на секретный не аннулирует доступ к виртуальной машине. Это просто остановит доступ этого человека к сохраненному паролю. Если этот человек скопировал пароль из Keyvault, он все равно сможет войти в систему.

Однако, если у вас есть приложение или ресурс, которые будут программно извлекать секреты из Keyvault каждый раз, когда ему нужно что-то делать, тогда да - в этом сценарии удаление доступа к секретам аннулирует доступ к виртуальной машине.

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

Keyvault не привязан к виртуальной машине. Думайте о Keyvault как о очень безопасном листе Excel. Этот лист Excel не привязан к вашей виртуальной машине. Если вы откроете лист Excel и удалите или измените пароль, он не изменит пароль виртуальной машины. Однако кто-либо другой (или приложение), использующий этот пароль для аутентификации на виртуальной машине, больше не сможет этого сделать, потому что пароль больше не может быть найден.

Да, ваши два сценария развертывания верны, вот как он будет себя вести - вы поняли концепцию. Опять же, подумайте о безопасном листе Excel, которым пользуются многие люди и т. Д.

person Ked Mardemootoo    schedule 03.06.2021
comment
Спасибо за твой ответ. Храним ли мы обычно имя пользователя виртуальной машины Windows также в keyvalult? - person AnjanaDyna; 04.06.2021
comment
Да лучше так сделать. Вы можете установить имя секрета как имя пользователя с хорошим соглашением об именах, которое также связано с именем машины. Это особенно важно, если у вас разные имена пользователей на разных машинах и т. Д. Имя пользователя-vm01 в качестве секретного имени с паролем в качестве его значения - person Ked Mardemootoo; 04.06.2021
comment
У меня есть еще одно замешательство по этому поводу. Добавил его в вопрос как ИЗМЕНИТЬ. Если вы не возражаете, не могли бы вы помочь мне решить и эту проблему? - person AnjanaDyna; 04.06.2021
comment
Хорошо ответил на ваши вопросы! - person Ked Mardemootoo; 04.06.2021