הגדרת אימות MLflow

Hgdrt Ymwt Mlflow



יש להגדיר אימות על מנת לאבטח את הגישה לניסויים, למודלים ולחפצים בשרת MLflow. לאחר ההפעלה, כל משתמש המבקש לגשת לכל משאב שמתארח בשרת MLflow צריך להיכנס. מכיוון ש-MLflow אינו כולל את האימות המובנה כברירת מחדל, יש צורך להגדיר אותו כך שיעבוד עם מכשיר אחר טכניקת אימות.

כיצד להפעיל את אימות MLflow בשרת

הפעל את ממשק המשתמש של MLflow באמצעות הפקודה הבאה כדי להפעיל את אימות MLflow:

שרת mlflow --שם האפליקציה basic-auth

על ידי הפעלה מחדש של השרת ללא אפשרות שם האפליקציה, מנהל שרת MLflow יכול לבחור להשבית תכונה זו בכל עת שירצה. להלן צילום מסך של הפקודה כפי שהיא מוצגת במסוף שורת הפקודה של מערכת ההפעלה Windows (התעלם מהאזהרה):









שרת MLflow דורש כעת שם משתמש וסיסמה כדי לגשת לניסויי השרת ולחפצי השרת כאשר הגישה אליהם מתבצעת באמצעות דפדפן על ידי הזנת http://127.0.0.1:5000 בתור כתובת האתר.







כיצד להגדיר אימות ב-MLflow

עם כמה שינויים קלים בהוראות, בפקודות ובשמות קבצי התצורה, הגדרת אימות MLflow ב-Windows דומה מאוד להגדרתו ב-Linux.

להלן מדריך להגדרת אימות MLflow ב-Windows באמצעות 'htpasswd' ו-Nginx כפרוקסי הפוך. זכור שתצורה זו מאפשרת אימות פשוט, וחיוני להגן כראוי על המחשב המריץ את MLflow ו-Nginx כדי למנוע גישה לא מורשית. שקול להשתמש ב-OAuth או לחבר את MLflow עם ספקי זהות חיצוניים עבור סביבות ייצור או דרישות אבטחה מחמירות יותר.



במדריך זה, נעבור על הגדרת האימות הבסיסי באמצעות 'htpasswd' לניהול משתמשים/סיסמאות ו-Nginx כפרוקסי הפוך.

שלב 1: התקן את Htpasswd

למרות ש-'htpasswd' אינו יישום מקורי של Windows, אנו משתמשים בכלי של צד שלישי הידוע כ-Htpasswd של Apache Lounge כאן. הורד אותו מהאתר הרשמי של Apache Lounge. הנה צילום מסך המדגים שיש לנו 'htpasswd.exe' בספריית bin של Apache לאחר הורדת קובץ ה-zip וחילוץ אותו לספריית העבודה שלנו:

כדי להשתמש ב- 'htpasswd.exe' מכל שורת פקודה, העתק אותו כעת למיקום ב-PATH של המערכת שלך במשתנה הסביבה.

שלב 2: צור קובץ סיסמה

כדי ליצור את קובץ הסיסמה, פתח שורת פקודה ועבור למיקום המתאים. השתמש ב- 'htpasswd' כדי ליצור או להגדיר קובץ סיסמה חדש או כדי להוסיף את המשתמשים לקובץ הנוכחי. כל שורה בקובץ צריכה להיות בעלת שם משתמש וסיסמה מוצפנים. השתמש בפקודה הבאה כדי להוסיף אישורים חדשים למשתמש או לעדכן את הסיסמה של משתמש קיים:

htpasswd -c /path/to/PASSWORD_FILE_NAME USERNAME

עבור לתיקיית Python (במקרה זה, ספריית העבודה) והקלד את הפקודה האמורה במסוף או בחלון ההנחיה כפי שמוצג בקטע הבא. קובץ הסיסמה, mlflow-authfile, נוצר.

לאחר הוספת שם המשתמש 'admin' ולחיצה על מקש 'Enter', המערכת מבקשת את הסיסמה. לאחר הקלדה חוזרת של אותה סיסמה בהנחיה, המשתמש נוצר בהצלחה, וזה מראה שהמשתמש נוסף עם הסיסמה הנדרשת:

