Postavljanje MLflow provjere autentičnosti

Postavljanje Mlflow Provjere Autenticnosti



Autentifikacija mora biti konfigurirana kako bi se osigurao pristup eksperimentima, modelima i artefaktima na MLflow poslužitelju. Nakon što je omogućeno, svaki korisnik koji želi pristupiti bilo kojem resursu koji se nalazi na poslužitelju MLflow mora se prijaviti. Budući da MLflow ne uključuje ugrađenu provjeru autentičnosti prema zadanim postavkama, potrebno ga je postaviti za rad s drugim tehnika autentifikacije.

Kako omogućiti MLflow autentifikaciju na poslužitelju

Pokrenite MLflow UI pomoću sljedeće naredbe da biste omogućili MLflow provjeru autentičnosti:

mlflow server --app-name basic-auth

Ponovnim pokretanjem poslužitelja bez opcije naziva aplikacije, administrator MLflow poslužitelja može odlučiti onemogućiti ovu značajku kad god želi. Ovdje je snimak zaslona naredbe kako se prikazuje na terminalu naredbenog retka operativnog sustava Windows (zanemarite upozorenje):









Poslužitelj MLflow sada zahtijeva korisničko ime i lozinku za pristup eksperimentima i artefaktima poslužitelja kada im se pristupa putem preglednika unosom http://127.0.0.1:5000 kao URL.







Kako postaviti autentifikaciju na MLflow

Uz nekoliko manjih izmjena u uputama, naredbama i nazivima konfiguracijskih datoteka, postavljanje MLflow autentifikacije u sustavu Windows vrlo je slično postavljanju u sustavu Linux.

Ovdje je vodič za konfiguriranje MLflow autentifikacije u sustavu Windows pomoću 'htpasswd' i Nginx kao obrnutog proxyja. Imajte na umu da ova konfiguracija omogućuje jednostavnu autentifikaciju i ključno je adekvatno zaštititi računalo koje pokreće MLflow i Nginx kako bi se izbjegao neovlašteni pristup. Razmislite o korištenju OAutha ili povezivanju MLflowa s vanjskim pružateljima identiteta za proizvodna okruženja ili strože sigurnosne zahtjeve.



U ovom vodiču, proći ćemo kroz postavljanje osnovne autentifikacije pomoću 'htpasswd' za upravljanje korisnikom/lozinkom i Nginx kao obrnuti proxy.

Korak 1: Instalirajte Htpasswd

Iako 'htpasswd' nije nativna Windows aplikacija, ovdje koristimo alat treće strane koji je poznat kao uslužni program htpasswd tvrtke Apache Lounge. Preuzmite ga sa službene web stranice Apache Lounge. Ovdje je snimak zaslona koji pokazuje da imamo 'htpasswd.exe' u bin direktoriju Apachea nakon preuzimanja zip datoteke i njenog izdvajanja u naš radni direktorij:

Da biste koristili 'htpasswd.exe' iz bilo kojeg naredbenog retka, sada ga kopirajte na mjesto u PATH vašeg sustava u varijabli okruženja.

Korak 2: Stvorite datoteku zaporke

Da biste generirali datoteku zaporke, otvorite naredbeni redak i idite na odgovarajuće mjesto. Koristite “htpasswd” za stvaranje ili postavljanje nove datoteke lozinke ili za dodavanje korisnika u postojeću. Svaki redak u datoteci mora imati šifrirano korisničko ime i lozinku. Koristite sljedeću naredbu za dodavanje novih vjerodajnica za korisnika ili ažuriranje lozinke postojećeg korisnika:

htpasswd -c /path/to/PASSWORD_FILE_NAME KORISNIČKO IME

Idite u mapu Python (u ovom slučaju, radni direktorij) i upišite gore navedenu naredbu u terminal ili prozor upita kao što je prikazano u sljedećem isječku. Stvorena je datoteka lozinke, mlflow-authfile.

Nakon dodavanja korisničkog imena “admin” i pritiska na tipku “enter”, sustav traži lozinku. Nakon ponovnog upisivanja iste lozinke na upit, korisnik je uspješno kreiran i pokazuje da je korisnik dodan sa potrebnom lozinkom:

