Configurarea autentificării MLflow

Configurarea Autentificarii Mlflow



Autentificarea trebuie configurată pentru a securiza accesul la experimente, modele și artefacte de pe serverul MLflow. Odată activat, fiecare utilizator care caută să acceseze orice resursă găzduită de serverul MLflow trebuie să se conecteze. Deoarece MLflow nu include autentificarea încorporată în mod implicit, este necesar să-l configureze pentru a funcționa cu un alt tehnica de autentificare.

Cum să activați autentificarea MLflow pe server

Lansați interfața de utilizare MLflow utilizând comanda ulterioară pentru a activa autentificarea MLflow:

mlflow server --app-name basic-auth

Prin repornirea serverului fără opțiunea de nume aplicație, administratorul serverului MLflow poate alege să dezactiveze această caracteristică oricând dorește. Iată o captură de ecran a comenzii așa cum este afișată pe terminalul liniei de comandă a sistemului de operare Windows (ignorați avertismentul):









Serverul MLflow necesită acum un nume de utilizator și o parolă pentru a accesa experimentele și artefactele serverului atunci când este accesat printr-un browser, introducând http://127.0.0.1:5000 ca URL.







Cum se configurează autentificarea pe MLflow

Cu câteva modificări minore în instrucțiunile, comenzile și numele fișierelor de configurare, configurarea autentificării MLflow pe Windows este foarte asemănătoare cu configurarea acesteia pe Linux.

Iată un tutorial pentru configurarea autentificării MLflow pe Windows folosind „htpasswd” și Nginx ca proxy invers. Rețineți că această configurație permite autentificarea simplă și este esențial să protejați în mod adecvat computerul care rulează MLflow și Nginx pentru a evita un acces neautorizat. Luați în considerare utilizarea OAuth sau conectarea MLflow cu furnizori externi de identitate pentru medii de producție sau cerințe de securitate mai stricte.



În acest tutorial, vom trece peste configurarea autentificării de bază folosind „htpasswd” pentru gestionarea utilizatorilor/parolei și Nginx ca proxy invers.

Pasul 1: Instalați Htpasswd

Deși „htpasswd” nu este o aplicație Windows nativă, folosim un instrument terță parte, care este cunoscut sub numele de utilitarul htpasswd al Apache Lounge aici. Descărcați-l de pe site-ul oficial al Apache Lounge. Iată o captură de ecran care demonstrează că avem „htpasswd.exe” în directorul bin al Apache după descărcarea fișierului zip și extragerea acestuia în directorul nostru de lucru:

Pentru a utiliza „htpasswd.exe” din orice prompt de comandă, copiați-l acum într-o locație din PATH a sistemului dumneavoastră în variabila de mediu.

Pasul 2: Creați un fișier cu parolă

Pentru a genera fișierul cu parole, deschideți un prompt de comandă și mergeți la locația corespunzătoare. Utilizați „htpasswd” pentru a crea sau a seta un nou fișier de parolă sau pentru a adăuga utilizatori la unul prezent. Fiecare linie din fișier trebuie să aibă un nume de utilizator și o parolă criptate. Utilizați următoarea comandă pentru a adăuga noi acreditări pentru utilizator sau pentru a actualiza parola unui utilizator existent:

htpasswd -c /path/to/PASSWORD_FILE_NAME USERNAME

Accesați folderul Python (în acest caz, directorul de lucru) și tastați comanda menționată mai sus în terminalul sau fereastra de prompt, așa cum se arată în fragmentul următor. Este creat fișierul cu parole, mlflow-authfile.

După adăugarea numelui de utilizator „admin” și apăsarea tastei „enter”, sistemul solicită parola. După reintroducerea aceleiași parole la prompt, utilizatorul este creat cu succes și arată că utilizatorul a fost adăugat cu parola necesară:

Iată o captură de ecran care arată directorul în care este creat fișierul de parolă necesar:

Un nume de utilizator și o parolă criptată în formatul „nume utilizator: parolă” ar trebui să apară pe fiecare linie a fișierului.

Pasul 3: Instalați și configurați Nginx

Obțineți binarele Windows ale Nginx de pe site-ul oficial. Extrageți fișierul descărcat în directorul de lucru din folderul Nginx:

Faceți un nou bloc de server MLFlow în Nginx. Creați directorul „mlflow-site” deschizând un prompt de comandă în directorul Nginx:

Este timpul să faceți un fișier nou pentru configurația MLflow chiar acum. Înlocuiți numele de domeniu sau adresa IP a serverului cu localhost. De asemenea, folosind bare oblice înainte în cale, înlocuiți D:/Work/Python/mlflow-auth cu calea exactă către fișierul cu parole care a fost creat anterior. Schimbați valoarea proxy_pass la URI-ul serverului MLflow. Porturile sunt ajustabile la numerele de porturi necesare.

Iată fragmentul de cod de schimbat:

Introduceți comanda „ipconfig” în linia de comandă pentru a găsi adresa IP:

Pasul 4: Activați blocul serverului Nginx

Pentru a activa blocul serverului Nginx, creați o legătură simbolică folosind următoarea comandă din promptul de comandă:

CD D:\Work\nginx\conf\mlflow- site-ul

mklink mlflow D:\Work\nginx\conf\mlflow- site-ul \mlflow

Pasul 5: Porniți Nginx

Introduceți comanda „nginx.exe” și navigați la directorul Nginx pentru a lansa Nginx dintr-un prompt de comandă:

Pasul 6: Porniți serverul MLflow

Cu ajutorul următoarei comenzi, care include calea de stocare backend a serverului MLflow, puteți porni sau reporni serverul MLflow într-o nouă fereastră de terminal sau prompt de comandă. Rezultatele experimentelor, căutărilor și altor operațiuni sunt stocate pe această cale:

Comanda pentru pornirea serverului MLflow:

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

Dacă, după executarea comenzii menționate mai sus, vedeți următoarea eroare, nu vă faceți griji; pur și simplu executați următoarea comandă pentru a remedia problema:

Schimbați schema URI pentru a stoca datele de registru model pe sistemul de fișiere local pentru a rezolva eroarea:

server mlflow --host 127.0.0.1 --port 5000 --backend-store-uri fişier :///D:/Work/Python/Storage

Pasul 7: Accesați MLflow cu autentificare

Acum, Nginx va solicita un nume de utilizator și o parolă înainte de a acorda acces la serverul MLflow și artefactele acestuia atunci când cineva accesează MLflow prin intermediul domeniului sau adresa IP. Acum, pentru a accesa UI și API-ul MLflow, trebuie mai întâi să furnizați un nume de utilizator și o parolă de conectare atunci când utilizați un browser web pentru a accesa MLflow.

Concluzie

Autentificarea MLflow pe Windows necesită ca MLflow să fie efectuat în spatele unui proxy invers, cu autentificarea activată. În acest caz, Nginx servește ca proxy invers, acționând ca intermediar între browserul utilizatorului și serverul MLflow. Utilizatorii sunt rugați să introducă un nume de utilizator și o parolă înainte de a accesa interfața de utilizator și API-ul pentru MLflow, configurând Nginx pentru a impune autentificarea de bază.

Nu în ultimul rând, pentru a vă asigura că respectați cele mai recente și sigure practici, este întotdeauna esențial să consultați documentația și resursele cele mai recente pentru MLflow și Nginx.