ACLs
ACLs (Access Control Lists) là gì?¶
ACLs (Access Control Lists) là một phương pháp dùng để quản lý quyền truy cập tài nguyên trên hệ thống, chẳng hạn như tệp, thư mục, hoặc các dịch vụ mạng. Nó là một danh sách chứa các quy tắc hoặc quyền, xác định ai (người dùng hoặc nhóm) được phép làm gì (đọc, ghi, thực thi,...) với tài nguyên.
Cách hoạt động của ACLs¶
- Cấu trúc cơ bản:
- Mỗi tài nguyên (tệp, thư mục, đối tượng) có một danh sách ACL đi kèm.
-
Mỗi mục trong ACL (Access Control Entry - ACE) chứa:
- Principal: Người dùng hoặc nhóm được áp dụng quyền (ví dụ: User1, Group1).
- Permission: Loại quyền (ví dụ: Read, Write, Execute).
-
Khi truy cập tài nguyên:
- Hệ thống kiểm tra danh sách ACL của tài nguyên.
- So sánh thông tin của người dùng đang yêu cầu với các mục trong ACL.
- Nếu phù hợp, quyền truy cập được cấp; nếu không, quyền truy cập bị từ chối.
Các loại ACLs¶
- DACL (Discretionary ACL):
- Quy định ai được phép hoặc không được phép truy cập vào tài nguyên.
- Phổ biến trên hệ điều hành Windows với NTFS.
-
Ví dụ:
-
SACL (System ACL):
- Quy định các hành động cần được ghi lại (auditing).
-
Ví dụ: Ghi nhật ký khi một người dùng cố gắng truy cập tài nguyên mà không được phép.
-
NACL (Network ACL):
- Dùng trong môi trường mạng (như AWS) để kiểm soát lưu lượng vào/ra tại mức mạng.
- Ví dụ:
- Cho phép (Allow) hoặc từ chối (Deny) truy cập từ một IP cụ thể.
- Quy định các cổng (ports) được phép sử dụng.
ACLs trên các nền tảng khác nhau¶
1. Hệ điều hành Windows:¶
- NTFS ACLs: Được sử dụng để quản lý quyền truy cập trên các tệp và thư mục trong hệ thống NTFS.
- Quyền cơ bản:
- Full Control: Toàn quyền (đọc, ghi, xóa, thay đổi quyền).
- Modify: Chỉnh sửa nội dung và thuộc tính.
- Read & Execute: Đọc và thực thi.
- Read: Chỉ được đọc.
- Write: Chỉ được ghi.
2. Hệ điều hành Linux:¶
- POSIX ACLs: Được áp dụng trên các hệ thống tệp hỗ trợ ACL như ext3, ext4, hoặc XFS.
- Lệnh cơ bản:
- setfacl: Đặt ACL cho một tệp/thư mục.
- getfacl: Xem ACL hiện tại.
- Ví dụ:
3. AWS Network ACLs:¶
- Dùng để quản lý lưu lượng mạng trong các Virtual Private Cloud (VPC).
- Quy tắc (rules):
- Allow/Deny: Cho phép hoặc từ chối lưu lượng.
- Quy định theo nguồn IP, đích IP, giao thức (TCP/UDP), và cổng.
- Ví dụ:
- Allow inbound traffic từ IP 203.0.113.0/24 trên port 22 (SSH).
- Deny outbound traffic tới mọi IP từ port 80 (HTTP).
So sánh ACLs với Role-Based Access Control (RBAC)¶
Tiêu chí | ACLs | RBAC |
---|---|---|
Cách hoạt động | Quy định quyền trực tiếp trên từng tài nguyên. | Quy định quyền theo vai trò (role). |
Tính linh hoạt | Khó quản lý trong hệ thống lớn với nhiều người dùng. | Dễ quản lý trong hệ thống lớn. |
Ứng dụng | Phù hợp khi quyền truy cập chi tiết là cần thiết. | Phù hợp với các tổ chức lớn với nhiều nhóm người dùng. |
Lợi ích của ACLs¶
- Chi tiết và chính xác:
- Xác định quyền truy cập cho từng người dùng hoặc nhóm.
- Kiểm soát tốt hơn:
- Cho phép/quản lý các hành động cụ thể trên tài nguyên.
- Tăng cường bảo mật:
- Giới hạn quyền truy cập chỉ cho những người được phép.
- Audit:
- Theo dõi và ghi lại hoạt động truy cập (SACL).
Kết luận¶
ACLs là công cụ quản lý quyền truy cập mạnh mẽ và chi tiết. Tùy thuộc vào môi trường (Windows, Linux, mạng, hoặc đám mây), ACLs cho phép bạn kiểm soát tốt quyền truy cập vào tài nguyên, tăng cường bảo mật và giảm rủi ro trong việc quản lý tài nguyên.