ข้ามไปเนื้อหาหลัก
คอนเทนเนอร์· ~14 นาที

RBAC — ใครทำอะไรได้บ้าง

ควบคุมสิทธิ์ผู้ใช้และ Pod ด้วย Role/RoleBinding

เปรียบเทียบให้เห็นภาพ

RBAC เหมือนระบบบัตรพนักงาน — บัตรของแต่ละคนเปิดได้เฉพาะประตูที่ได้รับอนุญาต · Role = ชุดสิทธิ์ ("เปิดห้องเก็บของได้") · RoleBinding = การแจกบัตรนั้นให้คน/ทีม

RBAC (Role-Based Access Control) คุมว่าใคร (user, group, หรือ ServiceAccount ของ Pod) ทำ action อะไร (get/list/create/delete) กับ resource ไหนได้บ้าง — ยึดหลัก least privilege (ให้สิทธิ์น้อยที่สุดที่จำเป็น)

Role = ชุดสิทธิ์ · RoleBinding = แจกสิทธิ์ให้ subject

User / Team
ServiceAccountตัวตนของ Pod
RoleBinding
Roleget/list pods
อนุญาต
ResourcesPods, Services…

least privilege: ให้เท่าที่ต้องใช้จริง

Role/ClusterRole = ชุดสิทธิ์ · RoleBinding = ผูกสิทธิ์เข้ากับ user/group/ServiceAccount
  • Role — สิทธิ์ภายใน namespace เดียว · ClusterRole — สิทธิ์ทั้งคลัสเตอร์
  • RoleBinding — ผูก Role ให้ subject ใน namespace · ClusterRoleBinding — ผูกระดับคลัสเตอร์
  • ServiceAccount — "ตัวตน" ที่ Pod ใช้เรียก API server (ทุก Pod มี ServiceAccount)

สรุป Key Takeaways

  • RBAC คุม "ใครทำอะไรกับ resource ไหนได้" ยึดหลัก least privilege
  • Role/RoleBinding = ระดับ namespace · ClusterRole/ClusterRoleBinding = ทั้งคลัสเตอร์
  • ServiceAccount = ตัวตนของ Pod เวลาเรียก API — อย่าให้ cluster-admin พร่ำเพรื่อ
อ่านจบแล้วอย่าลืมทำเครื่องหมาย