帳戶
基於角色的存取控制
RBAC(基於角色的存取控制)文件
概覽
系統實施全面的 RBAC 模型,以管理不同資源和操作的存取控制。它由角色、政策和使用者角色分配組成。
核心元件
資源
系統定義了以下受保護的資源:
- Audit
- DevPod
- Image
- Payment
- Pubkey
- Registry
- Region
- Resource
- Serverless
- Storage
- Team
- Role
- UserRole
操作
資源上可用的操作:
- List
- Get
- Create
- Update
- Delete
角色系統
角色是權限的集合,定義了使用者可以對特定資源執行的操作。角色透過將相關權限分組在一起,有效地組織和管理存取權限。
預定義角色
-
AccountAdmin
- 對帳戶級資源的完全存取
- 可以管理團隊成員
- 可以配置帳戶設定
-
Developer
- 可以管理 DevPods
- 可以管理 Serverless 資源
- 可以管理 Images
- 可以管理 Storage(僅建立/讀取)
-
Auditor
- 對 Audit 日誌的唯讀存取
-
Finance
- 對 Payment 功能的完全存取
-
Ops
- 對 DevPods 和 Serverless 的讀取存取
- 對 Images、Storage、Pubkey 和 Resources 的完全存取
政策
政策是存取控制的基本構建塊,定義了特定權限。每個政策代表一個規則,授予在特定資源上執行某些操作的權限。
政策結構
- Resource:目標資源
- Action:允許的操作
政策分配
- 政策透過 RolePolicy 對應分配給角色
- 可以將多個政策分配給單個角色
- 政策分配對每個角色是唯一的
使用者權限控制
系統透過三層模型實施權限控制:使用者、角色和政策。角色充當使用者和政策之間的橋樑,提供靈活且可管理的方式來控制存取權限。
控制流程
-
使用者分配
- 使用者被分配一個或多個角色
- 角色分配特定於每個帳戶
- 使用者可以在不同帳戶中擁有不同角色
-
角色作為橋樑
- 角色充當政策集合的容器
- 每個角色定義一組特定的責任
- 角色使權限管理更易於維護
-
政策執行
- 政策定義實際權限
- 每個請求都根據使用者角色的政策進行驗證
- 僅當存在匹配的政策時才授予存取權限
授權程序
-
請求處理
- 提取帳戶資訊
- 識別目標資源和操作
- 驗證使用者角色和政策
-
權限檢查
- 根據目標帳戶驗證特定於帳戶的角色
- 政策匹配考慮精確匹配和萬用字元
-
存取控制
- 如果任何分配的角色具有匹配的政策,則授予存取權限
- 被拒絕的請求返回空結果而不是錯誤
- 稽核日誌記錄在 RBAC 驗證之後進行
最佳實踐
-
角色管理
- 盡可能使用預定義角色
- 使用所需的最低權限建立自訂角色
- 定期審查角色分配
-
安全考慮
- 始終驗證帳戶上下文
- 實施基於角色的 UI 限制
- 維護角色變更的稽核日誌
-
效能
- 角色和政策分配已快取
- 批次操作可用於大量分配
- 針對權限檢查最佳化資料庫查詢