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-authUruchamiają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ŻYTKOWNIKAPrzejdź 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- stronamklink 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/StorageJeś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.