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