Configurar la autenticación de MLflow

Configurar La Autenticacion De Mlflow



Se debe configurar la autenticación para asegurar el acceso a los experimentos, modelos y artefactos en el servidor MLflow. Una vez habilitado, cada usuario que busque acceder a cualquier recurso alojado en el servidor MLflow debe iniciar sesión. Dado que MLflow no incluye la autenticación incorporada de forma predeterminada, es necesario configurarlo para que funcione con un servidor diferente. Técnica de autenticación.

Cómo habilitar la autenticación MLflow en el servidor

Inicie la interfaz de usuario de MLflow utilizando el siguiente comando para habilitar la autenticación de MLflow:

servidor mlflow --nombre-aplicación autenticación básica

Al reiniciar el servidor sin la opción de nombre de la aplicación, el administrador del servidor MLflow puede optar por desactivar esta función cuando lo desee. Aquí hay una captura de pantalla del comando tal como se muestra en la terminal de línea de comando del sistema operativo Windows (ignore la advertencia):









El servidor MLflow ahora requiere un nombre de usuario y contraseña para acceder a los experimentos y artefactos del servidor cuando se accede a través de un navegador ingresando el http://127.0.0.1:5000 como la URL.







Cómo configurar la autenticación en MLflow

Con algunas modificaciones menores en las instrucciones, comandos y nombres de archivos de configuración, configurar la autenticación MLflow en Windows es muy similar a configurarla en Linux.

Aquí hay un tutorial para configurar la autenticación MLflow en Windows usando 'htpasswd' y Nginx como proxy inverso. Recuerde que esta configuración permite una autenticación simple y es crucial proteger adecuadamente la computadora que ejecuta MLflow y Nginx para evitar un acceso no autorizado. Considere usar OAuth o conectar MLflow con proveedores de identidad externos para entornos de producción o requisitos de seguridad más estrictos.



En este tutorial, repasaremos la configuración de la autenticación básica usando 'htpasswd' para la administración de usuarios/contraseñas y Nginx como proxy inverso.

Paso 1: instale Htpasswd

Aunque 'htpasswd' no es una aplicación nativa de Windows, empleamos una herramienta de terceros que aquí se conoce como utilidad htpasswd de Apache Lounge. Descárgalo del sitio web oficial de Apache Lounge. Aquí hay una captura de pantalla que demuestra que tenemos 'htpasswd.exe' en el directorio bin de Apache después de descargar el archivo zip y extraerlo a nuestro directorio de trabajo:

Para usar 'htpasswd.exe' desde cualquier símbolo del sistema, cópielo ahora a una ubicación en la RUTA de su sistema en la variable de entorno.

Paso 2: cree un archivo de contraseña

Para generar el archivo de contraseña, abra un símbolo del sistema y vaya a la ubicación adecuada. Utilice 'htpasswd' para crear o establecer un nuevo archivo de contraseña o para agregar usuarios a uno actual. Cada línea del archivo debe tener un nombre de usuario y una contraseña cifrados. Utilice el siguiente comando para agregar nuevas credenciales para el usuario o actualizar la contraseña de un usuario existente:

htpasswd -c /ruta/a/CONTRASEÑA_FILE_NAME NOMBRE DE USUARIO

Vaya a la carpeta Python (en este caso, el directorio de trabajo) y escriba el comando antes mencionado en la terminal o ventana de solicitud como se muestra en el siguiente fragmento. Se crea el archivo de contraseña, mlflow-authfile.

Después de agregar el nombre de usuario “admin” y presionar la tecla “enter”, el sistema solicita la contraseña. Después de volver a escribir la misma contraseña en el mensaje, el usuario se crea exitosamente y muestra que el usuario ha sido agregado con la contraseña requerida:

Aquí hay una captura de pantalla que muestra el directorio donde se crea el archivo de contraseña necesario:

En cada línea del archivo debe aparecer un nombre de usuario y una contraseña cifrada en el formato “nombre de usuario:contraseña”.

Paso 3: instalar y configurar Nginx

Obtenga los binarios de Windows de Nginx desde el sitio web oficial. Extraiga el archivo descargado al directorio de trabajo en la carpeta Nginx:

Cree un nuevo bloque de servidor MLFlow en Nginx. Cree el directorio 'mlflow-site' abriendo un símbolo del sistema en el directorio de Nginx:

Es hora de crear un nuevo archivo para la configuración de MLflow ahora mismo. Reemplace el nombre de dominio o la dirección IP del servidor con el host local. Además, utilizando barras diagonales en la ruta, reemplace D:/Trabajo/Python/mlflow-auth con la ruta exacta al archivo de contraseña que se creó previamente. Cambie el valor de proxy_pass al URI del servidor MLflow. Los puertos se pueden ajustar a los números de puerto necesarios.

Aquí está el fragmento de código a cambiar:

Ingrese el comando 'ipconfig' en el símbolo del sistema para encontrar la dirección IP:

Paso 4: habilite el bloque del servidor Nginx

Para activar el bloque del servidor Nginx, cree un enlace simbólico usando el siguiente comando en el símbolo del sistema:

cd D:\Work\nginx\conf\mlflow- sitio

mklink mlflow D:\Work\nginx\conf\mlflow- sitio \mlflujo

Paso 5: inicie Nginx

Ingrese el comando 'nginx.exe' y navegue hasta el directorio de Nginx para iniciar Nginx desde un símbolo del sistema:

Paso 6: inicie el servidor MLflow

Con la ayuda del siguiente comando, que incluye la ruta de almacenamiento backend del servidor MLflow, puede iniciar o reiniciar el servidor MLflow en una nueva ventana de terminal o símbolo del sistema. Los resultados de experimentos, búsquedas y otras operaciones se almacenan en esta ruta:

Comando para iniciar el servidor MLflow:

servidor mlflow --host 127.0.0.1 --puerto 5000 --backend-store-uri D:/Trabajo/Python/Almacenamiento

Si luego de ejecutar el comando antes mencionado, ves el siguiente error, no te preocupes; simplemente ejecute el siguiente comando para solucionar el problema:

Cambie el esquema de URI para almacenar los datos del registro del modelo en el sistema de archivos local para resolver el error:

servidor mlflow --host 127.0.0.1 --puerto 5000 --backend-store-uri archivo :///D:/Trabajo/Python/Almacenamiento

Paso 7: acceda a MLflow con autenticación

Ahora, Nginx solicitará un nombre de usuario y contraseña antes de otorgar acceso al servidor MLflow y sus artefactos cuando alguien acceda a MLflow a través del dominio o dirección IP. Ahora, para acceder a la interfaz de usuario y a la API de MLflow, primero debe proporcionar un nombre de usuario y una contraseña de inicio de sesión cuando utilice un navegador web para acceder a MLflow.

Conclusión

La autenticación de MLflow en Windows requiere que MLflow se realice detrás de un proxy inverso con la autenticación activada. En este caso, Nginx actúa como proxy inverso, actuando como intermediario entre el navegador del usuario y el servidor MLflow. Se solicita a los usuarios que ingresen un nombre de usuario y una contraseña antes de acceder a la interfaz de usuario y a la API de MLflow configurando Nginx para aplicar la autenticación básica.

Por último, pero no menos importante, para asegurarse de cumplir con las prácticas más recientes y seguras, siempre es fundamental consultar la documentación y los recursos más recientes para MLflow y Nginx.