De MLflow-authenticatie instellen

De Mlflow Authenticatie Instellen



Verificatie moet worden geconfigureerd om de toegang tot de experimenten, modellen en artefacten op de MLflow-server te beveiligen. Eenmaal ingeschakeld, moet elke gebruiker die toegang wil krijgen tot een bron die wordt gehost door de MLflow-server, inloggen. Omdat MLflow standaard geen ingebouwde authenticatie bevat, is het nodig om het in te stellen om met een andere te werken authenticatie techniek.

Hoe u de MLflow-authenticatie op de server inschakelt

Start de MLflow-gebruikersinterface met behulp van de volgende opdracht om de MLflow-authenticatie in te schakelen:

mlflow server --app-naam basic-auth

Door de server opnieuw op te starten zonder de optie app-naam, kan de MLflow-serverbeheerder ervoor kiezen deze functie uit te schakelen wanneer hij maar wil. Hier is een screenshot van de opdracht zoals deze wordt weergegeven op de opdrachtregelterminal van het Windows-besturingssysteem (negeer de waarschuwing):









De MLflow-server heeft nu een gebruikersnaam en wachtwoord nodig om toegang te krijgen tot de serverexperimenten en artefacten wanneer deze via een browser worden geopend door het invoeren van de http://127.0.0.1:5000 als de URL.







Hoe u authenticatie instelt op MLflow

Met een paar kleine wijzigingen in de instructies, opdrachten en configuratiebestandsnamen lijkt het instellen van de MLflow-authenticatie op Windows sterk op het instellen ervan op Linux.

Hier is een tutorial voor het configureren van de MLflow-authenticatie op Windows met behulp van de “htpasswd” en Nginx als een omgekeerde proxy. Houd er rekening mee dat deze configuratie eenvoudige authenticatie mogelijk maakt, en dat het van cruciaal belang is om de computer waarop de MLflow en Nginx draait adequaat te beschermen om ongeoorloofde toegang te voorkomen. Overweeg het gebruik van OAuth of het verbinden van MLflow met externe identiteitsproviders voor productieomgevingen of strengere beveiligingsvereisten.



In deze tutorial bespreken we het instellen van de basisauthenticatie met behulp van “htpasswd” voor gebruikers-/wachtwoordbeheer en Nginx als een omgekeerde proxy.

Stap 1: Installeer Htpasswd

Hoewel “htpasswd” geen native Windows-applicatie is, gebruiken we hier een tool van derden die bekend staat als het htpasswd-hulpprogramma van Apache Lounge. Download het van de officiële website van Apache Lounge. Hier is een screenshot die aantoont dat we “htpasswd.exe” in de bin-map van Apache hebben nadat we het zip-bestand hebben gedownload en naar onze werkmap hebben uitgepakt:

Om “htpasswd.exe” vanaf elke opdrachtprompt te gebruiken, kopieert u het nu naar een locatie in de PATH in de omgevingsvariabele van uw systeem.

Stap 2: Maak een wachtwoordbestand

Om het wachtwoordbestand te genereren, opent u een opdrachtprompt en gaat u naar de juiste locatie. Gebruik “htpasswd” om een ​​nieuw wachtwoordbestand te maken of in te stellen of om de gebruikers aan een bestaand wachtwoord toe te voegen. Elke regel in het bestand moet een gecodeerde gebruikersnaam en wachtwoord hebben. Gebruik de volgende opdracht om nieuwe referenties voor de gebruiker toe te voegen of het wachtwoord van een bestaande gebruiker bij te werken:

htpasswd -c /pad/naar/PASSWORD_FILE_NAME GEBRUIKERSNAAM

Ga naar de Python-map (in dit geval de werkmap) en typ de bovengenoemde opdracht in het terminal- of promptvenster, zoals weergegeven in het volgende fragment. Het wachtwoordbestand, mlflow-authfile, wordt gemaakt.

