Pagse-set Up ng MLflow Authentication

Pagse Set Up Ng Mlflow Authentication



Dapat na i-configure ang pagpapatotoo upang ma-secure ang access sa mga eksperimento, modelo, at artifact sa MLflow server. Kapag na-enable na, ang bawat user na naglalayong ma-access ang anumang mapagkukunan na hino-host ng MLflow server ay kailangang mag-sign in. Dahil hindi kasama sa MLflow ang built-in na pagpapatotoo bilang default, kailangan itong i-set up para gumana sa ibang pamamaraan ng pagpapatunay.

Paano I-enable ang MLflow Authentication sa Server

Ilunsad ang MLflow UI gamit ang kasunod na command para paganahin ang MLflow authentication:

mlflow server --app-name basic-auth

Sa pamamagitan ng pag-restart ng server nang walang opsyon sa pangalan ng app, maaaring piliin ng administrator ng MLflow server na huwag paganahin ang feature na ito kung kailan nila gusto. Narito ang isang screenshot ng command habang ito ay ipinapakita sa command line terminal ng Windows operating system (balewala ang babala):









Nangangailangan na ngayon ang MLflow server ng username at password upang ma-access ang mga eksperimento at artifact ng server kapag na-access sa pamamagitan ng browser sa pamamagitan ng pagpasok ng http://127.0.0.1:5000 bilang URL.







Paano I-setup ang Authentication sa MLflow

Sa ilang maliliit na pagbabago sa mga tagubilin, utos, at mga pangalan ng file ng pagsasaayos, ang pagse-set up ng pagpapatotoo ng MLflow sa Windows ay halos kapareho sa pagse-set up nito sa Linux.

Narito ang isang tutorial para sa pag-configure ng MLflow authentication sa Windows gamit ang 'htpasswd' at Nginx bilang isang reverse proxy. Tandaan na ang pagsasaayos na ito ay nagbibigay-daan sa simpleng pagpapatunay, at napakahalaga na sapat na protektahan ang computer na nagpapatakbo ng MLflow at Nginx upang maiwasan ang isang hindi awtorisadong pag-access. Pag-isipang gamitin ang OAuth o ikonekta ang MLflow sa mga external na provider ng pagkakakilanlan para sa mga production environment o mas mahigpit na mga kinakailangan sa seguridad.



Sa tutorial na ito, tatalakayin natin ang pag-set up ng pangunahing pagpapatunay gamit ang 'htpasswd' para sa pamamahala ng user/password at Nginx bilang isang reverse proxy.

Hakbang 1: I-install ang Htpasswd

Bagama't ang 'htpasswd' ay hindi isang katutubong Windows application, gumagamit kami ng isang third-party na tool na kilala bilang htpasswd utility ng Apache Lounge dito. I-download ito mula sa opisyal na website ng Apache Lounge. Narito ang isang screenshot na nagpapakita na mayroon kaming 'htpasswd.exe' sa direktoryo ng bin ng Apache pagkatapos i-download ang zip file at i-extract ito sa aming gumaganang direktoryo:

Upang magamit ang 'htpasswd.exe' mula sa anumang command prompt, kopyahin ito ngayon sa isang lokasyon sa PATH ng iyong system sa variable ng Environment.

Hakbang 2: Gumawa ng File ng Password

Upang bumuo ng password file, magbukas ng command prompt at pumunta sa naaangkop na lokasyon. Gamitin ang “htpasswd” para gumawa o magtakda ng bagong password file o para idagdag ang mga user sa kasalukuyan. Ang bawat linya sa file ay kailangang may naka-encrypt na username at password. Gamitin ang sumusunod na command upang magdagdag ng mga bagong kredensyal para sa user o i-update ang password ng isang umiiral na user:

htpasswd -c /path/to/PASSWORD_FILE_NAME USERNAME

Pumunta sa folder ng Python (sa kasong ito, ang gumaganang direktoryo) at i-type ang nabanggit na command sa terminal o prompt window tulad ng ipinapakita sa sumusunod na snippet. Ang password file, mlflow-authfile, ay nilikha.

