Konfigurowanie uwierzytelniania MLflow

Konfigurowanie Uwierzytelniania Mlflow



Aby zabezpieczyć dostęp do eksperymentów, modeli i artefaktów na serwerze MLflow, należy skonfigurować uwierzytelnianie. Po włączeniu każdy użytkownik, który chce uzyskać dostęp do dowolnego zasobu hostowanego przez serwer MLflow, musi się zalogować. Ponieważ MLflow nie zawiera domyślnie wbudowanego uwierzytelniania, należy skonfigurować go do pracy z innym technika uwierzytelniania.

Jak włączyć uwierzytelnianie MLflow na serwerze

Uruchom interfejs użytkownika MLflow za pomocą kolejnego polecenia, aby włączyć uwierzytelnianie MLflow:

serwer mlflow --nazwa-aplikacji podstawowe-auth

Uruchamiając ponownie serwer bez opcji nazwy aplikacji, administrator serwera MLflow może w dowolnym momencie wyłączyć tę funkcję. Oto zrzut ekranu polecenia wyświetlanego na terminalu wiersza poleceń systemu operacyjnego Windows (zignoruj ​​ostrzeżenie):









Serwer MLflow wymaga teraz nazwy użytkownika i hasła, aby uzyskać dostęp do eksperymentów i artefaktów serwera w przypadku dostępu za pośrednictwem przeglądarki poprzez wprowadzenie http://127.0.0.1:5000 jako adres URL.







Jak skonfigurować uwierzytelnianie w MLflow

Po wprowadzeniu kilku drobnych modyfikacji w instrukcjach, poleceniach i nazwach plików konfiguracyjnych konfiguracja uwierzytelniania MLflow w systemie Windows jest bardzo podobna do konfiguracji w systemie Linux.

Oto samouczek konfiguracji uwierzytelniania MLflow w systemie Windows przy użyciu „htpasswd” i Nginx jako odwrotnego proxy. Pamiętaj, że taka konfiguracja umożliwia proste uwierzytelnianie, dlatego ważne jest odpowiednie zabezpieczenie komputera, na którym działa MLflow i Nginx, aby zapobiec nieautoryzowanemu dostępowi. Rozważ użycie OAuth lub połączenie MLflow z zewnętrznymi dostawcami tożsamości dla środowisk produkcyjnych lub bardziej rygorystycznych wymagań bezpieczeństwa.



W tym samouczku omówimy konfigurację podstawowego uwierzytelniania przy użyciu „htpasswd” do zarządzania użytkownikami/hasłami i Nginx jako odwrotnego proxy.

Krok 1: Zainstaluj Htpasswd

Chociaż „htpasswd” nie jest natywną aplikacją systemu Windows, używamy tutaj narzędzia innej firmy, znanego jako narzędzie htpasswd Apache Lounge. Pobierz go z oficjalnej strony Apache Lounge. Oto zrzut ekranu pokazujący, że mamy „htpasswd.exe” w katalogu bin Apache po pobraniu pliku ZIP i rozpakowaniu go do naszego katalogu roboczego:

Aby użyć „htpasswd.exe” z dowolnego wiersza poleceń, skopiuj go teraz do lokalizacji w systemie PATH w zmiennej środowiskowej.

Krok 2: Utwórz plik hasła

Aby wygenerować plik haseł, otwórz wiersz poleceń i przejdź do odpowiedniej lokalizacji. Użyj „htpasswd”, aby utworzyć lub ustawić nowy plik haseł lub dodać użytkowników do obecnego. Każda linia w pliku musi mieć zaszyfrowaną nazwę użytkownika i hasło. Użyj następującego polecenia, aby dodać nowe poświadczenia dla użytkownika lub zaktualizować hasło istniejącego użytkownika:

htpasswd -c /ścieżka/do/NAZWA_PLIKU_HASŁA NAZWA UŻYTKOWNIKA

Przejdź do folderu Python (w tym przypadku katalogu roboczego) i wpisz powyższe polecenie w terminalu lub oknie zachęty, jak pokazano w poniższym fragmencie. Tworzony jest plik haseł mlflow-authfile.

