Model Registry กับ RBAC ABAC Policy —

Model Registry และ Access Control

Model Registry เป็นระบบจัดการ ML Models แบบรวมศูนย์ เมื่อองค์กรมี Models หลายสิบหรือหลายร้อยตัว การจัดการสิทธิ์เข้าถึงเป็นสิ่งจำเป็น ใครสร้าง Model ได้ ใครดูได้ ใคร Deploy ได้ ใครลบได้ ต้องมี Policy ที่ชัดเจน
RBAC (Role-Based Access Control) กำหนดสิทธิ์ตามบทบาท เช่น Data Scientist, ML Engineer, Admin ส่วน ABAC (Attribute-Based Access Control) กำหนดสิทธิ์ตาม Attributes หลายมิติ เช่น Department, Model Risk Level, Environment ใช้ทั้งคู่ร่วมกันให้ครอบคลุมทุกสถานการณ์
เนื้อหาเกี่ยวข้อง — บทความที่เกี่ยวข้อง: คริปโตเคือเรนซี่
Integration กับ MLflow
# mlflow_rbac_middleware.py — RBAC Middleware สำหรับ MLflow from flask import Flask, request, jsonify, g import functools import jwt import os app = Flask(__name__) JWT_SECRET = os.environ.get("JWT_SECRET", "secret") # RBAC Decorator def require_permission(permission): def decorator(f): @functools.wraps(f) def wrapped(*args, **kwargs): token = request.headers.get("Authorization", "").replace("Bearer ", "") if not token: return jsonify({"error": "No token"}), 401 try: payload = jwt.decode(token, JWT_SECRET, algorithms=["HS256"]) except jwt.InvalidTokenError: return jsonify({"error": "Invalid token"}), 401 user_roles = set(payload.get("roles", [])) user_perms = set() for role_name in user_roles: try: role = Role(role_name) user_perms.update(ROLE_PERMISSIONS.get(role, set())) except ValueError: pass perm = Permission(permission) if perm not in user_perms: return jsonify({ "error": f"Permission denied: {permission}", "user": payload.get("sub"), "roles": list(user_roles), }), 403 g.user = payload return f(*args, **kwargs) return wrapped return decorator # Protected Endpoints @app.route("/api/models", methods=["POST"]) @require_permission("model:create") def create_model(): data = request.json # Forward to MLflow return jsonify({"status": "created", "model": data.get("name")}) @app.route("/api/models/Best Practices

- Principle of Least Privilege: ให้สิทธิ์น้อยที่สุดที่จำเป็น Data Scientist ไม่ต้อง Deploy ได้
- Separation of Duties: คนสร้าง Model ไม่ควรเป็นคน Approve Deploy ต้องมี Reviewer
- Audit Trail: บันทึกทุกการกระทำ ใครทำอะไร เมื่อไร สำหรับ Compliance และ Forensics
- High Risk Models: กำหนด Risk Level สำหรับ Models ที่กระทบลูกค้าโดยตรง ต้อง Review ก่อน Deploy
- Time-based Policies: ห้าม Deploy นอกเวลาทำงาน หรือต้อง Senior Approve
- Environment Isolation: Dev/Staging ให้สิทธิ์กว้าง Production จำกัดเฉพาะ ML Engineer และ Admin
Model Registry คืออะไร
Model Registry เป็นระบบจัดการ ML Models แบบรวมศูนย์ เก็บ Model Versions, Metadata, Artifacts, Lineage Track Model Stage (Staging, Production, Archived) เครื่องมือนิยม เช่น MLflow, W&B, Neptune
RBAC คืออะไร
RBAC ควบคุมสิทธิ์ตามบทบาท กำหนด Roles เช่น Data Scientist ML Engineer Admin แต่ละ Role มี Permissions ต่างกัน ง่ายต่อการจัดการ เหมาะกับองค์กรที่มีโครงสร้าง Role ชัดเจน
แนะนำเพิ่มเติม — สัญญาณเทรดรายวัน XM Signal
เนื้อหาเกี่ยวข้อง — ขาวสถต — คู่มือฉบับสมบูรณ์ 2026
ABAC คืออะไร
ABAC ควบคุมสิทธิ์ตาม Attributes หลายมิติ เช่น User Department, Model Risk Level, Environment, Time ยืดหยุ่นกว่า RBAC กำหนด Policy ที่ซับซ้อนได้ เช่น Finance DS เข้าถึงเฉพาะ Finance Models
เนื้อหาเกี่ยวข้อง — แนะนำให้อ่าน LLM Inference vLLM Home Lab Setup
ควรใช้ RBAC หรือ ABAC
ใช้ RBAC เมื่อโครงสร้าง Role ชัดเจน Permission ไม่ซับซ้อน ใช้ ABAC เมื่อต้องการ Fine-grained Control ตาม Context หลายมิติ ในทางปฏิบัติใช้ทั้งคู่ RBAC เป็นพื้นฐาน ABAC เสริมสำหรับ Policy ซับซ้อน
แนะนำเพิ่มเติม — คู่มือเทรดจาก SiamCafeBook
สรุป
การจัดการสิทธิ์เข้าถึง Model Registry เป็นสิ่งจำเป็นเมื่อองค์กรมี ML Models จำนวนมาก RBAC ให้พื้นฐานที่ง่ายต่อการจัดการด้วย Roles และ Permissions ABAC เสริมด้วย Fine-grained Policies ตาม Attributes หลายมิติ สิ่งสำคัญคือ Least Privilege, Separation of Duties, Audit Trail และ Risk-based Policies สำหรับ High Risk Models
เนื้อหาเกี่ยวข้อง — แนะนำให้อ่าน Href Html คืออะไร — คู่มือฉบับสมบูรณ์ 2026 — คู่มือฉบับสมบูรณ์ 2026