Nadat u de gebruikersnaam “admin” hebt toegevoegd en op de “enter”-toets hebt gedrukt, vraagt ​​het systeem om het wachtwoord. Nadat u hetzelfde wachtwoord opnieuw hebt getypt op de prompt, is de gebruiker succesvol aangemaakt en wordt aangegeven dat de gebruiker is toegevoegd met het vereiste wachtwoord:

Hier is een schermafbeelding die de map toont waar het benodigde wachtwoordbestand is gemaakt:

Op elke regel van het bestand moeten een gebruikersnaam en een gecodeerd wachtwoord in het formaat “gebruikersnaam:wachtwoord” verschijnen.

Stap 3: Nginx installeren en configureren

Download de Windows-binaire bestanden van Nginx van de officiële website. Pak het gedownloade bestand uit naar de werkmap in de Nginx-map:

Maak een nieuw MLFlow-serverblok in Nginx. Maak de map “mlflow-site” door een opdrachtprompt te openen in de Nginx-map:

Het is nu tijd om een ​​nieuw bestand voor de MLflow-configuratie te maken. Vervang de domeinnaam of het IP-adres van de server door de localhost. Vervang ook met behulp van schuine strepen in het pad D:/Work/Python/mlflow-auth met het exacte pad naar het wachtwoordbestand dat eerder is gemaakt. Wijzig de waarde van proxy_pass in de URI van de MLflow-server. De poorten zijn instelbaar op de benodigde poortnummers.

Hier is het codefragment dat moet worden gewijzigd:

Voer de opdracht “ipconfig” in op de opdrachtprompt om het IP-adres te vinden:

Stap 4: Schakel het Nginx-serverblok in

Om het Nginx-serverblok te activeren, maakt u een symbolische link met behulp van de volgende opdracht op de opdrachtprompt:

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

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

Stap 5: Start Nginx

Voer de opdracht “nginx.exe” in en navigeer naar de Nginx-map om Nginx te starten vanaf een opdrachtprompt:

Stap 6: Start de MLflow-server

Met behulp van de volgende opdracht, die het backend-opslagpad van de MLflow-server bevat, kunt u de MLflow-server starten of opnieuw opstarten in een nieuw terminalvenster of opdrachtprompt. De resultaten van experimenten, zoekopdrachten en andere bewerkingen worden op dit pad opgeslagen:

Commando om de MLflow-server te starten:

mlflow-server --host 127.0.0.1 --poort 5000 --backend-store-uri D:/Werk/Python/Opslag

Als u na het uitvoeren van de bovengenoemde opdracht de volgende foutmelding ziet, hoeft u zich geen zorgen te maken; voer eenvoudig de volgende opdracht uit om het probleem op te lossen:

Wijzig het URI-schema om de modelregistergegevens op het lokale bestandssysteem op te slaan om de fout op te lossen:

mlflow-server --host 127.0.0.1 --poort 5000 --backend-store-uri bestand :///D:/Werk/Python/Opslag

Stap 7: Toegang tot MLflow met authenticatie

Nu zal Nginx om een ​​gebruikersnaam en wachtwoord vragen voordat hij toegang verleent tot de MLflow-server en zijn artefacten wanneer iemand toegang krijgt tot MLflow via het domein of het IP-adres. Om toegang te krijgen tot de gebruikersinterface en API van MLflow, moet u eerst een gebruikersnaam en wachtwoord opgeven wanneer u een webbrowser gebruikt om toegang te krijgen tot MLflow.

Conclusie

MLflow-authenticatie op Windows vereist dat MLflow wordt uitgevoerd achter een reverse proxy terwijl de authenticatie is ingeschakeld. In dit geval fungeert Nginx als de omgekeerde proxy en fungeert als tussenpersoon tussen de browser van de gebruiker en de MLflow-server. Gebruikers worden verzocht een gebruikersnaam en wachtwoord in te voeren voordat ze toegang krijgen tot de gebruikersinterface en API voor MLflow door Nginx te configureren om de basisauthenticatie af te dwingen.

Last but not least: om ervoor te zorgen dat u zich aan de meest recente en veilige praktijken houdt, is het altijd van cruciaal belang om de meest recente documentatie en bronnen voor MLflow en Nginx te raadplegen.