Configurazione dell'autenticazione MLflow

Configurazione Dell Autenticazione Mlflow



L'autenticazione deve essere configurata per proteggere l'accesso a esperimenti, modelli e artefatti sul server MLflow. Una volta abilitato, ogni utente che tenta di accedere a qualsiasi risorsa ospitata dal server MLflow deve effettuare l'accesso. Poiché MLflow non include l'autenticazione integrata per impostazione predefinita, è necessario configurarla per funzionare con un'autenticazione diversa tecnica di autenticazione.

Come abilitare l'autenticazione MLflow sul server

Avvia l'interfaccia utente MLflow utilizzando il comando successivo per abilitare l'autenticazione MLflow:

mlflow server --nome-app basic-auth

Riavviando il server senza l'opzione nome-app, l'amministratore del server MLflow può scegliere di disabilitare questa funzionalità ogni volta che lo desidera. Ecco uno screenshot del comando così come viene visualizzato sul terminale della riga di comando del sistema operativo Windows (ignora l'avviso):









Il server MLflow ora richiede un nome utente e una password per accedere agli esperimenti e agli artefatti del server quando si accede tramite un browser inserendo il http://127.0.0.1:5000 come URL.







Come impostare l'autenticazione su MLflow

Con alcune piccole modifiche alle istruzioni, ai comandi e ai nomi dei file di configurazione, la configurazione dell'autenticazione MLflow su Windows è molto simile alla configurazione su Linux.

Ecco un tutorial per configurare l'autenticazione MLflow su Windows utilizzando 'htpasswd' e Nginx come proxy inverso. Ricorda che questa configurazione consente un'autenticazione semplice ed è fondamentale proteggere adeguatamente il computer che esegue MLflow e Nginx per evitare accessi non autorizzati. Prendi in considerazione l'utilizzo di OAuth o la connessione di MLflow con provider di identità esterni per ambienti di produzione o requisiti di sicurezza più rigorosi.



In questo tutorial, esamineremo la configurazione dell'autenticazione di base utilizzando 'htpasswd' per la gestione di utenti/password e Nginx come proxy inverso.

Passaggio 1: installare Htpasswd

Sebbene 'htpasswd' non sia un'applicazione nativa di Windows, qui utilizziamo uno strumento di terze parti noto come utility htpasswd di Apache Lounge. Scaricalo dal sito ufficiale di Apache Lounge. Ecco uno screenshot che dimostra che abbiamo 'htpasswd.exe' nella directory bin di Apache dopo aver scaricato il file zip ed averlo estratto nella nostra directory di lavoro:

Per utilizzare 'htpasswd.exe' da qualsiasi prompt dei comandi, copialo ora in una posizione nel PATH del tuo sistema nella variabile d'ambiente.

Passaggio 2: crea un file di password

Per generare il file della password, apri un prompt dei comandi e vai alla posizione appropriata. Utilizzare 'htpasswd' per creare o impostare un nuovo file di password o per aggiungere gli utenti a uno presente. Ogni riga nel file deve avere un nome utente e una password crittografati. Utilizzare il comando seguente per aggiungere nuove credenziali per l'utente o aggiornare la password di un utente esistente:

htpasswd -c /percorso/del/PASSWORD_FILE_NAME NOMEUTENTE

Vai alla cartella Python (in questo caso, la directory di lavoro) e digita il comando sopra menzionato nel terminale o nella finestra del prompt come mostrato nel seguente frammento. Viene creato il file delle password, mlflow-authfile.

Dopo aver aggiunto il nome utente 'admin' e premuto il tasto 'invio', il sistema richiede la password. Dopo aver digitato nuovamente la stessa password nel prompt, l'utente viene creato correttamente e viene visualizzato che l'utente è stato aggiunto con la password richiesta:

Ecco uno screenshot che mostra la directory in cui viene creato il file della password necessaria:

Su ogni riga del file dovrebbero essere visualizzati un nome utente e una password crittografata nel formato 'nome utente: password'.

Passaggio 3: installa e configura Nginx

Ottieni i binari Windows di Nginx dal sito ufficiale. Estrai il file scaricato nella directory di lavoro nella cartella Nginx:

Crea un nuovo blocco server MLFlow in Nginx. Crea la directory “mlflow-site” aprendo un prompt dei comandi nella directory Nginx:

È ora di creare subito un nuovo file per la configurazione di MLflow. Sostituisci il nome di dominio o l'indirizzo IP del server con localhost. Inoltre, utilizzando le barre nel percorso, sostituisci D:/Lavoro/Python/mlflow-auth con il percorso esatto del file di password creato in precedenza. Modificare il valore di proxy_pass nell'URI del server MLflow. Le porte sono regolabili in base ai numeri di porta necessari.

Ecco lo snippet di codice da modificare:

Immettere il comando 'ipconfig' nel prompt dei comandi per trovare l'indirizzo IP:

Passaggio 4: abilita il blocco server Nginx

Per attivare il blocco del server Nginx, creare un collegamento simbolico utilizzando il seguente comando nel prompt dei comandi:

CD D:\Lavoro\nginx\conf\mlflow- luogo

mklink mlflow D:\Lavoro\nginx\conf\mlflow- luogo \mlflusso

Passaggio 5: avvia Nginx

Inserisci il comando 'nginx.exe' e vai alla directory Nginx per avviare Nginx da un prompt dei comandi:

Passaggio 6: avviare il server MLflow

Con l'aiuto del seguente comando, che include il percorso di archiviazione backend del server MLflow, è possibile avviare o riavviare il server MLflow in una nuova finestra di terminale o prompt dei comandi. I risultati di esperimenti, ricerche e altre operazioni vengono archiviati in questo percorso:

Comando per avviare il server MLflow:

server mlflow --host 127.0.0.1 --port 5000 --backend-store-uri D:/Lavoro/Python/Archiviazione

Se, dopo aver eseguito il suddetto comando, visualizzi il seguente errore, non preoccuparti; è sufficiente eseguire il seguente comando per risolvere il problema:

Modificare lo schema URI per archiviare i dati del registro del modello nel file system locale per risolvere l'errore:

server mlflow --host 127.0.0.1 --port 5000 --backend-store-uri file :///D:/Lavoro/Python/Archiviazione

Passaggio 7: accedi a MLflow con l'autenticazione

Ora, Nginx richiederà un nome utente e una password prima di concedere l'accesso al server MLflow e ai suoi artefatti quando qualcuno accede a MLflow tramite il dominio o l'indirizzo IP. Ora, per accedere all'interfaccia utente e all'API di MLflow, devi prima fornire un nome utente e una password di accesso quando utilizzi un browser Web per accedere a MLflow.

Conclusione

L'autenticazione MLflow su Windows richiede che MLflow venga eseguito dietro un proxy inverso con l'autenticazione attivata. In questo caso, Nginx funge da proxy inverso, agendo da intermediario tra il browser dell’utente e il server MLflow. Agli utenti viene richiesto di inserire un nome utente e una password prima di accedere all'interfaccia utente e all'API per MLflow configurando Nginx per applicare l'autenticazione di base.

Ultimo ma non meno importante, per garantire di aderire alle pratiche più recenti e sicure, è sempre fondamentale consultare la documentazione e le risorse più recenti per MLflow e Nginx.