Configurando a autenticação MLflow

Configurando A Autenticacao Mlflow



A autenticação deve ser configurada para proteger o acesso às experiências, modelos e artefactos no servidor MLflow. Uma vez habilitado, todo usuário que deseja acessar qualquer recurso hospedado pelo servidor MLflow deve entrar. Como o MLflow não inclui a autenticação integrada por padrão, é necessário configurá-lo para funcionar com um diferente técnica de autenticação.

Como habilitar a autenticação MLflow no servidor

Inicie a UI do MLflow usando o comando subsequente para habilitar a autenticação do MLflow:

servidor mlflow --app-name basic-auth

Ao reiniciar o servidor sem a opção app-name, o administrador do servidor MLflow pode optar por desabilitar esse recurso sempre que desejar. Aqui está uma captura de tela do comando exibido no terminal de linha de comando do sistema operacional Windows (ignore o aviso):









O servidor MLflow agora requer um nome de usuário e senha para acessar os experimentos e artefatos do servidor quando acessado por meio de um navegador, inserindo o http://127.0.0.1:5000 como URL.







Como configurar a autenticação no MLflow

Com algumas pequenas modificações nas instruções, comandos e nomes de arquivos de configuração, configurar a autenticação MLflow no Windows é muito semelhante à configuração no Linux.

Aqui está um tutorial para configurar a autenticação MLflow no Windows usando “htpasswd” e Nginx como proxy reverso. Lembre-se que esta configuração permite autenticação simples e é crucial proteger adequadamente o computador que executa o MLflow e o Nginx para evitar acesso não autorizado. Considere usar o OAuth ou conectar o MLflow a provedores de identidade externos para ambientes de produção ou requisitos de segurança mais rigorosos.



Neste tutorial, abordaremos a configuração da autenticação básica usando “htpasswd” para gerenciamento de usuário/senha e Nginx como proxy reverso.

Etapa 1: instalar o Htpasswd

Embora “htpasswd” não seja um aplicativo nativo do Windows, empregamos aqui uma ferramenta de terceiros conhecida como utilitário htpasswd do Apache Lounge. Faça o download no site oficial do Apache Lounge. Aqui está uma captura de tela demonstrando que temos “htpasswd.exe” no diretório bin do Apache após baixar o arquivo zip e extraí-lo para nosso diretório de trabalho:

Para usar “htpasswd.exe” em qualquer prompt de comando, copie-o agora para um local no PATH do seu sistema na variável de ambiente.

Etapa 2: crie um arquivo de senha

Para gerar o arquivo de senha, abra um prompt de comando e vá para o local apropriado. Use “htpasswd” para criar ou definir um novo arquivo de senha ou para adicionar os usuários a um arquivo atual. Cada linha do arquivo precisa ter um nome de usuário e uma senha criptografados. Use o seguinte comando para adicionar novas credenciais para o usuário ou atualizar a senha de um usuário existente:

htpasswd -c /caminho/para/PASSWORD_FILE_NAME NOME DE USUÁRIO

Vá para a pasta Python (neste caso, o diretório de trabalho) e digite o comando mencionado no terminal ou janela de prompt conforme mostrado no trecho a seguir. O arquivo de senha, mlflow-authfile, é criado.

Após adicionar o nome de usuário “admin” e pressionar a tecla “enter”, o sistema solicita a senha. Após digitar novamente a mesma senha no prompt, o usuário é criado com sucesso e mostra que o usuário foi adicionado com a senha necessária:

Aqui está uma captura de tela mostrando o diretório onde o arquivo de senha necessário é criado:

Um nome de usuário e uma senha criptografada no formato “nome de usuário:senha” devem aparecer em cada linha do arquivo.

Etapa 3: instalar e configurar o Nginx

Obtenha os binários do Nginx para Windows no site oficial. Extraia o arquivo baixado para o diretório de trabalho na pasta Nginx:

Faça um novo bloco de servidor MLFlow no Nginx. Crie o diretório “mlflow-site” abrindo um prompt de comando no diretório Nginx:

É hora de criar um novo arquivo para a configuração do MLflow agora mesmo. Substitua o nome de domínio ou endereço IP do servidor pelo host local. Além disso, usando barras no caminho, substitua D:/Trabalho/Python/mlflow-auth com o caminho exato para o arquivo de senha criado anteriormente. Altere o valor de proxy_pass para o URI do servidor MLflow. As portas são ajustáveis ​​aos números de porta necessários.

Aqui está o trecho do código a ser alterado:

Digite o comando “ipconfig” no prompt de comando para encontrar o endereço IP:

Etapa 4: habilitar o bloco de servidor Nginx

Para ativar o bloco do servidor Nginx, crie um link simbólico usando o seguinte comando no prompt de comando:

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

mklink mlflow D:\Work\nginx\conf\mlflow- site \mlfluxo

Etapa 5: inicie o Nginx

Digite o comando “nginx.exe” e navegue até o diretório Nginx para iniciar o Nginx a partir de um prompt de comando:

Etapa 6: iniciar o servidor MLflow

Com a ajuda do comando a seguir, que inclui o caminho de armazenamento de backend do servidor MLflow, você pode iniciar ou reiniciar o servidor MLflow em uma nova janela de terminal ou prompt de comando. Os resultados de experimentos, pesquisas e outras operações são armazenados neste caminho:

Comando para iniciar o servidor MLflow:

servidor mlflow --host 127.0.0.1 --port 5.000 --backend-store-uri D:/Trabalho/Python/Armazenamento

Se, após executar o comando mencionado, você vir o seguinte erro, não se preocupe; basta executar o seguinte comando para corrigir o problema:

Altere o esquema de URI para armazenar os dados de registro do modelo no sistema de arquivos local para resolver o erro:

servidor mlflow --host 127.0.0.1 --port 5.000 --backend-store-uri arquivo :///D:/Trabalho/Python/Armazenamento

Etapa 7: acesse o MLflow com autenticação

Agora, o Nginx solicitará um nome de usuário e senha antes de conceder acesso ao servidor MLflow e seus artefatos quando alguém acessar o MLflow por meio do domínio ou endereço IP. Agora, para acessar a IU e API do MLflow, você deve primeiro fornecer um nome de usuário e senha de login ao usar um navegador da web para acessar o MLflow.

Conclusão

A autenticação MLflow no Windows exige que o MLflow seja executado por trás de um proxy reverso com a autenticação ativada. Neste caso, o Nginx serve como proxy reverso, atuando como intermediário entre o navegador do usuário e o servidor MLflow. Os usuários são solicitados a inserir um nome de usuário e uma senha antes de acessar a interface do usuário e a API do MLflow, configurando o Nginx para impor a autenticação básica.

Por último, mas não menos importante, para garantir que você está aderindo às práticas mais recentes e seguras, é sempre crucial consultar a documentação e os recursos mais recentes para MLflow e Nginx.