Site icon PlusMagi's Blog By Pitt Phunsanit

ACL (Access Control List) และ RBAC (Role-Based Access Control)

การเปรียบเทียบระหว่าง ACL (Access Control List) และ RBAC (Role-Based Access Control) คือการเปรียบเทียบระหว่าง “ความละเอียดเฉพาะจุด” กับ “ความง่ายในการจัดการภาพรวม” ครับ เพื่อให้เห็นภาพชัดเจนที่สุด


เปรียบเทียบด้วยสถานการณ์จำลอง (Analogy)

ACL เหมือน “Guest List งานแต่งงาน”

  1. ที่หน้าประตูงาน (Resource) จะมีรายชื่อคนถืออยู่
  2. รปภ. ต้องเช็คชื่อทีละคน: “นาย A เข้าได้”, “นาย B ห้ามเข้า”, “นางสาว C เข้าได้

ปัญหา: ถ้ามีงานแต่ง 10 ห้อง และนาย A ต้องเข้าได้ทุกห้อง คุณต้องไปเขียนชื่อนาย A ใส่กระดาษหน้าห้องทั้ง 10 ใบ

RBAC เหมือน “บัตรพนักงานห้อยคอ”:

  1. เราไม่ได้เช็คชื่อ แต่เช็ค “สีของสายคล้องคอ” (Role)
  2. กฎบอกว่า: “สายสีแดง เข้าห้อง Server ได้”, “สายสีเขียว เข้าได้แค่โรงอาหาร”

ข้อดี: ถ้านาย A ย้ายแผนก แค่เปลี่ยนสายคล้องคอจากเขียวเป็นแดง เขาจะเข้าห้อง Server ได้ทันทีโดยไม่ต้องไปแก้กลอนประตู


ตารางเปรียบเทียบเชิงเทคนิค (Comparison Matrix)

ACL (Access Control List)RBAC (Role-Based Access Control)
จุดโฟกัส (Focus)Object-Centric (ยึดติดกับวัตถุ/ไฟล์)Subject-Centric (ยึดติดกับคน/บทบาท)
วิธีการทำงานสิทธิ์ถูกฝังอยู่ที่ตัวไฟล์/โฟลเดอร์ (รายการแปะหน้าไฟล์)สิทธิ์ถูกรวมไว้ใน “บทบาท” แล้วเอาบทบาทไปสวมให้คน
ความละเอียด (Granularity)สูงมาก (กำหนดได้ถึงระดับ User รายคน ต่อ 1 ไฟล์)ปานกลาง-สูง (กำหนดตามกลุ่มหน้าที่)
การดูแลรักษา (Maintenance)ยาก เมื่อคนเยอะ (ต้องแก้ทีละไฟล์)ง่าย (แก้ที่ Role ทีเดียว มีผลกับทุกคนใน Role นั้น)
ความปลอดภัยเสี่ยงต่อ Human Error (ลืมลบสิทธิ์คนเก่า)ปลอดภัยกว่า (ใช้หลัก Least Privilege ได้ง่าย)
การใช้งานหลักFile System (NTFS, Linux), Network FirewallEnterprise Application (ERP, HR), Active Directory

เจาะลึกความแตกต่าง (Key Differences)

มุมมองการจัดการ (Management Perspective)

เมื่อมีการเปลี่ยนแปลง (Scalability)

ความยืดหยุ่น (Flexibility)

ACL ชนะเรื่องข้อยกเว้น: ถ้าคุณต้องการให้ “นาย ก. เข้าไฟล์นี้ได้เป็นกรณีพิเศษแค่คนเดียวในโลก” การใช้ ACL จะง่ายและตรงไปตรงมากว่า (ถ้าใช้ RBAC คุณอาจต้องสร้าง Role ใหม่เพื่อนาย ก. คนเดียว ซึ่งตลก)


แล้วควรใช้อันไหน? (Decision Guide)

เลือกใช้ ACL เมื่อ

  1. Low Level Security: กรอง Packet ใน Network (Router/Switch)
  2. Specific Exceptions: ต้องการกำหนดสิทธิ์ให้ไฟล์/โฟลเดอร์เฉพาะเจาะจงที่ User ทั่วไปเป็นเจ้าของ
  3. Small Scale: ระบบเล็กๆ มี User ไม่กี่คน

