基于角色的访问控制 (RBAC)
基于角色的访问控制 (RBAC) 是一种安全机制,它根据用户被分配的角色来限制授权用户对资源的访问权限。在 SUSE Multi-Linux Manager 中,RBAC 可确保用户仅能执行其获得明确授权的操作以及访问相关资源,从而提升安全性并简化管理流程。
RBAC 的核心原则包括:
-
Principle of Least Privilege: Granting only the necessary access rights for users to perform their tasks.
-
Granular Control: Providing fine-grained control over specific functionalities.
-
Separation of Duties: Preventing a single user from having too much control over critical processes.
-
Auditability: Allowing for clear tracking of user actions and permissions.
1. RBAC 核心概念
理解以下核心概念对于高效管理 RBAC 至关重要:
-
Role: A collection of permissions defining a specific set of capabilities within SUSE Multi-Linux Manager. Roles are assigned to users, granting the user aggregated permissions.
角色分配给用户后,用户将获得该角色对应的所有聚合权限。
-
Permission: An atomic authorization to perform a specific action, access a specific web page or call a specific API endpoint within SUSE Multi-Linux Manager. In SUSE Multi-Linux Manager, permissions are represented by namespaces and their access modes.
-
User: An individual account that interacts with SUSE Multi-Linux Manager. Users are assigned one or more roles.
-
Namespace: A granular unit of access control organized in a tree-like structure. Most namespaces have distinct "View" or "Modify" modes.
2. 在 SUSE Multi-Linux Manager 中使用角色
SUSE Multi-Linux Manager 提供了预定义角色,并允许您定义额外的自定义角色,且可选择从多个其他角色的组合继承权限。
2.1. 预定义角色
有关预定义角色及其说明的完整列表,请参见 administration:users.adoc#administrator-roles。
3. 用于精细化访问控制的名称空间
名称空间提供精细的访问控制,以树形结构组织。对于大多数名称空间,其内部访问权限可通过“查看”和“修改”模式进一步细化。
| 名称空间 | 访问模式 | 说明 |
|---|---|---|
|
修改 |
构建容器映像或 Kiwi 映像 |
|
修改 |
从已注册的映像存储区导入容器映像 |
|
查看 |
列出所有映像 |
|
修改 |
删除映像 |
|
查看 |
查看映像详细信息、补丁、软件包、构建日志及群集信息 |
|
修改 |
检查、重新构建、删除映像 |
|
查看 |
查看映像配置文件详细信息 |
|
修改 |
创建映像配置文件、编辑配置文件详细信息 |
|
查看 |
列出所有映像配置文件 |
|
修改 |
删除映像配置文件 |
|
查看 |
查看映像存储区详细信息 |
|
修改 |
创建映像存储区、编辑存储区详细信息 |
|
查看 |
列出所有映像存储区 |
|
修改 |
删除映像存储区 |
名称空间及其说明的完整列表可通过调用 access.listNamespaces API 方法获取。有关详细信息(包括请求和响应格式),请参见 SUSE Multi-Linux Manager API 文档。
4. RBAC 管理
目前只能通过 API 来管理 RBAC 角色和权限。要通过 Web UI 为用户分配角色,请参见 用户。
4.1. 通过 API 管理 RBAC
SUSE Multi-Linux Manager API 提供了以编程方式管理角色、权限及用户分配的相关方法。
4.1.1. access API
以下 API 方法用于管理角色及其关联的访问权限:
-
listNamespaces:列出 SUSE Multi-Linux Manager 中可用的名称空间、访问模式及其说明。 -
listPermissions:列出某个角色的已授权名称空间。 -
listRoles:列出 SUSE Multi-Linux Manager 中的现有角色。 -
createRole:创建新角色,可选择从现有角色复制权限。 -
deleteRole:删除角色。 -
grantAccess:授予对名称空间的访问权限。 -
revokeAccess:撤销对名称空间的访问权限。
4.1.2. user API
以下 API 方法用于管理用户与角色的分配关系:
-
listPermissions:列出某个用户的有效权限。 -
listRoles:列出某个用户分配到的角色。 -
addRole:为某个用户分配角色。 -
removeRole:去除某个用户的角色。
有关详细的 API 文档(包括请求和响应格式),请参见 SUSE Multi-Linux Manager API 参考手册。
5. RBAC 最佳实践
遵循以下最佳实践有助于维护安全、高效且易于管理的 RBAC 环境:
-
Principle of least privilege: Always grant users the minimum permissions necessary to perform their duties. Avoid overly broad permissions.
-
Regular review: Periodically review assigned roles and permissions for users to ensure they are still appropriate and comply with current security policies.
-
Document roles: Clearly document the purpose and permissions of each custom role you create.
-
Separate duties: Implement roles that enforce separation of duties to prevent a single user from having too much control over critical processes.