MLflow Kimlik Doğrulamasını Ayarlama

Mlflow Kimlik Dogrulamasini Ayarlama



MLflow sunucusundaki deneylere, modellere ve yapılara erişimin güvenliğini sağlamak için kimlik doğrulamanın yapılandırılması gerekir. Etkinleştirildiğinde, MLflow sunucusu tarafından barındırılan herhangi bir kaynağa erişmek isteyen her kullanıcının oturum açması gerekir. MLflow, varsayılan olarak yerleşik kimlik doğrulamayı içermediğinden, onu farklı bir sunucuyla çalışacak şekilde ayarlamaya ihtiyaç vardır. kimlik doğrulama tekniği.

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 ADI

Python 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- alan

mklink 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/Storage

Yukarı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.