Konfigurera MLflow-autentisering

Konfigurera Mlflow Autentisering



Autentisering måste konfigureras för att säkra åtkomsten till experimenten, modellerna och artefakterna på MLflow-servern. När den har aktiverats måste varje användare som försöker komma åt någon resurs som är värd för MLflow-servern logga in. Eftersom MLflow inte inkluderar den inbyggda autentiseringen som standard, måste den ställas in för att fungera med en annan autentiseringsteknik.

Hur man aktiverar MLflow-autentisering på servern

Starta MLflow UI med efterföljande kommando för att aktivera MLflow-autentisering:

mlflow-server --app-namn basic-auth

Genom att starta om servern utan alternativet appnamn kan MLflow-serveradministratören välja att inaktivera den här funktionen när de vill. Här är en skärmdump av kommandot som det visas på Windows-operativsystemets kommandoradsterminal (ignorera varningen):









MLflow-servern kräver nu ett användarnamn och lösenord för att komma åt serverexperimenten och artefakterna när den nås via en webbläsare genom att ange http://127.0.0.1:5000 som URL.







Hur man ställer in autentisering på MLflow

Med några mindre ändringar i instruktionerna, kommandona och namnen på konfigurationsfilen är inställningen av MLflow-autentiseringen på Windows mycket lik att ställa in den på Linux.

Här är en handledning för att konfigurera MLflow-autentiseringen på Windows med 'htpasswd' och Nginx som en omvänd proxy. Kom ihåg att den här konfigurationen möjliggör enkel autentisering, och det är avgörande att tillräckligt skydda datorn som kör MLflow och Nginx för att undvika obehörig åtkomst. Överväg att använda OAuth eller koppla MLflow till externa identitetsleverantörer för produktionsmiljöer eller strängare säkerhetskrav.



I den här handledningen kommer vi att gå över att ställa in den grundläggande autentiseringen med 'htpasswd' för användar-/lösenordshantering och Nginx som en omvänd proxy.

Steg 1: Installera Htpasswd

Även om 'htpasswd' inte är en inbyggd Windows-applikation, använder vi ett tredjepartsverktyg som är känt som Apache Lounges htpasswd-verktyg här. Ladda ner den från Apache Lounges officiella webbplats. Här är en skärmdump som visar att vi har 'htpasswd.exe' i bin-katalogen i Apache efter att ha laddat ner zip-filen och extraherat den till vår arbetskatalog:

För att använda 'htpasswd.exe' från valfri kommandotolk, kopiera den nu till en plats i ditt systems PATH i miljövariabeln.

Steg 2: Skapa en lösenordsfil

För att skapa lösenordsfilen, öppna en kommandotolk och gå till lämplig plats. Använd 'htpasswd' för att skapa eller ställa in en ny lösenordsfil eller för att lägga till användarna till en befintlig. Varje rad i filen måste ha ett krypterat användarnamn och lösenord. Använd följande kommando för att lägga till nya autentiseringsuppgifter för användaren eller uppdatera lösenordet för en befintlig användare:

htpasswd -c /sökväg/till/PASSWORD_FILE_NAME ANVÄNDARNAMN

Gå till Python-mappen (i det här fallet arbetskatalogen) och skriv det ovannämnda kommandot i terminal- eller promptfönstret som visas i följande utdrag. Lösenordsfilen, mlflow-authfile, skapas.

Efter att ha lagt till 'admin'-användarnamnet och tryckt på 'enter'-tangenten, frågar systemet efter lösenordet. Efter att ha skrivit om samma lösenord på prompten skapas användaren framgångsrikt och det visar att användaren har lagts till med det nödvändiga lösenordet:

Här är en skärmdump som visar katalogen där den nödvändiga lösenordsfilen skapas:

Ett användarnamn och krypterat lösenord i formatet 'användarnamn:lösenord' ska visas på varje rad i filen.

Steg 3: Installera och konfigurera Nginx

Hämta Windows-binärfilerna för Nginx från den officiella webbplatsen. Extrahera den nedladdade filen till arbetskatalogen i Nginx-mappen:

Gör ett nytt MLFlow-serverblock i Nginx. Skapa katalogen 'mlflow-site' genom att öppna en kommandotolk i Nginx-katalogen:

Det är dags att skapa en ny fil för MLflow-konfigurationen just nu. Byt ut serverns domännamn eller IP-adress med den lokala värden. Använd även snedstreck i banan och byt ut D:/Work/Python/mlflow-auth med den exakta sökvägen till lösenordsfilen som tidigare skapats. Ändra värdet för proxy_pass till MLflow-serverns URI. Portarna är justerbara till nödvändiga portnummer.

Här är kodavsnittet som ska ändras:

Ange kommandot 'ipconfig' på kommandotolken för att hitta IP-adressen:

Steg 4: Aktivera Nginx Server Block

För att aktivera Nginx-serverblocket, skapa en symbolisk länk med följande kommando i kommandotolken:

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

mklink mlflow D:\Work\nginx\conf\mlflow- webbplats \mlflöde

Steg 5: Starta Nginx

Ange kommandot 'nginx.exe' och navigera till Nginx-katalogen för att starta Nginx från en kommandotolk:

Steg 6: Starta MLflow Server

Med hjälp av följande kommando, som inkluderar backend-lagringssökvägen för MLflow-servern, kan du starta eller starta om MLflow-servern i ett nytt terminalfönster eller kommandotolk. Resultaten av experiment, sökningar och andra operationer lagras på denna väg:

Kommando för att starta MLflow Server:

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

Om du, efter att ha utfört det ovannämnda kommandot, ser följande fel, oroa dig inte; kör helt enkelt följande kommando för att åtgärda problemet:

Ändra URI-schemat för att lagra modellregisterdata på det lokala filsystemet för att lösa felet:

mlflow server --host 127.0.0.1 --port 5 000 --backend-store-uri fil :///D:/Work/Python/Storage

Steg 7: Få åtkomst till MLflow med autentisering

Nu kommer Nginx att begära ett användarnamn och lösenord innan den beviljar åtkomst till MLflow-servern och dess artefakter när någon kommer åt MLflow via domänen eller IP-adressen. Nu, för att komma åt MLflows UI och API, måste du först ange ett användarnamn och lösenord för inloggning när du använder en webbläsare för att komma åt MLflow.

Slutsats

MLflow-autentisering på Windows kräver att MLflow utförs bakom en omvänd proxy med autentiseringen aktiverad. I det här fallet fungerar Nginx som omvänd proxy och fungerar som en mellanhand mellan användarens webbläsare och MLflow-servern. Användare uppmanas att ange ett användarnamn och lösenord innan de kommer åt användargränssnittet och API för MLflow genom att konfigurera Nginx för att genomdriva den grundläggande autentiseringen.

Sist men inte minst, för att säkerställa att du följer de senaste och säkra metoderna, är det alltid viktigt att konsultera den senaste dokumentationen och resurserna för MLflow och Nginx.