Po dodaniu nazwy użytkownika „admin” i naciśnięciu klawisza „enter” system poprosi o podanie hasła. Po ponownym wpisaniu tego samego hasła w monicie użytkownik zostanie pomyślnie utworzony i wyświetli się informacja, że ​​użytkownik został dodany z wymaganym hasłem:

Oto zrzut ekranu pokazujący katalog, w którym tworzony jest niezbędny plik hasła:

Nazwa użytkownika i zaszyfrowane hasło w formacie „nazwa użytkownika:hasło” powinny pojawić się w każdej linii pliku.

Krok 3: Zainstaluj i skonfiguruj Nginx

Pobierz pliki binarne Nginx dla systemu Windows z oficjalnej strony internetowej. Wyodrębnij pobrany plik do katalogu roboczego w folderze Nginx:

Utwórz nowy blok serwera MLFlow w Nginx. Utwórz katalog „mlflow-site”, otwierając wiersz poleceń w katalogu Nginx:

Czas już teraz stworzyć nowy plik konfiguracyjny MLflow. Zamień nazwę domeny lub adres IP serwera na localhost. Ponadto, używając ukośników w ścieżce, zamień D:/Work/Python/mlflow-auth z dokładną ścieżką do wcześniej utworzonego pliku haseł. Zmień wartość proxy_pass na URI serwera MLflow. Porty można dostosować do niezbędnych numerów portów.

Oto fragment kodu do zmiany:

Wpisz polecenie „ipconfig” w wierszu poleceń, aby znaleźć adres IP:

Krok 4: Włącz blok serwera Nginx

Aby aktywować blok serwera Nginx, utwórz dowiązanie symboliczne za pomocą następującego polecenia w wierszu poleceń:

płyta CD D:\Work\nginx\conf\mlflow- strona

mklink mlflow D:\Work\nginx\conf\mlflow- strona \mlprzepływ

Krok 5: Uruchom Nginx

Wpisz polecenie „nginx.exe” i przejdź do katalogu Nginx, aby uruchomić Nginx z wiersza poleceń:

Krok 6: Uruchom serwer MLflow

Za pomocą poniższego polecenia, które obejmuje ścieżkę pamięci wewnętrznej serwera MLflow, możesz uruchomić lub zrestartować serwer MLflow w nowym oknie terminala lub w wierszu poleceń. Wyniki eksperymentów, poszukiwań i innych operacji przechowywane są na tej ścieżce:

Polecenie uruchomienia serwera MLflow:

serwer mlflow --host 127.0.0.1 --port 5000 --backend-store-uri D:/Work/Python/Storage

Jeśli po wykonaniu powyższego polecenia zobaczysz następujący błąd, nie martw się; po prostu wykonaj następujące polecenie, aby rozwiązać problem:

Zmień schemat URI, aby przechowywać dane rejestru modelu w lokalnym systemie plików, aby rozwiązać problem:

serwer mlflow --host 127.0.0.1 --port 5000 --backend-store-uri plik :///D:/Work/Python/Storage

Krok 7: Uzyskaj dostęp do MLflow z uwierzytelnianiem

Teraz Nginx poprosi o nazwę użytkownika i hasło przed udzieleniem dostępu do serwera MLflow i jego artefaktów, gdy ktoś uzyska dostęp do MLflow za pośrednictwem domeny lub adresu IP. Teraz, aby uzyskać dostęp do interfejsu użytkownika i API MLflow, musisz najpierw podać nazwę użytkownika i hasło logowania podczas korzystania z przeglądarki internetowej w celu uzyskania dostępu do MLflow.

Wniosek

Uwierzytelnianie MLflow w systemie Windows wymaga wykonania MLflow za odwrotnym proxy z włączonym uwierzytelnianiem. W tym przypadku Nginx służy jako odwrotne proxy, pośrednicząc między przeglądarką użytkownika a serwerem MLflow. Użytkownicy proszeni są o wprowadzenie nazwy użytkownika i hasła przed uzyskaniem dostępu do interfejsu użytkownika i API dla MLflow poprzez skonfigurowanie Nginx w celu wymuszenia podstawowego uwierzytelniania.

Na koniec, aby mieć pewność, że stosujesz najnowsze i bezpieczne praktyki, zawsze ważne jest zapoznanie się z najnowszą dokumentacją i zasobami dotyczącymi MLflow i Nginx.