Einrichten der MLflow-Authentifizierung

Einrichten Der Mlflow Authentifizierung



Die Authentifizierung muss konfiguriert werden, um den Zugriff auf die Experimente, Modelle und Artefakte auf dem MLflow-Server zu sichern. Nach der Aktivierung muss sich jeder Benutzer anmelden, der auf eine vom MLflow-Server gehostete Ressource zugreifen möchte. Da MLflow standardmäßig nicht über die integrierte Authentifizierung verfügt, muss sie für die Verwendung mit einer anderen Authentifizierung eingerichtet werden Authentifizierungstechnik.

So aktivieren Sie die MLflow-Authentifizierung auf dem Server

Starten Sie die MLflow-Benutzeroberfläche mit dem folgenden Befehl, um die MLflow-Authentifizierung zu aktivieren:

mlflow-Server --app-name basic-auth

Durch einen Neustart des Servers ohne die Option „app-name“ kann der MLflow-Serveradministrator diese Funktion jederzeit deaktivieren. Hier ist ein Screenshot des Befehls, wie er auf dem Befehlszeilenterminal des Windows-Betriebssystems angezeigt wird (ignorieren Sie die Warnung):









Der MLflow-Server benötigt jetzt einen Benutzernamen und ein Passwort, um auf die Serverexperimente und Artefakte zuzugreifen, wenn er über einen Browser durch Eingabe von aufgerufen wird http://127.0.0.1:5000 als URL.







So richten Sie die Authentifizierung auf MLflow ein

Mit ein paar geringfügigen Änderungen an den Anweisungen, Befehlen und Konfigurationsdateinamen ist die Einrichtung der MLflow-Authentifizierung unter Windows der Einrichtung unter Linux sehr ähnlich.

Hier ist ein Tutorial zum Konfigurieren der MLflow-Authentifizierung unter Windows mit „htpasswd“ und Nginx als Reverse-Proxy. Denken Sie daran, dass diese Konfiguration eine einfache Authentifizierung ermöglicht und es wichtig ist, den Computer, auf dem MLflow und Nginx ausgeführt werden, angemessen zu schützen, um einen unbefugten Zugriff zu verhindern. Erwägen Sie die Verwendung von OAuth oder die Verbindung von MLflow mit externen Identitätsanbietern für Produktionsumgebungen oder strengere Sicherheitsanforderungen.



In diesem Tutorial gehen wir auf die Einrichtung der Basisauthentifizierung mit „htpasswd“ für die Benutzer-/Passwortverwaltung und Nginx als Reverse-Proxy ein.

Schritt 1: Installieren Sie Htpasswd

Obwohl es sich bei „htpasswd“ nicht um eine native Windows-Anwendung handelt, verwenden wir ein Drittanbieter-Tool, das hier als htpasswd-Dienstprogramm von Apache Lounge bekannt ist. Laden Sie es von der offiziellen Website von Apache Lounge herunter. Hier ist ein Screenshot, der zeigt, dass wir „htpasswd.exe“ im bin-Verzeichnis von Apache haben, nachdem wir die ZIP-Datei heruntergeladen und in unser Arbeitsverzeichnis extrahiert haben:

Um „htpasswd.exe“ von einer beliebigen Eingabeaufforderung aus zu verwenden, kopieren Sie es jetzt an einen Speicherort im PATH Ihres Systems in der Umgebungsvariablen.

Schritt 2: Erstellen Sie eine Passwortdatei

Um die Passwortdatei zu generieren, öffnen Sie eine Eingabeaufforderung und gehen Sie zum entsprechenden Speicherort. Verwenden Sie „htpasswd“, um eine neue Passwortdatei zu erstellen oder festzulegen oder die Benutzer zu einer bestehenden hinzuzufügen. Jede Zeile in der Datei muss einen verschlüsselten Benutzernamen und ein Passwort enthalten. Verwenden Sie den folgenden Befehl, um neue Anmeldeinformationen für den Benutzer hinzuzufügen oder das Kennwort eines vorhandenen Benutzers zu aktualisieren:

htpasswd -c /path/to/PASSWORD_FILE_NAME BENUTZERNAME

Gehen Sie zum Python-Ordner (in diesem Fall das Arbeitsverzeichnis) und geben Sie den oben genannten Befehl in das Terminal- oder Eingabeaufforderungsfenster ein, wie im folgenden Codeausschnitt gezeigt. Die Passwortdatei mlflow-authfile wird erstellt.

