2.4. 基于角色的访问控制
基于角色的访问控制(RBAC)是一种为管理用户指定一组权限的机制。它允许多个用户共享管理 JBoss EAP 服务器的职责,而无需每个用户都需要不受限制的访问权限。通过为管理用户提供职责分离,JBoss EAP 使组织能够轻松在个人或组之间分配责任,而无需授予不必要的特权。这可确保您的服务器和数据的最大安全性,同时仍然为配置、部署和管理提供灵活性。
JBoss EAP 中的 RBAC 通过角色权限和限制的组合来工作。提供了七个预定义角色,每个角色都有不同的固定权限。为每个管理用户分配一个或多个角色,指定用户在管理服务器时被允许执行的操作。
JBoss EAP 默认禁用 RBAC。
标准角色
JBoss EAP 提供了七个预定义用户角色: 监控器
、Operator
、维护者、Deploymenter
、A
udi
tor、管理员
和 SuperUser
。每个角色具有不同的权限集,专为特定用例而设计。Monitor
、Operator
、Maintainer
、Admin
istra tor 和 SuperUser
角色连续相互构建,每个角色的权限都比以前多。Auditor
和 Deployer
角色分别类似于 monitor
和 Maintainer
角色,但它们具有一些特殊的权限和限制。
- Monitor
-
Monitor 角色的用户
拥有最少的权限,只能读取服务器的当前配置和状态。此角色适用于需要跟踪和报告服务器性能的用户。监控器
无法修改服务器配置,也不能访问敏感数据或操作。 - Operator
-
Operator
角色通过添加修改服务器的运行时状态的功能来扩展monitor
角色。这意味着Operator
可以重新加载和关闭服务器,以及暂停和恢复 Jakarta Messaging 目的地。Operator
角色是负责应用服务器的物理或虚拟主机的用户的理想选择,他们可以确保在需要时正确关闭和重新启动服务器。Operator
无法修改服务器配置或访问敏感数据或操作。 - Maintainer
-
Maintainer
角色有权查看和修改运行时状态和除敏感数据和操作以外的所有配置。Maintainer
角色是无法访问敏感数据和操作的一般用途角色。Maintainer
角色允许用户获得几乎完全的访问权限来管理服务器,而无需授予这些用户对密码和其他敏感信息的访问权限。维护人员
无法访问敏感数据或操作。 - Administrator
-
除了审计日志记录系统外,
Administrator
角色对服务器上的所有资源和操作具有不受限制的访问权限。Administrator
角色可以访问敏感数据和操作。此角色还可以配置访问控制系统。只有在处理敏感数据或配置用户和角色时,才需要Administrator
角色。管理员
无法访问审计日志记录系统,也不能将自己更改为Auditor 或
SuperUser
角色。 - 超级用户
-
SuperUser
角色没有任何限制,并且可以完全访问服务器的所有资源和操作,包括审计日志记录系统。如果禁用 RBAC,则所有管理用户都具有等同于SuperUser
角色的权限。 - deployer
-
Deployer
角色具有与monitor
相同的权限,但它可以修改部署的配置和状态,以及启用为应用资源的任何其他资源类型。 - 审核员
-
Auditor
角色具有monitor
角色的所有权限,也可查看敏感数据,但不能修改。它对审计日志记录系统具有完全访问权限。Auditor
角色是SuperUser
之外的唯一角色,它可以访问审计日志记录系统。审核员
无法修改敏感数据或资源。仅允许读取访问权限。
权限
权限
决定了每个角色可以做什么,不是每个角色都有每个权限。值得注意的是,SuperUser
具有每个权限,而 monitor
具有最少权限。每个权限都可以授予一组资源的读取和写入访问权限。类别为运行时状态、服务器配置、敏感数据、审计日志和访问控制系统。
Monitor | Operator | Maintainer | deployer | |
---|---|---|---|---|
读取配置和状态 | ✘ | ✘ | ✘ | ✘ |
阅读敏感数据 2 | ||||
修改敏感数据 2 | ||||
读取/修改审计日志 | ||||
修改运行时状态 | ✘ | ✘ | ✘1 | |
修改持久配置 | ✘ | ✘1 | ||
读取/修改访问控制 |
1 权限仅限于应用程序资源。
审核员 | Administrator | 超级用户 | |
---|---|---|---|
读取配置和状态 | ✘ | ✘ | ✘ |
阅读敏感数据 2 | ✘ | ✘ | ✘ |
修改敏感数据 2 | ✘ | ✘ | |
读取/修改审计日志 | ✘ | ✘ | |
修改运行时状态 | ✘ | ✘ | |
修改持久配置 | ✘ | ✘ | |
读取/修改访问控制 | ✘ | ✘ |
2 哪些资源被视为敏感数据,它们使用敏感度进行配置。
约束(constraint)
约束是指定资源的 access-control 配置集。RBAC 系统使用限制和角色权限的组合来确定任何特定用户是否可以执行管理操作。
限制分为三种分类:
- 应用程序约束
- 应用约束定义可由 Deployer 用户访问的资源和属性集合。默认情况下,唯一启用的应用程序约束是 core,其中包括部署和部署覆盖。还包含了对数据源、日志记录、邮件、消息传递、命名、资源适配器和安全性的应用程序限制,但默认情况下不启用。这些限制不仅允许 Deployer 用户部署应用,还能够配置和维护这些应用所需的资源。
- 敏感度限制
- 敏感度限制定义一组被视为敏感的资源。敏感资源通常是机密(如密码)或将对服务器运行有严重影响的资源,如联网、JVM 配置或系统属性。访问控制系统本身也被视为敏感。允许写入敏感资源的唯一角色是 Administrator 和 SuperUser。Auditor 角色只能读取敏感资源。其他角色没有访问权限。
- Vault Expression 约束
- vault 表达式约束定义读取和写入 vault 表达式是否被视为敏感操作。默认情况下,读取和写入 vault 表达式是敏感的操作。
2.4.1. 配置 RBAC
如果已经启用了 RBAC,则必须分配 SuperUser
或 Administrator
角色,以便在用户或组级别进行配置更改。
流程
使用以下命令启用 RBAC:
/core-service=management/access=authorization:write-attribute(name=provider,value=rbac)
作为 JBoss EAP 的
SuperUser
或管理员
,配置 RBAC:要添加其中一个支持的角色,如具有只读权限的
Monitor
角色,请使用以下命令:/core-service=management/access=authorization/role-mapping=Monitor:add()
注意有关
monitor
角色和其他您可以添加角色的更多信息,请参阅基于角色的访问控制。要将用户添加到特定角色,如
Monitor
角色,请使用以下命令:/core-service=management/access=authorization/role-mapping=Monitor/include=user-timRO:add(name=timRO,type=USER)
要在特定角色(如
Monitor
角色)中添加组,请使用以下命令:/core-service=management/access=authorization/role-mapping=Monitor/include=group-LDAP_MONITORS:add(name=LDAP_MONITORS, type=GROUP)
要从特定角色中排除用户或组,请使用以下命令:
/core-service=management/access=authorization/role-mapping=Monitor/exclude=group-LDAP_MONITORS:add(name=LDAP_, type=GROUP)
重启服务器或主机以启用它与 RBAC 配置操作:
要重启主机机器,请使用以下命令:
reload --host=master
要在独立模式中重启服务器,请使用以下命令:
reload