在存取控制的世界中,大多數機制都聚焦於「誰」在發出請求。Rule-based Access Control(RuBAC)則反其道而行——它關注的是「規則本身」,無論請求者身份為何,規則一視同仁地套用於所有主體。
什麼是 Rule-based Access Control?
RuBAC 依據預先定義的全域規則決定存取是否被允許,這些規則與主體身份完全脫鉤,屬於「主體無關(Subject-agnostic)」機制。規則由管理員集中制定,通常以條件式邏輯表達,例如「所有來自特定 IP 段的請求一律拒絕」或「每日 22:00 至 06:00 停止所有外部存取」。典型應用場景包括防火牆 ACL(Access Control List)、路由器封包過濾規則、以及企業資安政策中的時間限制管控。與 RBAC 依角色授權不同,RuBAC 的規則無需綁定任何使用者或角色,條件成立即生效,不問對象為何人。
RuBAC 與其他存取控制模型的關鍵差異
RBAC 授權基於角色,ABAC 授權基於屬性,而 RuBAC 授權基於環境條件與資源特性的規則判斷,完全不參考主體的任何資訊。這使 RuBAC 特別適合需要統一強制執行的場景,例如合規要求所有人在特定時段無法存取生產環境。值得注意的是,RuBAC 常與 MAC(Mandatory Access Control)搭配實作——MAC 定義敏感層級,RuBAC 定義對應的存取規則,兩者互補形成嚴密的控制層。RuBAC 的限制在於靈活性較低,細粒度的個人化授權需求仍需仰賴 RBAC 或 ABAC 補足。
# 防火牆 ACL 規則範例(iptables)
iptables -A INPUT -s 203.0.113.0/24 -j DROP # 拒絕特定 IP 段
iptables -A INPUT -m time --timestart 22:00 \
--timestop 06:00 -p tcp --dport 443 -j DROP # 時間限制規則
💡 重點整理
- 主體無關性:規則套用於所有請求,不區分使用者身份或角色。
- 全域強制執行:一條規則即可管控所有主體,管理成本低。
- 常見場景:防火牆 ACL、時間政策、IP 封鎖等基礎設施層管控。
- 互補使用:通常與 RBAC 或 MAC 搭配,補足細粒度授權的不足。
RuBAC 以其簡單、一致、無主體偏見的特性,成為基礎設施層存取管控的首選機制。理解其「規則優先於身份」的核心精神,是設計健全存取控制架構不可或缺的基礎。
📚 參考文獻
- NIST Special Publication 800-162 — Guide to Attribute Based Access Control (ABAC) Definition and Considerations,提供各存取控制模型的權威定義與比較。
- OWASP — Access Control Cheat Sheet,涵蓋 RuBAC、RBAC、ABAC 的實務應用說明。
⚠️ 本文內容基於撰寫時的最新資訊,實際應用時請參考官方文件的最新版本。
留言
張貼留言