เลือกใช้ RBAC เมื่อ

  1. Organization Scale: มีพนักงานหลายคน มีการเข้า-ออก-ย้ายตำแหน่งบ่อย
  2. Application Development: ทำระบบ Login หลังบ้าน, ระบบ HR, ระบบ Inventory
  3. Complex System: ระบบ Cloud (AWS IAM, Azure) หรือ Kubernetes
  4. มี user เป็นกลุ่ม ๆ จำนวนมาก

ในโลกความจริง: “เรามักใช้ผสมกัน (Hybrid)”

ระบบปฏิบัติการ Windows หรือ Linux ที่เราใช้กันอยู่ จริงๆ แล้วใช้ Hybrid Approach ครับ

ตัวอย่าง: ใน Windows NTFS

การเปรียบเทียบระหว่าง ACL (Access Control List) และ RBAC (Role-Based Access Control) คือการเปรียบเทียบระหว่าง “ความละเอียดเฉพาะจุด” กับ “ความง่ายในการจัดการภาพรวม” ครับ

เพื่อให้เห็นภาพชัดเจนที่สุด ผมขอเริ่มด้วยการเปรียบเทียบแบบเห็นภาพง่ายๆ ก่อนเข้าสู่ตารางเทคนิคครับ


1. เปรียบเทียบด้วยสถานการณ์จำลอง (Analogy)


2. ตารางเปรียบเทียบเชิงเทคนิค (Comparison Matrix)

หัวข้อเปรียบเทียบACL (Access Control List)RBAC (Role-Based Access Control)
จุดโฟกัส (Focus)Object-Centric (ยึดติดกับวัตถุ/ไฟล์)Subject-Centric (ยึดติดกับคน/บทบาท)
วิธีการทำงานสิทธิ์ถูกฝังอยู่ที่ตัวไฟล์/โฟลเดอร์ (รายการแปะหน้าไฟล์)สิทธิ์ถูกรวมไว้ใน “บทบาท” แล้วเอาบทบาทไปสวมให้คน
ความละเอียด (Granularity)สูงมาก (กำหนดได้ถึงระดับ User รายคน ต่อ 1 ไฟล์)ปานกลาง-สูง (กำหนดตามกลุ่มหน้าที่)
การดูแลรักษา (Maintenance)ยาก เมื่อคนเยอะ (ต้องแก้ทีละไฟล์)ง่าย (แก้ที่ Role ทีเดียว มีผลกับทุกคนใน Role นั้น)
ความปลอดภัยเสี่ยงต่อ Human Error (ลืมลบสิทธิ์คนเก่า)ปลอดภัยกว่า (ใช้หลัก Least Privilege ได้ง่าย)
การใช้งานหลักFile System (NTFS, Linux), Network FirewallEnterprise Application (ERP, HR), Active Directory

3. เจาะลึกความแตกต่าง (Key Differences)

A. มุมมองการจัดการ (Management Perspective)

B. เมื่อมีการเปลี่ยนแปลง (Scalability)

นี่คือจุดตายของ ACL ครับ

C. ความยืดหยุ่น (Flexibility)


4. แล้วควรใช้อันไหน? (Decision Guide)

เลือกใช้ ACL เมื่อ:

  1. Low Level Security: กรอง Packet ใน Network (Router/Switch)
  2. Specific Exceptions: ต้องการกำหนดสิทธิ์ให้ไฟล์/โฟลเดอร์เฉพาะเจาะจงที่ User ทั่วไปเป็นเจ้าของ
  3. Small Scale: ระบบเล็กๆ มี User ไม่กี่คน

เลือกใช้ RBAC เมื่อ:

  1. Organization Scale: มีพนักงานหลายคน มีการเข้า-ออก-ย้ายตำแหน่งบ่อย
  2. Application Development: ทำระบบ Login หลังบ้าน, ระบบ HR, ระบบ Inventory
  3. Complex System: ระบบ Cloud (AWS IAM, Azure) หรือ Kubernetes

5. ในโลกความจริง: “เรามักใช้ผสมกัน (Hybrid)”

ระบบปฏิบัติการ Windows หรือ Linux ที่เราใช้กันอยู่ จริงๆ แล้วใช้ Hybrid Approach ครับ

สรุป


อ่านเพิ่มเติม

Exit mobile version