Nach dem Hinzufügen des Benutzernamens „admin“ und dem Drücken der „Enter“-Taste fragt das System nach dem Passwort. Nachdem Sie an der Eingabeaufforderung dasselbe Passwort erneut eingegeben haben, wurde der Benutzer erfolgreich erstellt und es wird angezeigt, dass der Benutzer mit dem erforderlichen Passwort hinzugefügt wurde:

Hier ist ein Screenshot, der das Verzeichnis zeigt, in dem die erforderliche Passwortdatei erstellt wird:

In jeder Zeile der Datei sollten ein Benutzername und ein verschlüsseltes Passwort im Format „Benutzername:Passwort“ erscheinen.

Schritt 3: Nginx installieren und konfigurieren

Holen Sie sich die Windows-Binärdateien von Nginx von der offiziellen Website. Extrahieren Sie die heruntergeladene Datei in das Arbeitsverzeichnis im Nginx-Ordner:

Erstellen Sie einen neuen MLFlow-Serverblock in Nginx. Erstellen Sie das Verzeichnis „mlflow-site“, indem Sie eine Eingabeaufforderung im Nginx-Verzeichnis öffnen:

Es ist jetzt an der Zeit, eine neue Datei für die MLflow-Konfiguration zu erstellen. Ersetzen Sie den Domänennamen oder die IP-Adresse des Servers durch „localhost“. Ersetzen Sie außerdem durch Schrägstriche im Pfad D:/Work/Python/mlflow-auth mit dem genauen Pfad zur zuvor erstellten Passwortdatei. Ändern Sie den Wert von „proxy_pass“ in den URI des MLflow-Servers. Die Ports sind auf die benötigten Portnummern anpassbar.

Hier ist der Ausschnitt des zu ändernden Codes:

Geben Sie an der Eingabeaufforderung den Befehl „ipconfig“ ein, um die IP-Adresse zu finden:

Schritt 4: Aktivieren Sie den Nginx-Serverblock

Um den Nginx-Serverblock zu aktivieren, erstellen Sie einen symbolischen Link mit dem folgenden Befehl an der Eingabeaufforderung:

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

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

Schritt 5: Starten Sie Nginx

Geben Sie den Befehl „nginx.exe“ ein und navigieren Sie zum Nginx-Verzeichnis, um Nginx über eine Eingabeaufforderung zu starten:

Schritt 6: Starten Sie den MLflow-Server

Mit Hilfe des folgenden Befehls, der den Backend-Speicherpfad des MLflow-Servers enthält, können Sie den MLflow-Server in einem neuen Terminalfenster oder einer neuen Eingabeaufforderung starten oder neu starten. Die Ergebnisse von Experimenten, Suchen und anderen Vorgängen werden in diesem Pfad gespeichert:

Befehl zum Starten des MLflow-Servers:

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

Machen Sie sich keine Sorgen, wenn nach der Ausführung des oben genannten Befehls die folgende Fehlermeldung angezeigt wird. Führen Sie einfach den folgenden Befehl aus, um das Problem zu beheben:

Ändern Sie das URI-Schema, um die Modellregistrierungsdaten im lokalen Dateisystem zu speichern, um den Fehler zu beheben:

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

Schritt 7: Greifen Sie mit Authentifizierung auf MLflow zu

Jetzt fordert Nginx einen Benutzernamen und ein Passwort an, bevor es Zugriff auf den MLflow-Server und seine Artefakte gewährt, wenn jemand über die Domäne oder IP-Adresse auf MLflow zugreift. Um nun auf die Benutzeroberfläche und API von MLflow zuzugreifen, müssen Sie zunächst einen Login-Benutzernamen und ein Passwort angeben, wenn Sie einen Webbrowser für den Zugriff auf MLflow verwenden.

Abschluss

Für die MLflow-Authentifizierung unter Windows muss MLflow hinter einem Reverse-Proxy mit aktivierter Authentifizierung ausgeführt werden. In diesem Fall fungiert Nginx als Reverse-Proxy und fungiert als Vermittler zwischen dem Browser des Benutzers und dem MLflow-Server. Benutzer werden aufgefordert, einen Benutzernamen und ein Passwort einzugeben, bevor sie auf die Benutzeroberfläche und API für MLflow zugreifen, indem sie Nginx so konfigurieren, dass die Basisauthentifizierung erzwungen wird.

Um sicherzustellen, dass Sie die neuesten und sichersten Praktiken einhalten, ist es nicht zuletzt wichtig, immer die neuesten Dokumentationen und Ressourcen für MLflow und Nginx zu konsultieren.