MLflow autentifikavimo nustatymas

Mlflow Autentifikavimo Nustatymas



Autentifikavimas turi būti sukonfigūruotas, kad būtų užtikrinta prieiga prie eksperimentų, modelių ir artefaktų MLflow serveryje. Įjungus, kiekvienas vartotojas, norintis pasiekti bet kokius išteklius, kuriuos priglobia MLflow serveris, turi prisijungti. Kadangi MLflow pagal numatytuosius nustatymus neapima integruoto autentifikavimo, jį reikia nustatyti, kad jis veiktų su kitu autentifikavimo technika.

Kaip įjungti MLflow autentifikavimą serveryje

Paleiskite MLflow vartotojo sąsają naudodami paskesnę komandą, kad įgalintumėte MLflow autentifikavimą:

mlflow serveris --programos pavadinimas basic-auth

Iš naujo paleisdamas serverį be programos pavadinimo parinkties, MLflow serverio administratorius gali pasirinkti išjungti šią funkciją, kai tik nori. Čia yra komandos ekrano kopija, kaip ji rodoma „Windows“ operacinės sistemos komandų eilutės terminale (nepaisykite įspėjimo):









MLflow serveriui dabar reikia vartotojo vardo ir slaptažodžio, kad būtų galima pasiekti serverio eksperimentus ir artefaktus, kai pasiekiama per naršyklę įvedant http://127.0.0.1:5000 kaip URL.







Kaip nustatyti autentifikavimą naudojant MLflow

Atlikus keletą nedidelių instrukcijų, komandų ir konfigūracijos failų pavadinimų pakeitimų, MLflow autentifikavimo nustatymas sistemoje „Windows“ yra labai panašus į jo nustatymą sistemoje „Linux“.

Čia yra pamoka, kaip sukonfigūruoti MLflow autentifikavimą sistemoje „Windows“, naudojant „htpasswd“ ir „Nginx“ kaip atvirkštinį tarpinį serverį. Atminkite, kad ši konfigūracija įgalina paprastą autentifikavimą, todėl labai svarbu tinkamai apsaugoti kompiuterį, kuriame veikia MLflow ir Nginx, kad būtų išvengta neteisėtos prieigos. Apsvarstykite galimybę naudoti „OAuth“ arba prijungti MLflow su išoriniais tapatybės teikėjais gamybos aplinkoms arba griežtesniems saugos reikalavimams.



Šiame vadove apžvelgsime pagrindinio autentifikavimo nustatymą naudodami „htpasswd“ vartotojo / slaptažodžio valdymui ir „Nginx“ kaip atvirkštinį tarpinį serverį.

1 veiksmas: įdiekite „Htpasswd“.

Nors „htpasswd“ nėra vietinė „Windows“ programa, mes naudojame trečiosios šalies įrankį, kuris čia žinomas kaip „Apache Lounge“ htpasswd įrankis. Atsisiųskite jį iš oficialios „Apache Lounge“ svetainės. Čia yra ekrano kopija, rodanti, kad atsisiuntę zip failą ir ištraukę jį į savo darbo katalogą, Apache šiukšliadėžės kataloge turime „htpasswd.exe“:

Norėdami naudoti „htpasswd.exe“ iš bet kurios komandinės eilutės, nukopijuokite jį dabar į savo sistemos PATH vietą aplinkos kintamajame.

2 veiksmas: sukurkite slaptažodžio failą

Norėdami sugeneruoti slaptažodžio failą, atidarykite komandų eilutę ir eikite į atitinkamą vietą. Naudokite „htpasswd“, kad sukurtumėte arba nustatytumėte naują slaptažodžio failą arba pridėtumėte vartotojus prie esamo. Kiekviena failo eilutė turi turėti užšifruotą vartotojo vardą ir slaptažodį. Norėdami pridėti naujų vartotojo kredencialų arba atnaujinti esamo vartotojo slaptažodį, naudokite šią komandą:

htpasswd -c /kelias/į/PASSWORD_FILE_NAME VARTOTOJO VARDAS

Eikite į „Python“ aplanką (šiuo atveju į darbo katalogą) ir terminalo arba eilutės lange įveskite pirmiau minėtą komandą, kaip parodyta toliau pateiktame fragmente. Sukuriamas slaptažodžio failas mlflow-authfile.

