角色型存取控制 (RBAC) 的定義
角色型存取控制 (Role-based Access Control,RBAC) 是一種基於管理使用者存取的安全方法,旨在保護資源(包括資料、應用程式和系統)免遭不當存取、修改、新增或刪除。它根據使用者的職位需要授予存取權限,定義角色和其關聯的權限,並指派權限來控制存取(即使用者可以看到的內容)、核准操作的範圍(即使用者可以執行的操作,例如檢視、建立或修改)和工作階段時間(即使用者可以存取的時長)。
RBAC 的三個常見原則
透過角色型存取控制,權限完全基於角色,這簡化了管理工作。當使用者的職位變更時,包括他們與組織的關係結束時,管理員只需變更其角色,權限就會自動更新。使用 RBAC,就可以為使用者指派多個角色。
- 使用者角色指派根據角色或任務定義使用者的權限或存取權限。
- 使用者角色授權確認使用者被核准擔任某個角色並執行相關功能。
- 使用者角色權限和存取權限明確定義使用者可以做什麼和不能做什麼。
RBAC 權限
對於角色型存取控制,重要的是要記住權限依循角色,而不是反過來。決定每個角色應該做什麼並相應地套用權限。設定 RBAC 權限以指定使用者可以存取哪些內容,以及他們可以在系統中執行哪些操作時的其他考量事項包括:
存取
- 哪些使用者可以開啟特定項目,例如檔案、應用程式或資料庫?
- 哪些使用者應該知道特定資產的存在?
- 可視性應受到哪些限制?
修改
- 哪些使用者可以變更特定項目?
- 進行變更需要什麼核准?
分享
- 哪些使用者可以下載文件?
- 哪些使用者可以分享文件?
RBAC 最佳實務
企業在實作角色型存取控制時要考量的最佳實務包括:
- 分析使用者,包括他們的工作流程及其所需的資源。
- 持續對角色進行稽核,使其保持最新狀態並符合目前的要求。
- 建立一個基本角色,其中包括每個使用者所需的存取權限。
- 決定哪些角色具有一組共同的存取要求。
- 確保 RBAC 整合至整個組織的所有系統中。
- 建立處理角色變更的流程,包括設定和註銷使用者。
- 識別需要存取控制的資源。
- 在員工培訓計畫中包括 RBAC 的原則及其運作原理。
- 注意不要建立過多的角色。
角色型存取控制的類型
根據 RBAC 標準的四種存取控制類型是核心、分層、對稱和限制。
核心(Core) RBAC
核心角色型存取控制詳細說明系統的關鍵元件。它可以獨立使用,也可以當作分層和限制 RBAC 的基礎。核心 RBAC 由五個靜態元素組成:使用者、角色、權限、操作和物件。權限由套用於物件的操作組成。
分層(Hierarchical) RBAC
分層角色型存取控制使用角色結構中的階層來建立角色之間的關係(例如,高階、中級、初級)。透過分層 RBAC,授予具有高階角色的使用者其下屬的所有權限,以及針對其需求的特定權限。
對稱(Symmetric) RBAC
對稱角色型存取控制可讓管理員執行權限-角色和使用者-角色審查,以評估指派給現有角色的權限。
限制(Constrained) RBAC
限制角色型存取控制透過職能分工 (Segregation of Duties,SOD) 增強核心 RBAC,其中 SOD 可以是靜態或動態的。對於靜態職能分工 (Static Separation Of Duty,SSD),任何使用者都不能擁有互斥的角色。例如,使用者不能提出又核准提案。動態職能分工 (Dynamic Separation Of Duty,DSD) 允許使用者擁有衝突的角色,但不能在同一個工作階段期間同時執行這兩個角色的操作。
其他類型的存取控制
屬性型存取控制 (Attribute-based Access Control,ABAC)
屬性型存取控制是一種使用者授權解決方案,它會評估使用者的屬性或特徵,而不是評估角色,以根據組織的安全性原則決定存取權限。使用 ABAC,存取規則可以非常細化。
存取控制清單 (Access Control List,ACL)
存取控制清單是列出與資源關聯的權限之表格。針對每個使用者,都有一個項目詳細說明每個物件的安全屬性。
ACL 讓作業系統知道哪些使用者可以存取物件以及有權執行哪些操作。存取的授予或拒絕分為兩類:網路和檔案系統。透過網路,將 ACL 套用至路由器和交換器來評估流量。
ACL 也會評估活動以及是否允許它們通過網路。檔案系統使用 ACL 來篩選和管理透過作業系統對檔案和目錄的存取。
自主存取控制 (Discretionary Access Control,DAC)
自主存取控制會根據物件的擁有者群組或主體決定的原則,來授予或限制對物件的存取。DAC 可讓使用者完全控制其資源,相較於其他存取控制選項,其限制更少。
使用 DAC,如果授予主體存取物件的權限,他們可以:
- 允許使用者與其他主體分享其權限。
- 變更安全屬性。
- 選擇與新的或已更新的物件關聯的安全屬性。
- 修改管理存取控制的規則。
- 與其他主體或物件分享屬性資訊。
強制存取控制 (Mandatory Access Control,MAC)
強制存取控制根據資訊的敏感度和使用者的權限等級來限制對資源的存取。管理者定義 MAC 的標準。MAC 的執行由作業系統或安全核心處理,使用者無法變更。
RBAC 與存取控制清單 (ACL) 的比較
角色型存取控制和 ACL 的用途各不相同。例如,一般認為 RBAC 是管理商務應用程式和資料存取的最佳選擇。另一方面,ACL 則更適合處理個人使用者層級和低階資料的安全性。此外,RBAC 適合整個組織的安全性,而 ACL 更適合授予對特定檔案的存取權限。
RBAC 與屬性型存取控制 (ABAC) 的比較
角色型存取控制(RBAC) 和 屬性型存取控制(ABAC) 之間的主要區別在於授予存取權限的方式。RBAC 會根據使用者的角色和職責授予存取權限。ABAC 則會根據屬性或特徵授予存取權限,例如:
使用者類型
- 安全許可
- 使用者名稱
- 年齡
- 職責
- 部門
一天中的時間
- 夜間鎖定對資源的存取
- 限制使用者在不受監督時的編輯動作
- 限制週末或假日時存取資料
地點
- 限制對特定區域的存取(例如辦公室、校園、國家/地區)
- 拒絕特定裝置的存取(例如手機、具有 Wi-Fi 功能的筆記型電腦)
通常,組織使用 RBAC 進行粗略的存取控制,而 ABAC 則用於精細的存取控制。
RBAC 實作
實作角色型存取控制系統時,必須採用有條理的方法。需要花時間分析細節,以確保系統符合安全要求。實作 RBAC 時必須採取的步驟包括以下內容。
RBAC 實作步驟
- 對所有資源列出詳盡的清單,包括應用程式(即本地端和雲端)、伺服器、文件、檔案、檔案伺服器、資料庫和其他需要安全性的記錄。
- 與經理和人力資源部門合作識別角色。
- 檢視所有角色並判斷應包含多少角色,以及哪些角色可以合併為混合群組。
- 徵求經理和其他關鍵成員對角色的意見回饋和權限等級的意見。
- 為角色指派存取權限。
- 制定整合的時間表,包括系統開發以及使用者溝通與培訓。
- 實施計畫,密切注意任何問題,並根據需要進行修正和調整。
管理 RBAC 實作的最佳實務
- 制定書面原則,說明如何使用角色型存取控制(RBAC) 系統,包括詳細說明變更的流程。
- 接受經理和使用者針對如何最佳化角色型存取控制(RBAC) 系統的意見,並視需要進行相關變更。
- 持續評估角色和安全狀態。
- 在實作對使用者權限的任何變更之前,請先考量變更的理由和影響。
- 執行與權限相關的安全通訊協定。
RBAC 範例
RBAC 名稱範例
RBAC 系統中常見的名稱包括:
- 管理角色指派,將角色連結到角色群組
- 管理角色群組,可以從中新增或刪除成員
- 管理角色範圍,限制角色群組管理的物件
RBAC 角色範例
透過角色型存取控制,可以對使用者指定應用程式中的各種角色。這些角色根據應用程式的類型而有所不同。RBAC 角色的範例如下。
Kubernetes RBAC 角色指派元素
- Role-指定命名空間等級的權限
- ClusterRole-指定叢集等級或跨環境命名空間的權限
- Subject-描述使用者、群組或服務帳戶
- RoleBinding-列出主體及其獲指派的角色,以將角色綁定至命名空間層級的實體
- ClusterRoleBinding-針對叢集中每個命名空間,列出叢集層級的主體及指派的角色
Microsoft Azure RBAC 角色指派元素
- 主體-要求資源並獲得存取權限的使用者、群組、服務主體或受管理身分
- 角色定義-一組權限,定義特定角色中的主體可以對資源執行的操作
- 範圍-定義角色可存取的資源和權限等級
RBAC 權限範例
角色型存取控制權限是根據角色和存取要求授予。角色和權限與使用者在組織中的職位(例如管理員、專家使用者或一般使用者)一致。RBAC 權限的範例包括:
- 管理-適用於執行管理功能的使用者
- 計費-讓一般使用者存取計費帳戶
- 主要-特定帳戶或角色的主要聯絡人
- 技術-適用於執行技術任務的使用者
透過 RBAC,使用者的存取權限與群組的共同職責和需求相關,例如人力資源、銷售或財務。每個角色都有一組權限,如下所示:
角色 | 電子郵件 | CRM(客戶管理系統) | 客戶 DB(資料庫) | 員工記錄 | 公司網路 |
---|---|---|---|---|---|
一般使用者 | 是 | 否 | 否 | 否 | 是 |
工程師 / 開發人員 | 是 | 否 | 否 | 否 | 是 |
人力資源 | 是 | 否 | 否 | 是 | 是 |
IT 系統管理員 | 是 | 是 | 是 | 是 | 是 |
銷售顧問 | 是 | 是 | 是 | 否 | 否 |
RBAC 的優點
實現職能分工(SOD)
由於角色是分開的,理論上,任何單一使用者都不會引起重大安全漏洞,因為駭客僅可入侵該帳戶被允許存取的資源。
提升營運效率
角色型存取控制(RBAC) 提供簡化的方法來指派和管理存取權限,進而簡化管理並提高營運效率。RBAC 還可讓管理員快速新增和變更角色,並在全球各地的作業系統、平台和應用程式中實作。您可以為內部和第三方使用者執行此操作,包括那些只需要暫時存取的使用者。
提高法遵性
角色型存取控制透過限制對資源的存取,幫助組織遵守眾多法規中規定的資料保護和隱私要求。
基於角色的自動化存取還可減少可能會意外向未經授權使用者暴露敏感資料的人為錯誤,以支援法遵性。
RBAC 還提供稽核支援,這有助於符合法遵要求。
節省寶貴的管理時間
透過減少管理員在使用者權限上花費的時間,角色型存取控制使他們能夠專注於更高價值、更重要的任務。此外,藉由限制對某些流程和應用程式的存取,組織可以最佳化資源的使用,例如網路頻寬、記憶體和儲存空間。
提高可視性
角色型存取控制讓網路管理員和經理更清楚地瞭解和監控運作和使用者活動。還能讓他們查看使用者可以存取哪些資源,以確保法遵性並遵守安全通訊協定。
實現零信任架構
角色型存取控制可以實作和執行最小權限原則,這是零信任安全(Zero Trust) 的關鍵原則。RBAC 透過根據使用者的角色以及執行與其角色相關任務所需的權限,來限制使用者的存取權限,以大幅降低發生安全漏洞和資料外洩的風險。
RBAC 用於進階使用者權限管理
角色型存取控制是一種經過實證、以使用者為中心的安全解決方案。它易於使用而且可靠,是管理員的首要之選。RBAC 可保護資源,並使組織遵守許多規章中的安全和隱私權標準。