基于角色的访问控制 (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

2.2. 定义额外角色

要定义额外角色,您可以执行以下操作:

  • 选择多个现有角色,从中继承权限。

  • 指定额外的名称空间,以授予访问权限。

3. 用于精细化访问控制的名称空间

名称空间提供精细的访问控制,以树形结构组织。对于大多数名称空间,其内部访问权限可通过“查看”和“修改”模式进一步细化。

Table 1. 示例:映像管理相关名称空间和访问模式
名称空间 访问模式 说明

cm.build

修改

构建容器映像或 Kiwi 映像

cm.image.import

修改

从已注册的映像存储区导入容器映像

cm.image.list

查看

列出所有映像

cm.image.list

修改

删除映像

cm.image.overview

查看

查看映像详细信息、补丁、软件包、构建日志及群集信息

cm.image.overview

修改

检查、重新构建、删除映像

cm.profile.details

查看

查看映像配置文件详细信息

cm.profile.details

修改

创建映像配置文件、编辑配置文件详细信息

cm.profile.list

查看

列出所有映像配置文件

cm.profile.list

修改

删除映像配置文件

cm.store.details

查看

查看映像存储区详细信息

cm.store.details

修改

创建映像存储区、编辑存储区详细信息

cm.store.list

查看

列出所有映像存储区

cm.store.list

修改

删除映像存储区

名称空间及其说明的完整列表可通过调用 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.