屬性型存取控制 (Attribute-based Access Control , ABAC) 又叫做原則型存取控制(Policy-based Access Control , PBAC) 或聲明型存取控制 (Claim-based Access Control , CBAC),這種授權方法是根據部門、位置、管理者及時間等特徵來設定和執行原則。ABAC 使用布林運算邏輯建立含有「if-then」陳述式的存取規則,用這些規則來定義使用者、要求、資源和行動。舉例來說,假如要求者是一名銷售員,會授予他客戶關係管理(Customer Relationship Management , CRM) 解決方案的讀寫存取權,相對於管理員,則只會授予檢視權限以供其建立報告。
屬性型存取控制可提供動態、情境感知的安全防護,以滿足日漸複雜的 IT 需求。使用 ABAC 的情況包括:
- 保護資料、網路、裝置、雲端服務和 IT 資源,以防遭到未經授權的使用者或行動的侵害
- 保護微型服務 / 應用程式介面 (API) 的安全,防止敏感交易曝光
- 允許依據每一名使用者做出原則決策,實現動態網路防火牆(Firewall) 控制
ABAC 的要素
屬性是指存取事件中所使用到的要素特徵或值。這些屬性可能取自數種不同的資料來源,包括身分與存取管理 (Identity and Access Management , IAM) 系統、企業資源規劃 (Enterprise Resource Planning , ERP) 系統、內部人資系統中的員工資訊、CRM 中的客戶資訊,以及輕量型目錄存取通訊協定 (Lightweight Directory Access Protocol , LDAP) 伺服器。
屬性型存取控制可運用多種屬性進行授權,提供更精細的存取控制方法,例如職能分工(Separation of Duties , SOD)。
在決定授予或拒絕存取權時,可使用以下幾種特徵。
主體或使用者屬性
主體或使用者屬性描述正在嘗試取得資源存取權以執行某行動的人員。這些屬性包括使用者名稱、年齡、職稱、國籍、使用者 ID、隸屬的部門和公司、安全許可、管理階層及其他識別標準。ABAC 系統可從登入時使用的驗證憑證收集這些資訊,或是從資料庫或系統(如 LDAP、人資系統)提取。
客體或資源屬性
客體或資源屬性涵蓋了收到存取要求的客體或資源(如檔案、應用程式、伺服器、API)的特徵。客體或資源屬性的例子包括建立日期、上次更新時間、作者、擁有者、檔名、檔案類型和資料敏感性。
環境或情境屬性
環境屬性指明更廣泛的存取要求情境。環境屬性可能是各式各樣的情境項目,例如嘗試存取的時間和位置、主體的裝置類型、通訊協定、驗證強度、主體的正常行為模式、過去 24 小時做過的交易,或是與第三方的關係。
行動屬性
行動屬性指明使用者想要如何與資源進行互動。常見的行動屬性例子包括檢視、讀取、寫入、複製、編輯、傳送、刪除或核准。這些行動屬性可以單獨使用,或在更複雜的情況中加以組合使用。
主體或使用者屬性 | 客體或資源屬性 | 環境或情境屬性 | 行動屬性 |
---|---|---|---|
許可 部門 員工 ID 職稱 使用者名稱 | 作者/擁有者 分類 建立日期 上次更新時間 類型 | 當前日期 當前時間 裝置 位置 時區 | 刪除 讀取 傳送 檢視 寫入 |
屬性型存取控制的運作方式
ABAC 是依據使用者的身分,而非依據使用者的作為來授予權限,以利提供更精細的控制。這種存取控制方式會分析屬性以評估其與環境的互動方式;隨後再根據關係來強制執行規則。
此流程的典型運作方式如下:
- 提出存取要求。
- 屬性型存取控制工具掃描屬性,判定屬性是否符合現有原則。
- 根據 ABAC 工具的分析結果授予或拒絕權限。
ABAC 的優勢
屬性型存取控制授權模型的獨特功能可為組織提供強大的優勢,具體內容說明如下。
廣泛的原則範圍
幾乎所有類型的原則都能建立,因為 ABAC 的唯一限制只有必須採用運算語言可以表達的屬性和條件。
屬性型存取控制可管控情境變數,協助原則制定者實行更精細的存取權限。
管理員也因此得以使用明智的存取限制,提供做出智慧安全防護、隱私權及法遵決策所需的情境。舉例來說,某一群員工只能在特定時間或特定位置才能存取某些類型的資訊。
簡單易用
屬性型存取控制相當直觀易懂。它將設定權限的技術細節設置隱藏在簡單易用的介面之下。任何具備正確權限的人都可以更新使用者設定檔,同時可確保使用者只要擁有最新的屬性,即可擁有所需的存取權。此外,管理員無需指定每個使用者與客體之間的關係,就能將最多可用資源的存取權授予給最大數量的使用者。
加速新使用者到職
透過 ABAC 模型,管理員和客體擁有者可建立原則並指派屬性,授予新使用者存取資源的權限,從而加快新員工和外部合作夥伴的到職速度。只要借助屬性型存取控制,無需變更現有規則和客體特徵即可授予存取權。
靈活
ABAC 可依據情境因素來呈現和自動變更近乎所有屬性,例如使用者可存取哪些應用程式和資料類型、可提交什麼交易,以及可執行什麼操作。
法遵規範
屬性型存取控制的精細權限和控制提供了更高的安全性,協助組織達到保護個人身分資訊(Personally Identifiable Information , PII) 及其他敏感資料的法遵要求(這些法遵要求明定於《健康保險可攜與責任法》(HIPAA)、《一般資料保護規範》(GDPR)、《支付卡產業資料安全標準》(PCI DSS) 等法律和規則中)。
擴充能力
一旦ABAC 設定完成後,管理員即可複製並重複使用類似元件及使用者職位的屬性,從而簡化原則維護工作和新使用者到職流程。
屬性型存取控制的挑戰
一旦部署完成後,ABAC 可輕鬆擴充並整合到安全計畫中,但剛起步時較為費工。儘管多數人同意 ABAC 的利遠大於弊,不過還是要考量到實行的複雜度。這是因為管理員必須處理以下項目:
- 將屬性指派給每一個元件。
- 建立中央原則引擎,基於各種條件來決定允許屬性所能執行的操作(例如使用「if X, then Y」的條件敘述)。
- 定義所有屬性。
- 在所有屬性和規則確定之前,需先衡量特定使用者可以有哪些權限。
- 詳細規劃授權原則,以確保建立完善縝密的原則集來管理存取權。
ABAC 與 RBAC 比較
屬性型存取控制和角色型存取控制(Role-based Access Control , RBAC)皆為存取權管理方法。跟 ABAC 不同的是,RBAC 是根據平面或階層角色來授予存取權。在 RBAC 中,角色即相當於權利或權限的組合。
ABAC | RBAC |
---|---|
以屬性和原則來延伸現有角色(例如相關行動和資源特徵、位置、時間,以及提出要求的方式)。 | 授予每位使用者各一個角色 |
根據智慧決策進行授權。 | 授權時僅考量角色及相關特權 |
原則以個別屬性為基礎,由自然語言構成且包括情境資訊 | 僅依據角色授予存取權 |
管理員可以新增、移除和重新整理屬性,無需重寫原則 | 必須手動定義新的角色 |
存取權較精細 | 對整體企業授予廣泛的存取權 |
選擇 ABAC 或 RBAC
要選擇屬性型存取控制或角色型存取控制,主要取決於企業規模、預算和安全需求。規模是影響選擇的一個重大考量,因為 ABAC 的初步實行過程十分繁瑣,且會耗用許多資源。
ABAC | RBAC |
資源足以支持複雜的實行流程 | 需要存取控制,但缺少資源,無法支持複雜的實行流程 |
有大量具有動態角色的使用者 | 組織內的群組定義分明 |
持續成長的大規模組織 | 組織預計的成長幅度不大 |
勞動人力分佈在不同地理區域 | 勞動人力集中於一處 |
需要深入且明確的存取控制功能 | 可接受廣泛的存取控制原則 |
ABAC 與 RBAC:混合方法
屬性型存取控制和角色型存取控制可以兩者並用,以同時享有 RBAC 便利的存取管理,加上 ABAC 靈活的原則規格與動態制定決策能力的優勢。結合使用 ABAC 與 RBAC (ARBAC) 可提供強大的安全防護,優化 IT 資源。
選用 ARBAC 混合方法,IT 管理員可自動化基本存取,並讓營運團隊能透過契合業務結構的角色,為特定使用者提供額外的存取權。藉由設定角色與屬性的相依性,即可對特定使用者自動套用限制,不需要再做搜尋或設定。
如此可簡化存取指派作業,降低需管理的使用者設定檔數量。借助 ARBAC,IT 團隊基本上可將使用者的到職和離職工作全數交給業務的決策制定者處理。
舉例來說,使用 ARBAC 可根據特定屬性強制執行存取控制,同時透過基於設定檔的職能進行自主存取控制。ARBAC 亦可支援風險調整型存取控制模型,以授予互斥特權的形式落實職能分離。
使用 ABAC 為組織提供安全防護
屬性型存取控制已廣受許多組織(企業)認可,將它視為授權模型的首選。不只是因為 ABAC 的功能強大,它更能減輕大部分安全管理的負擔。