Pridėjus „admin“ vartotojo vardą ir paspaudus „enter“ klavišą, sistema paprašys slaptažodžio. Pakartotinai įvedus tą patį slaptažodį ragelyje, vartotojas sėkmingai sukuriamas ir rodoma, kad vartotojas buvo pridėtas su reikiamu slaptažodžiu:

Čia yra ekrano kopija, kurioje rodomas katalogas, kuriame sukuriamas reikalingas slaptažodžio failas:

Kiekvienoje failo eilutėje turėtų būti naudotojo vardas ir užšifruotas slaptažodis formatu „vartotojo vardas: slaptažodis“.

3 veiksmas: įdiekite ir sukonfigūruokite „Nginx“.

Gaukite Nginx „Windows“ dvejetainius failus iš oficialios svetainės. Ištraukite atsisiųstą failą į darbinį katalogą Nginx aplanke:

Sukurkite naują „MLFlow“ serverio bloką „Nginx“. Sukurkite „mlflow-site“ katalogą atidarydami komandų eilutę Nginx kataloge:

Šiuo metu laikas sukurti naują MLflow konfigūracijos failą. Pakeiskite serverio domeno pavadinimą arba IP adresą į localhost. Be to, kelyje naudodami į priekį pasviruosius brūkšnius, pakeiskite D:/Work/Python/mlflow-auth su tiksliu keliu į anksčiau sukurtą slaptažodžio failą. Pakeiskite proxy_pass reikšmę į MLflow serverio URI. Prievadai yra reguliuojami pagal reikiamus prievadų numerius.

Štai kodo fragmentas, kurį reikia pakeisti:

Įveskite komandą „ipconfig“ komandų eilutėje, kad surastumėte IP adresą:

4 veiksmas: įgalinkite „Nginx“ serverio bloką

Norėdami suaktyvinti Nginx serverio bloką, sukurkite simbolinę nuorodą naudodami šią komandą komandų eilutėje:

cd D:\Work\nginx\conf\mlflow- svetainę

mklink mlflow D:\Work\nginx\conf\mlflow- svetainę \mlflow

5 veiksmas: paleiskite Nginx

Įveskite komandą „nginx.exe“ ir eikite į „Nginx“ katalogą, kad paleistumėte „Nginx“ iš komandų eilutės:

6 veiksmas: paleiskite MLflow serverį

Naudodami šią komandą, kuri apima MLflow serverio užpakalinės dalies saugojimo kelią, galite paleisti arba iš naujo paleisti MLflow serverį naujame terminalo lange arba komandų eilutėje. Eksperimentų, paieškų ir kitų operacijų rezultatai saugomi šiame kelyje:

Komanda paleisti MLflow serverį:

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

Jei įvykdę pirmiau minėtą komandą matote šią klaidą, nesijaudinkite; tiesiog paleiskite šią komandą, kad išspręstumėte problemą:

Pakeiskite URI schemą, kad modelio registro duomenys būtų saugomi vietinėje failų sistemoje, kad išspręstumėte klaidą:

mlflow serveris --host 127.0.0.1 --port 5000 --backend-store-uri failą :///D:/Work/Python/Storage

7 veiksmas: pasiekite MLflow naudodami autentifikavimą

Dabar „Nginx“ paprašys vartotojo vardo ir slaptažodžio prieš suteikdama prieigą prie MLflow serverio ir jo artefaktų, kai kas nors prisijungs prie MLflow per domeną arba IP adresą. Dabar, norėdami pasiekti MLflow vartotojo sąsają ir API, pirmiausia turite pateikti prisijungimo vardą ir slaptažodį, kai naudojate žiniatinklio naršyklę, kad pasiektumėte MLflow.

Išvada

MLflow autentifikavimas sistemoje Windows reikalauja, kad MLflow būtų atliktas naudojant atvirkštinį tarpinį serverį, kai autentifikavimas įjungtas. Šiuo atveju Nginx veikia kaip atvirkštinis tarpinis serveris, tarpininkas tarp vartotojo naršyklės ir MLflow serverio. Vartotojų prašoma įvesti vartotojo vardą ir slaptažodį prieš prisijungdami prie vartotojo sąsajos ir API, skirtą MLflow, sukonfigūruojant Nginx, kad būtų užtikrintas pagrindinis autentifikavimas.

Paskutinis, bet ne mažiau svarbus dalykas – norint užtikrinti, kad laikotės naujausios ir saugios praktikos, visada labai svarbu peržiūrėti naujausią MLflow ir Nginx dokumentaciją ir išteklius.