Evo snimke zaslona koja prikazuje direktorij u kojem se stvara potrebna datoteka zaporke:

Korisničko ime i šifrirana lozinka u formatu 'korisničko ime: lozinka' trebali bi se pojaviti u svakom retku datoteke.

Korak 3: Instalirajte i konfigurirajte Nginx

Preuzmite Windows binarne datoteke Nginxa sa službene web stranice. Ekstrahirajte preuzetu datoteku u radni direktorij u mapi Nginx:

Napravite novi blok poslužitelja MLFlow u Nginxu. Stvorite direktorij 'mlflow-site' otvaranjem naredbenog retka u direktoriju Nginx:

Vrijeme je da odmah napravite novu datoteku za konfiguraciju MLflowa. Zamijenite naziv domene ili IP adresu poslužitelja s localhost. Također, koristeći kose crte na putu, zamijenite D:/Work/Python/mlflow-auth s točnim putem do datoteke lozinke koja je prethodno stvorena. Promijenite vrijednost proxy_pass u URI poslužitelja MLflow. Priključci su podesivi prema potrebnim brojevima priključaka.

Evo isječka koda za promjenu:

Unesite naredbu “ipconfig” u naredbeni redak da biste pronašli IP adresu:

Korak 4: Omogućite Nginx Server Block

Kako biste aktivirali blok Nginx poslužitelja, stvorite simboličku vezu pomoću sljedeće naredbe u naredbenom retku:

CD D:\Work\nginx\conf\mlflow- mjesto

mklink mlflow D:\Work\nginx\conf\mlflow- mjesto \mlflow

Korak 5: Pokrenite Nginx

Unesite naredbu “nginx.exe” i dođite do Nginx direktorija da pokrenete Nginx iz naredbenog retka:

Korak 6: Pokrenite MLflow poslužitelj

Uz pomoć sljedeće naredbe, koja uključuje stazu pozadinske pohrane MLflow poslužitelja, možete pokrenuti ili ponovno pokrenuti MLflow poslužitelj u novom terminalskom prozoru ili naredbenom retku. Rezultati eksperimenata, pretraživanja i drugih operacija pohranjeni su na ovoj stazi:

Naredba za pokretanje MLflow poslužitelja:

mlflow poslužitelj --host 127.0.0.1 --port 5000 --backend-store-uri D:/Work/Python/Storage

Ako nakon izvršenja gore navedene naredbe vidite sljedeću pogrešku, ne brinite; jednostavno izvršite sljedeću naredbu da biste riješili problem:

Promijenite URI shemu za pohranjivanje podataka registra modela na lokalnom datotečnom sustavu kako biste riješili pogrešku:

mlflow poslužitelj --host 127.0.0.1 --port 5000 --backend-store-uri datoteka :///D:/Work/Python/Storage

Korak 7: Pristupite MLflowu s autentifikacijom

Sada će Nginx zatražiti korisničko ime i lozinku prije odobravanja pristupa MLflow poslužitelju i njegovim artefaktima kada netko pristupi MLflowu putem domene ili IP adrese. Sada, da biste pristupili korisničkom sučelju i API-ju MLflowa, prvo morate dati korisničko ime i lozinku za prijavu kada koristite web preglednik za pristup MLflowu.

Zaključak

MLflow autentifikacija u sustavu Windows zahtijeva da se MLflow izvodi iza obrnutog proxyja s uključenom autentifikacijom. U ovom slučaju, Nginx služi kao obrnuti proxy, djelujući kao posrednik između preglednika korisnika i MLflow poslužitelja. Od korisnika se traži da unesu korisničko ime i lozinku prije nego što pristupe korisničkom sučelju i API-ju za MLflow konfiguriranjem Nginxa za provedbu osnovne provjere autentičnosti.

Posljednje, ali ne i najmanje važno, kako biste bili sigurni da se pridržavate najnovijih i sigurnih praksi, uvijek je ključno konzultirati najnoviju dokumentaciju i resurse za MLflow i Nginx.