在 Rancher 中,用户的最终权限是由 全局权限 和 集群/项目角色 共同决定的,两者协同工作以实现细粒度的访问控制。
Rancher 的权限模型是 层级化 和 叠加式 的:
-
全局权限 控制平台级操作和初始访问。
-
集群/项目角色 细化具体资源的操作权限。
两者共同决定用户的实际能力,确保灵活且安全的访问控制。
1. 全局权限(Global Permissions)
-
作用范围:适用于整个 Rancher 平台(所有集群和资源)。
-
关键权限:
-
管理用户、全局设置(如认证配置)。
-
创建、管理集群(如创建/导入集群的权限)。
-
分配集群或项目的成员角色(需具备相应权限)。
-
-
示例角色:
-
管理员
(Administrator):完全控制 Rancher 和所有资源。 -
标准用户
(Standard User):可以创建新集群或项目,但权限受限于集群/项目角色。 -
只读用户
(Read-Only):仅查看全局资源。
-
2. 集群和项目角色(Cluster & Project Roles)
-
作用范围:仅针对特定集群或项目内的资源。
-
关键权限:
-
集群角色:管理节点、存储、命名空间、项目等(如
集群所有者
、集群成员
)。 -
项目角色:管理工作负载、服务、配置映射等(如
项目所有者
、项目只读
)。
-
-
层级关系:项目属于集群,因此集群权限通常比项目权限更宽泛。
3. 权限的叠加与限制
-
叠加生效:用户对某个资源的实际权限是全局权限与集群/项目角色的叠加。
-
例如:用户有全局
标准用户
角色(允许创建集群),但在某集群内仅有只读
角色,则只能查看该集群。
-
-
最小权限原则:如果全局权限限制某操作(如禁止管理用户),即使集群角色允许,用户也无法执行。
4. 权限分配示例
-
场景:用户A需要管理
集群X
中的项目Y
,但无权访问其他集群。-
步骤:
-
全局权限:分配
标准用户
(允许访问集群列表)。 -
集群角色:在
集群X
中分配集群成员
角色。 -
项目角色:在
项目Y
中分配项目所有者
角色。
-
-
-
结果:用户A可完全管理
项目Y
,但无法操作其他集群或项目(除非额外授权)。
参考链接:管理 RBAC | Rancher