基于角色的访问控制 (RBAC)

基于角色的访问控制(RBAC)是一种安全方法,根据用户分配的角色限制资源访问,仅允许授权用户访问。在SUSE Multi-Linux Manager中,RBAC确保用户只能执行其明确授权的操作并访问资源,从而增强安全性并简化管理。

RBAC 的核心原则包括:

  • *最小权限原则:*仅授予用户执行其任务所需的必要访问权限。

  • *精细化控制:*针对特定功能提供精细的控制能力。

  • *责任分离:*防止单个用户对关键处理拥有过多控制权。

  • *可审计性:*能够清晰跟踪用户的操作及权限配置。

1. RBAC 核心概念

理解以下核心概念对于高效管理 RBAC 至关重要:

  • *角色:*一组定义特定能力的权限集合,位于SUSE Multi-Linux Manager内。角色分配给用户后,用户将获得该角色对应的所有聚合权限。

    角色分配给用户后,用户将获得该角色对应的所有聚合权限。

  • *权限:*执行特定操作、访问特定网页或调用SUSE Multi-Linux Manager内特定API端点的原子授权。在SUSE Multi-Linux Manager中,权限由名称空间及其访问模式表示。

  • *用户:*与SUSE Multi-Linux Manager交互的单个账户。用户可以被指派一个或多个角色。

  • *名称空间:*以树状结构组织的细粒度访问控制单元。大多数名称空间具有独特的“查看”或“修改”模式。

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 或 Web UI 管理 RBAC 角色和权限。 要通过网页 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 环境:

  • *最小权限原则:*始终授予用户执行其职责所需的最低权限。避免过于宽泛的权限。

  • *定期审查:*定期审查用户分配到的角色和权限,确保其仍然适用且符合当前的安全策略。

  • *记录角色:*清晰记录您创建的每个自定义角色的用途和权限。

  • *职责分离:*实施能够强制执行职责分离的角色,以防止单个用户对关键处理拥有过多控制权。