การตั้งค่าการตรวจสอบสิทธิ์ MLflow

Kar Tang Kha Kar Trwc Sxb Siththi Mlflow



ต้องกำหนดค่าการตรวจสอบสิทธิ์เพื่อความปลอดภัยในการเข้าถึงการทดลอง แบบจำลอง และสิ่งประดิษฐ์บนเซิร์ฟเวอร์ MLflow เมื่อเปิดใช้งานแล้ว ผู้ใช้ทุกคนที่ต้องการเข้าถึงทรัพยากรใดๆ ที่โฮสต์โดยเซิร์ฟเวอร์ MLflow จะต้องลงชื่อเข้าใช้ เนื่องจาก MLflow ไม่มีการรับรองความถูกต้องในตัวตามค่าเริ่มต้น จึงจำเป็นต้องตั้งค่าให้ทำงานกับแอปพลิเคชันอื่นได้ เทคนิคการรับรองความถูกต้อง

วิธีเปิดใช้งานการรับรองความถูกต้อง MLflow บนเซิร์ฟเวอร์

เปิดใช้งาน MLflow UI โดยใช้คำสั่งต่อมาเพื่อเปิดใช้งานการตรวจสอบสิทธิ์ MLflow:

เซิร์ฟเวอร์ mlflow -- ชื่อแอปพื้นฐาน-auth

ด้วยการรีสตาร์ทเซิร์ฟเวอร์โดยไม่มีตัวเลือกชื่อแอป ผู้ดูแลระบบเซิร์ฟเวอร์ MLflow สามารถเลือกปิดการใช้งานคุณสมบัตินี้ได้ทุกเมื่อที่ต้องการ นี่คือภาพหน้าจอของคำสั่งตามที่ปรากฏบนเทอร์มินัลบรรทัดคำสั่งของระบบปฏิบัติการ Windows (ไม่ต้องสนใจคำเตือน):









ขณะนี้เซิร์ฟเวอร์ MLflow ต้องการชื่อผู้ใช้และรหัสผ่านเพื่อเข้าถึงการทดลองและสิ่งประดิษฐ์ของเซิร์ฟเวอร์เมื่อเข้าถึงผ่านเบราว์เซอร์โดยการป้อน http://127.0.0.1:5000 เป็น URL







วิธีการตั้งค่าการรับรองความถูกต้องบน 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 ของระบบของคุณในตัวแปร Environment

ขั้นตอนที่ 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 ให้สร้างลิงก์สัญลักษณ์โดยใช้คำสั่งต่อไปนี้บนพรอมต์คำสั่ง:

ซีดี D:\งาน\nginx\conf\mlflow- เว็บไซต์

mklink mlflow D:\งาน\nginx\conf\mlflow- เว็บไซต์ \mlflow

ขั้นตอนที่ 5: เริ่ม Nginx

ป้อนคำสั่ง 'nginx.exe' และไปที่ไดเร็กทอรี Nginx เพื่อเปิดใช้ Nginx จากพรอมต์คำสั่ง:

ขั้นตอนที่ 6: เริ่มเซิร์ฟเวอร์ MLflow

ด้วยความช่วยเหลือของคำสั่งต่อไปนี้ ซึ่งรวมถึงเส้นทางการจัดเก็บข้อมูลแบ็กเอนด์ของเซิร์ฟเวอร์ MLflow คุณสามารถเริ่มหรือรีสตาร์ทเซิร์ฟเวอร์ MLflow ในหน้าต่างเทอร์มินัลหรือพร้อมท์คำสั่งใหม่ ผลลัพธ์ของการทดลอง การค้นหา และการดำเนินการอื่นๆ จะถูกจัดเก็บไว้บนเส้นทางนี้:

คำสั่งเพื่อเริ่มเซิร์ฟเวอร์ MLflow:

เซิร์ฟเวอร์ mlflow --โฮสต์ 127.0.0.1 --พอร์ต 5,000 --backend-store-uri D:/Work/Python/Storage

หากหลังจากดำเนินการคำสั่งดังกล่าวแล้ว คุณเห็นข้อผิดพลาดต่อไปนี้ ไม่ต้องกังวล เพียงดำเนินการคำสั่งต่อไปนี้เพื่อแก้ไขปัญหา:

เปลี่ยนโครงร่าง URI เพื่อจัดเก็บข้อมูลรีจิสตรีโมเดลบนระบบไฟล์ในเครื่องเพื่อแก้ไขข้อผิดพลาด:

เซิร์ฟเวอร์ mlflow --โฮสต์ 127.0.0.1 --พอร์ต 5,000 --แบ็กเอนด์-store-uri ไฟล์ :///D:/งาน/Python/Storage

ขั้นตอนที่ 7: เข้าถึง MLflow ด้วยการรับรองความถูกต้อง

ตอนนี้ Nginx จะขอชื่อผู้ใช้และรหัสผ่านก่อนที่จะให้สิทธิ์การเข้าถึงเซิร์ฟเวอร์ MLflow และสิ่งประดิษฐ์เมื่อมีผู้เข้าถึง MLflow ผ่านโดเมนหรือที่อยู่ IP ในตอนนี้ เพื่อเข้าถึง UI และ API ของ MLflow คุณต้องระบุชื่อผู้ใช้และรหัสผ่านสำหรับเข้าสู่ระบบก่อนเมื่อใช้เว็บเบราว์เซอร์เพื่อเข้าถึง MLflow

บทสรุป

การตรวจสอบสิทธิ์ MLflow บน Windows จำเป็นต้องดำเนินการ MLflow หลังพร็อกซีย้อนกลับโดยเปิดการตรวจสอบสิทธิ์ไว้ ในกรณีนี้ Nginx ทำหน้าที่เป็นพร็อกซีย้อนกลับ โดยทำหน้าที่เป็นคนกลางระหว่างเบราว์เซอร์ของผู้ใช้และเซิร์ฟเวอร์ MLflow ผู้ใช้จะถูกขอให้ป้อนชื่อผู้ใช้และรหัสผ่านก่อนที่จะเข้าถึงอินเทอร์เฟซผู้ใช้และ API สำหรับ MLflow โดยการกำหนดค่า Nginx เพื่อบังคับใช้การตรวจสอบสิทธิ์ขั้นพื้นฐาน

สุดท้ายแต่ไม่ท้ายสุด เพื่อให้แน่ใจว่าคุณปฏิบัติตามแนวทางปฏิบัติล่าสุดและปลอดภัย จำเป็นอย่างยิ่งที่จะต้องศึกษาเอกสารและทรัพยากรล่าสุดสำหรับ MLflow และ Nginx