Pagkatapos idagdag ang 'admin' username at pindutin ang 'enter' key, hihilingin ng system ang password. Matapos muling i-type ang parehong password sa prompt, matagumpay na nalikha ang user, at ipinapakita nito na naidagdag ang user gamit ang kinakailangang password:

Narito ang isang screenshot na nagpapakita ng direktoryo kung saan nilikha ang kinakailangang file ng password:

Ang isang username at naka-encrypt na password sa format na 'username:password' ay dapat lumabas sa bawat linya ng file.

Hakbang 3: I-install at I-configure ang Nginx

Kunin ang Windows binaries ng Nginx mula sa opisyal na website. I-extract ang na-download na file sa gumaganang direktoryo sa folder ng Nginx:

Gumawa ng bagong MLFlow server block sa Nginx. Lumikha ng direktoryo ng 'mlflow-site' sa pamamagitan ng pagbubukas ng command prompt sa direktoryo ng Nginx:

Oras na para gumawa ng bagong file para sa configuration ng MLflow ngayon. Palitan ang domain name o IP address ng server ng localhost. Gayundin, gamit ang mga forward slashes sa landas, palitan D:/Trabaho/Python/mlflow-auth na may eksaktong landas sa file ng password na naunang ginawa. Baguhin ang halaga ng proxy_pass sa URI ng server ng MLflow. Ang mga port ay nababagay sa kinakailangang mga numero ng port.

Narito ang snippet ng code na babaguhin:

Ipasok ang command na 'ipconfig' sa command prompt upang mahanap ang IP Address:

Hakbang 4: Paganahin ang Nginx Server Block

Upang ma-activate ang Nginx server block, lumikha ng simbolikong link gamit ang sumusunod na command sa command prompt:

cd D:\Trabaho\nginx\conf\mlflow- lugar

mklink mlflow D:\Work\nginx\conf\mlflow- lugar \mldaloy

Hakbang 5: Simulan ang Nginx

Ipasok ang command na 'nginx.exe' at mag-navigate sa direktoryo ng Nginx upang ilunsad ang Nginx mula sa isang command prompt:

Hakbang 6: Simulan ang MLflow Server

Sa tulong ng sumusunod na command, na kinabibilangan ng backend storage path ng MLflow server, maaari mong simulan o i-restart ang MLflow server sa isang bagong terminal window o command prompt. Ang mga resulta ng mga eksperimento, paghahanap, at iba pang mga operasyon ay nakaimbak sa landas na ito:

Utos para Simulan ang MLflow Server:

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

Kung, pagkatapos isagawa ang nabanggit na utos, nakita mo ang sumusunod na error, huwag mag-alala; isagawa lamang ang sumusunod na utos upang ayusin ang isyu:

Baguhin ang scheme ng URI upang iimbak ang data ng registry ng modelo sa lokal na file system upang malutas ang error:

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

Hakbang 7: I-access ang MLflow gamit ang Authentication

Ngayon, hihiling ang Nginx ng username at password bago magbigay ng access sa MLflow server at mga artifact nito kapag may nag-access sa MLflow sa pamamagitan ng domain o IP address. Ngayon, para ma-access ang UI at API ng MLflow, kailangan mo munang magbigay ng login username at password kapag gumagamit ng web browser para ma-access ang MLflow.

Konklusyon

Ang pagpapatotoo ng MLflow sa Windows ay nangangailangan ng MLflow na maisagawa sa likod ng isang reverse proxy na naka-on ang pagpapatotoo. Sa pagkakataong ito, ang Nginx ay nagsisilbing reverse proxy, na kumikilos bilang middleman sa pagitan ng browser ng user at ng MLflow server. Ang mga user ay hinihiling na maglagay ng username at password bago i-access ang user interface at API para sa MLflow sa pamamagitan ng pag-configure ng Nginx upang ipatupad ang pangunahing pagpapatunay.

Panghuli ngunit hindi ang pinakamaliit, upang matiyak na sumusunod ka sa pinakabago at secure na mga kasanayan, palaging mahalaga na kumonsulta sa pinakabagong dokumentasyon at mapagkukunan para sa MLflow at Nginx.