Настройка аутентификации MLflow

Nastrojka Autentifikacii Mlflow



Аутентификацию необходимо настроить, чтобы защитить доступ к экспериментам, моделям и артефактам на сервере MLflow. После включения каждый пользователь, который пытается получить доступ к любому ресурсу, размещенному на сервере MLflow, должен войти в систему. Поскольку MLflow по умолчанию не включает встроенную аутентификацию, необходимо настроить ее для работы с другим техника аутентификации.

Как включить аутентификацию 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.