Sunucuda MLflow Kimlik Doğrulaması Nasıl Etkinleştirilir?
MLflow kimlik doğrulamasını etkinleştirmek için sonraki komutu kullanarak MLflow kullanıcı arayüzünü başlatın:
mlflow sunucusu --app-name temel kimlik doğrulamasıMLflow sunucu yöneticisi, uygulama adı seçeneği olmadan sunucuyu yeniden başlatarak bu özelliği dilediği zaman devre dışı bırakmayı seçebilir. Aşağıda, Windows işletim sisteminin komut satırı terminalinde görüntülenen komutun ekran görüntüsü verilmiştir (uyarıyı dikkate almayın):
MLflow sunucusu artık bir tarayıcı aracılığıyla erişildiğinde sunucu deneylerine ve yapıtlarına erişmek için bir kullanıcı adı ve parola gerektirir. http://127.0.0.1:5000 URL olarak.
MLflow'ta Kimlik Doğrulaması Nasıl Kurulur
Talimatlarda, komutlarda ve yapılandırma dosyası adlarında yapılan birkaç küçük değişiklikle, Windows'ta MLflow kimlik doğrulamasını ayarlamak, Linux'ta kurmaya çok benzer.
Burada “htpasswd” ve Nginx'i ters proxy olarak kullanarak Windows'ta MLflow kimlik doğrulamasını yapılandırmaya yönelik bir eğitim bulunmaktadır. Bu yapılandırmanın basit kimlik doğrulamaya olanak sağladığını ve yetkisiz erişimi önlemek için MLflow ve Nginx'i çalıştıran bilgisayarı yeterince korumanın çok önemli olduğunu unutmayın. Üretim ortamları veya daha katı güvenlik gereksinimleri için OAuth kullanmayı veya MLflow'u harici kimlik sağlayıcılara bağlamayı düşünün.
Bu eğitimde, kullanıcı/şifre yönetimi için “htpasswd” ve ters proxy olarak Nginx kullanarak temel kimlik doğrulamayı ayarlamayı ele alacağız.
Adım 1: Htpasswd'yi yükleyin
Her ne kadar “htpasswd” yerel bir Windows uygulaması olmasa da, burada Apache Lounge'ın htpasswd yardımcı programı olarak bilinen üçüncü taraf bir araç kullanıyoruz. Apache Lounge'un resmi web sitesinden indirin. Zip dosyasını indirip çalışma dizinimize çıkardıktan sonra Apache'nin bin dizininde “htpasswd.exe” bulunduğunu gösteren ekran görüntüsü:
Herhangi bir komut isteminden “htpasswd.exe”yi kullanmak için, onu şimdi sisteminizin Ortam değişkenindeki PATH'indeki bir konuma kopyalayın.
Adım 2: Parola Dosyası Oluşturun
Parola dosyasını oluşturmak için bir komut istemi açın ve uygun konuma gidin. Yeni bir şifre dosyası oluşturmak veya ayarlamak ya da kullanıcıları mevcut bir şifreye eklemek için “htpasswd” kullanın. Dosyadaki her satırın şifrelenmiş bir kullanıcı adı ve şifreye sahip olması gerekir. Kullanıcı için yeni kimlik bilgileri eklemek veya mevcut bir kullanıcının parolasını güncellemek için aşağıdaki komutu kullanın:
htpasswd -c /path/to/PASSWORD_FILE_NAME KULLANICI ADIPython klasörüne (bu durumda çalışma dizini) gidin ve yukarıda belirtilen komutu aşağıdaki kod parçasında gösterildiği gibi terminale veya bilgi istemi penceresine yazın. Mlflow-authfile şifre dosyası oluşturulur.
“admin” kullanıcı adını ekleyip “enter” tuşuna bastıktan sonra sistem şifre soruyor. İstemde aynı şifreyi tekrar yazdıktan sonra kullanıcı başarıyla oluşturulur ve kullanıcının gerekli şifreyle eklendiği gösterilir:
Gerekli şifre dosyasının oluşturulduğu dizini gösteren ekran görüntüsü:
Dosyanın her satırında “kullanıcı adı:şifre” formatında bir kullanıcı adı ve şifrelenmiş şifre görünmelidir.
3. Adım: Nginx'i Kurun ve Yapılandırın
Nginx'in Windows ikili dosyalarını resmi web sitesinden edinin. İndirilen dosyayı Nginx klasöründeki çalışma dizinine çıkarın:
Nginx'te yeni bir MLFlow sunucu bloğu oluşturun. Nginx dizininde bir komut istemi açarak “mlflow-site” dizinini oluşturun:
Şimdi MLflow yapılandırması için yeni bir dosya oluşturmanın zamanı geldi. Sunucunun etki alanı adını veya IP adresini localhost ile değiştirin. Ayrıca yolda eğik çizgiler kullanarak değiştirin D:/Work/Python/mlflow-auth önceden oluşturulan şifre dosyasının tam yolunu içerir. proxy_pass değerini MLflow sunucusunun URI'sine değiştirin. Bağlantı noktaları gerekli bağlantı noktası numaralarına göre ayarlanabilir.
İşte değiştirilecek kod pasajı:
IP Adresini bulmak için komut istemine “ipconfig” komutunu girin:
Adım 4: Nginx Sunucu Bloğunu Etkinleştirin
Nginx sunucu bloğunu etkinleştirmek için komut isteminde aşağıdaki komutu kullanarak sembolik bir bağlantı oluşturun:
CD D:\Work\nginx\conf\mlflow- alanmklink mlflow D:\Work\nginx\conf\mlflow- alan \mlflow
Adım 5: Nginx'i başlatın
“Nginx.exe” komutunu girin ve Nginx'i komut isteminden başlatmak için Nginx dizinine gidin:
Adım 6: MLflow Sunucusunu başlatın
MLflow sunucusunun arka uç depolama yolunu içeren aşağıdaki komut yardımıyla MLflow sunucusunu yeni bir terminal penceresinde veya komut isteminde başlatabilir veya yeniden başlatabilirsiniz. Deneylerin, aramaların ve diğer işlemlerin sonuçları bu yolda saklanır:
MLflow Sunucusunu Başlatma Komutu:
mlflow sunucusu --ana bilgisayar 127.0.0.1 --port 5000 --backend-store-uri D:/Work/Python/StorageYukarıda belirtilen komutu uyguladıktan sonra aşağıdaki hatayı görüyorsanız endişelenmeyin; Sorunu çözmek için aşağıdaki komutu uygulamanız yeterlidir:
Hatayı çözmek için model kayıt defteri verilerini yerel dosya sisteminde depolayacak şekilde URI şemasını değiştirin:
mlflow sunucusu --ana bilgisayar 127.0.0.1 --port 5000 --arka uç-mağaza-uri dosya :///D:/Çalışma/Python/Depolama
Adım 7: Kimlik Doğrulamayla MLflow'a Erişin
Artık birisi etki alanı veya IP adresi aracılığıyla MLflow'a eriştiğinde Nginx, MLflow sunucusuna ve onun yapıtlarına erişim izni vermeden önce bir kullanıcı adı ve parola isteyecek. Artık MLflow'un kullanıcı arayüzüne ve API'sine erişmek için, MLflow'a erişmek üzere bir web tarayıcısı kullanırken öncelikle bir oturum açma kullanıcı adı ve şifresi sağlamanız gerekir.
Çözüm
Windows'ta MLflow kimlik doğrulaması, MLflow'un kimlik doğrulama açıkken bir ters proxy arkasında gerçekleştirilmesini gerektirir. Bu örnekte Nginx, ters proxy görevi görür ve kullanıcının tarayıcısı ile MLflow sunucusu arasında aracı görevi görür. Kullanıcılardan, Nginx'i temel kimlik doğrulamayı zorunlu kılacak şekilde yapılandırarak MLflow için kullanıcı arayüzüne ve API'ye erişmeden önce bir kullanıcı adı ve şifre girmeleri istenir.
Son olarak, en yeni ve güvenli uygulamalara bağlı kaldığınızdan emin olmak için MLflow ve Nginx'e yönelik en güncel belgelere ve kaynaklara başvurmak her zaman çok önemlidir.