להלן צילום מסך המציג את הספרייה שבה נוצר קובץ הסיסמה הדרוש:

שם משתמש וסיסמה מוצפנת בפורמט 'שם משתמש:סיסמה' צריכים להופיע בכל שורה של הקובץ.

שלב 3: התקן והגדר את Nginx

קבל את הקבצים הבינאריים של Windows של Nginx מהאתר הרשמי. חלץ את הקובץ שהורדתי לספריית העבודה בתיקיית Nginx:

צור בלוק שרת MLFlow חדש ב-Nginx. צור את ספריית 'mlflow-site' על ידי פתיחת שורת פקודה בספריית Nginx:

הגיע הזמן ליצור קובץ חדש עבור תצורת MLflow כבר עכשיו. החלף את שם הדומיין או כתובת ה-IP של השרת ב-localhost. כמו כן, באמצעות נטוי קדמי בנתיב, החלף D:/Work/Python/mlflow-auth עם הנתיב המדויק לקובץ הסיסמה שנוצר בעבר. שנה את הערך של proxy_pass ל-URI של שרת MLflow. היציאות מתכווננות למספרי היציאות הדרושים.

להלן קטע הקוד לשינוי:

הזן את הפקודה 'ipconfig' בשורת הפקודה כדי למצוא את כתובת ה-IP:

שלב 4: הפעל את חסימת השרת Nginx

על מנת להפעיל את בלוק שרת Nginx, צור קישור סמלי באמצעות הפקודה הבאה בשורת הפקודה:

CD D:\Work\nginx\conf\mlflow- אֲתַר

mklink mlflow D:\Work\nginx\conf\mlflow- אֲתַר \mlflow

שלב 5: הפעל את Nginx

הזן את הפקודה 'nginx.exe' ונווט אל ספריית Nginx כדי להפעיל את Nginx משורת פקודה:

שלב 6: הפעל את שרת MLflow

בעזרת הפקודה הבאה, הכוללת את נתיב האחסון האחורי של שרת MLflow, ניתן להפעיל או להפעיל מחדש את שרת MLflow בחלון מסוף חדש או בשורת פקודה. התוצאות של ניסויים, חיפושים ופעולות אחרות מאוחסנות בנתיב זה:

פקודה להפעלת שרת MLflow:

mlflow server --host 127.0.0.1 --port 5000 --backend-store-uri D:/Work/Python/Storage

אם, לאחר ביצוע הפקודה הנ'ל, אתה רואה את השגיאה הבאה, אל תדאג; פשוט בצע את הפקודה הבאה כדי לתקן את הבעיה:

שנה את סכימת URI כדי לאחסן את נתוני הרישום של המודל במערכת הקבצים המקומית כדי לפתור את השגיאה:

mlflow server --host 127.0.0.1 --port 5000 --backend-store-uri קוֹבֶץ :///D:/Work/Python/Storage

שלב 7: גש ל-MLflow עם אימות

כעת, Nginx תבקש שם משתמש וסיסמה לפני הענקת גישה לשרת MLflow ולפריטים שלו כאשר מישהו ניגש ל-MLflow דרך הדומיין או כתובת ה-IP. כעת, על מנת לגשת לממשק המשתמש ול-API של MLflow, עליך לספק תחילה שם משתמש וסיסמה לכניסה בעת שימוש בדפדפן אינטרנט כדי לגשת ל-MLflow.

סיכום

אימות MLflow ב-Windows דורש MLflow להתבצע מאחורי פרוקסי הפוך כשהאימות מופעל. במקרה זה, Nginx משמש כפרוקסי ההפוך, ופועל כמתווך בין הדפדפן של המשתמש לשרת MLflow. המשתמשים מתבקשים להזין שם משתמש וסיסמה לפני גישה לממשק המשתמש ול-API עבור MLflow על ידי הגדרת Nginx לאכוף את האימות הבסיסי.

אחרון חביב, כדי להבטיח שאתה מקפיד על השיטות העדכניות והמאובטחות ביותר, חשוב תמיד לעיין בתיעוד ובמשאבים העדכניים ביותר עבור MLflow ו-Nginx.