Как включить аутентификацию MLflow на сервере
Запустите пользовательский интерфейс MLflow, используя следующую команду, чтобы включить аутентификацию MLflow:
сервер mlflow --имя-приложения базовая-аутентификацияПерезапустив сервер без параметра имени приложения, администратор сервера MLflow может отключить эту функцию в любое время. Вот снимок экрана команды, отображаемой в терминале командной строки операционной системы Windows (игнорируйте предупреждение):
Серверу MLflow теперь требуется имя пользователя и пароль для доступа к экспериментам и артефактам сервера при доступе через браузер, введя http://127.0.0.1:5000 в качестве URL-адреса.
Как настроить аутентификацию в MLflow
С небольшими изменениями в инструкциях, командах и именах файлов конфигурации настройка аутентификации MLflow в Windows очень похожа на настройку в Linux.
Вот руководство по настройке аутентификации MLflow в Windows с использованием «htpasswd» и Nginx в качестве обратного прокси-сервера. Помните, что эта конфигурация обеспечивает простую аутентификацию, и крайне важно обеспечить адекватную защиту компьютера, на котором работают MLflow и Nginx, во избежание несанкционированного доступа. Рассмотрите возможность использования OAuth или подключения MLflow к внешним поставщикам удостоверений для производственных сред или более строгих требований безопасности.
В этом руководстве мы рассмотрим настройку базовой аутентификации с использованием «htpasswd» для управления пользователями и паролями и Nginx в качестве обратного прокси-сервера.
Шаг 1. Установите Htpasswd
Хотя «htpasswd» не является собственным приложением Windows, мы используем сторонний инструмент, известный здесь как утилита htpasswd Apache Lounge. Загрузите его с официального сайта Apache Lounge. Вот снимок экрана, демонстрирующий, что у нас есть «htpasswd.exe» в каталоге bin Apache после загрузки zip-файла и его распаковки в наш рабочий каталог:
Чтобы использовать «htpasswd.exe» из любой командной строки, скопируйте его в папку PATH вашей системы в переменной среды.
Шаг 2. Создайте файл паролей
Чтобы сгенерировать файл паролей, откройте командную строку и перейдите в соответствующее место. Используйте «htpasswd», чтобы создать или установить новый файл паролей или добавить пользователей в существующий. Каждая строка в файле должна иметь зашифрованные имя пользователя и пароль. Используйте следующую команду, чтобы добавить новые учетные данные для пользователя или обновить пароль существующего пользователя:
htpasswd -c /путь/к/ИМЯ_ФАЙЛА_ПАРОЛЯ ИМЯ ПОЛЬЗОВАТЕЛЯПерейдите в папку Python (в данном случае рабочий каталог) и введите вышеупомянутую команду в терминале или окне подсказки, как показано в следующем фрагменте. Создается файл паролей mlflow-authfile.
После добавления имени пользователя «admin» и нажатия клавиши «enter» система запросит пароль. После повторного ввода того же пароля в командной строке пользователь будет успешно создан и будет показано, что пользователь был добавлен с требуемым паролем:
Вот скриншот, показывающий каталог, в котором создан необходимый файл паролей:
Имя пользователя и зашифрованный пароль в формате «имя пользователя:пароль» должны присутствовать в каждой строке файла.
Шаг 3. Установите и настройте Nginx
Загрузите двоичные файлы Nginx для Windows с официального сайта. Извлеките загруженный файл в рабочий каталог в папке Nginx:
Создайте новый блок сервера MLFlow в Nginx. Создайте каталог «mlflow-site», открыв командную строку в каталоге Nginx:
Пришло время создать новый файл для конфигурации MLflow прямо сейчас. Замените доменное имя или IP-адрес сервера на локальный хост. Кроме того, используя косую черту в пути, замените D:/Work/Python/mlflow-аутентификация с точным путем к ранее созданному файлу паролей. Измените значение proxy_pass на URI сервера MLflow. Порты настраиваются под необходимые номера портов.
Вот фрагмент кода, который нужно изменить:
Введите команду «ipconfig» в командной строке, чтобы найти IP-адрес:
Шаг 4. Включите блокировку сервера Nginx
Чтобы активировать блок сервера Nginx, создайте символическую ссылку, используя следующую команду в командной строке:
CD D:\Work\nginx\conf\mlflow- сайтmklink mlflow D:\Work\nginx\conf\mlflow- сайт \mlflow
Шаг 5: Запустите Nginx
Введите команду «nginx.exe» и перейдите в каталог Nginx, чтобы запустить Nginx из командной строки:
Шаг 6. Запустите сервер MLflow
С помощью следующей команды, которая включает путь к внутреннему хранилищу сервера MLflow, вы можете запустить или перезапустить сервер MLflow в новом окне терминала или командной строке. Результаты экспериментов, поисков и других операций хранятся по этому пути:
Команда для запуска сервера MLflow:
сервер mlflow --host 127.0.0.1 --port 5000 --backend-store-uri D:/Work/Python/StorageЕсли после выполнения вышеупомянутой команды вы увидите следующую ошибку, не волнуйтесь; просто выполните следующую команду, чтобы решить проблему:
Измените схему URI, чтобы хранить данные реестра модели в локальной файловой системе, чтобы устранить ошибку:
сервер mlflow --host 127.0.0.1 --port 5000 --backend-store-uri файл :///D:/Work/Python/Хранилище
Шаг 7. Доступ к MLflow с аутентификацией
Теперь Nginx будет запрашивать имя пользователя и пароль перед предоставлением доступа к серверу MLflow и его артефактам, когда кто-то обращается к MLflow через домен или IP-адрес. Теперь, чтобы получить доступ к пользовательскому интерфейсу и API MLflow, вы должны сначала указать имя пользователя и пароль для входа при использовании веб-браузера для доступа к MLflow.
Заключение
Аутентификация MLflow в Windows требует, чтобы MLflow выполнялся через обратный прокси-сервер с включенной аутентификацией. В этом случае Nginx выступает в роли обратного прокси-сервера, выступая посредником между браузером пользователя и сервером MLflow. Пользователям предлагается ввести имя пользователя и пароль перед доступом к пользовательскому интерфейсу и API для MLflow, настроив Nginx для обеспечения базовой аутентификации.
И последнее, но не менее важное: чтобы убедиться, что вы придерживаетесь самых последних и безопасных практик, всегда важно обращаться к самой последней документации и ресурсам для MLflow и Nginx.