本文重点讲述JumpServer开源堡垒机的用户、角色、系统用户与资产之间的关系,分享如何快速健全JumpServer的用户体系,实现用户权限的划分,帮助企业快速实现从无到有的JumpServer用户及权限体系建设。

JumpServer开源堡垒机采用RBAC(Role-Based Access Control,基于角色的访问控制)权限管理模型。通过角色定义权限,并进一步关联用户的方式间接赋予用户权限。权限指代具体的操作,它与角色和用户之间犹如从点到线,再到面的关系。

概括地说,权限定义了软件中整个用户体系的操作行为,而角色是在现实世界中对权限的抽象,是一组特定操作行为的集合。软件又进一步通过角色与用户的绑定关系,约定了用户所具有的操作权限,并由此形成了灵活的映射机制。通过“权限-角色-用户”这样的RBAC模型,JumpServer支持了用户权限体系建设中的“最小化原则”,实现了精细化权限控制与灵活赋权之间的管理平衡。

▲ JumpServer权限、角色和用户三者之间关系

一、用户和角色的关系

在创建用户和划分角色时,一定要权衡用户和角色之间的关系,遵循权限最小化原则,这样才能防患于未然,规避生产环境中的运维风险。

JumpServer支持RBAC用户管理模型,通过自定义角色权限,对用户授予某个角色,从而控制用户的权限,实现用户和权限的逻辑分离(区别于ACL,即访问控制列表Access Control Lists模型),极大地方便了权限的管理。

▲ JumpServer用户和角色的关系

二、创建用户及角色划分

对于一些初次使用JumpServer开源堡垒机的用户而言,用户的创建更多的是依赖手动创建的方式。这种方式效率比较低下,而且维护成本较高。因此,在这里推荐几种快速批量创建用户的方法,以提高运维工作的效率。

  1. 创建用户

■ 模板批量创建用户

JumpServer开源堡垒机支持批量创建用户,系统提供创建用户的模板,在下载的模板中填写用户的信息即可完成用户的批量创建。

在批量创建用户时,用户密码的设置有两种方法:

方法一:如果在创建用户时需要自定义密码,在导出模板的“密码策略”字段下,填写“custom”,然后在密码字段下填写用户密码即可;

具体操作步骤如下:

第一步:选择“用户管理”→“用户列表”,点击“导入”按钮,下载创建模板(CSV或者XLSX格式);

第二步:在下载的模板中填写用户信息,然后点击“导入”按钮,选择创建好的模板即可完成用户创建。

方法二:可以在导入用户模板前(用户信息必须填写真实的用户邮箱地址)配置好公司邮箱,在创建好用户后,用户自行点击“生成重置密码链接”,由用户自行设置密码。

具体操作步骤如下:

第一步:用户自定义密码时,选择“设置”→“邮箱设置”,配置好邮箱;

第二步:在创建好用户后,用户自行点击“点击这里设置密码”链接,由用户自行设置密码,然后在导出的模板中填写相应的信息完成导入即可。

■ 接口批量创建用户

JumpServer本身提供标准的API接口,用户可以通过API接口批量创建用户,创建用户接口:http://堡垒机访问地址:端口/api/v1/users/users/。

注意:执行POST请求调用上述API接口,请求的body参数可以参考:http://堡垒机访问地址:端口/api/docs进行查看。

■ Shell脚本批量创建用户

第一步:编辑创建用户信息,依次为用户名称、用户名、邮箱、密码;

第二步:编写创建用户脚本,修改脚本中jumpserver访问地址、jumpserver登录用户、jumpserver用户登录密码(以实际为准),编写完成执行脚本即可。

脚本如下:

#!/bin/bash
#jumpserver访问地址
HTTP_URL="http://192.168.100.100"
#jumpserver登录用户
USERNAME="admin"
#jumpserver用户登录密码
PASSWORD="fit2cloud"
TOKEN=`curl -s -X POST -H 'Content-Type: application/json' -d '{"username":"'"$USERNAME"'","password":"'"$PASSWORD"'"}' ${HTTP_URL}/api/v1/authentication/auth/ |awk  -F ',' '{print $1"}"}'|awk -F '[{ " :]' '{print $6}'`
while read name username email password
docurl -X POST -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json'  -d '{"name":"'"$name"'","username":"'"$username"'","email":"'"$email"'","password":"'"$password"'","is_active":"true","password_strategy":"custom","system_roles":["00000000-0000-0000-0000-000000000003"],"org_roles":["00000000-0000-0000-0000-000000000007"]}' ${HTTP_URL}/api/v1/users/users/
done <name.txt

注意:如果是自定义的角色,自行修改脚本中对应的system_roles和org_roles的id即可。

  1. 角色关系及角色划分

创建用户时默认为普通用户,当然在创建用户时也可以指定用户角色。JumpServer默认自带系统管理员、系统审计员、用户等多种角色,每一种角色关联的权限也不一样。作为管理员,可以根据实际需求自定义用户角色,并对用户角色权限进行自定义编辑。

普通用户:普通用户拥有正常操作和资产登录的权限,但不能对配置进行修改;

审计员:审计员可以查看当前用户的操作行为、用户权限、用户信息、文件传输记录、用户操作日志等信息。当用户触发危险命令时,作为审计员可以对用户操作进⾏实时监控,发现违规操作,⽴即中止用户操作行为;

管理员:管理员是指拥有堡垒机所有权限的用户。作为管理员需要完成工单的审批、用户授权申请、用户权限变更、用户锁定等行为操作,同时针对员工职位的变化对员工的角色和权限做出相应的权限变更。

▲ JumpServer角色关系及角色划分

三、用户、系统用户和资产之间的关系

在JumpServer中,用户对资产的操作权限是由授权规则中授权的系统用户决定的。一般会通过系统用户来实现业务权限的区分,分为可读系统用户、可写系统用户和最高权限系统用户三大类。

然后,根据用户的角色和需求来授权相对应的系统用户。用户可以通过授权的系统用户登录授权的资产,其关系如下:

▲ JumpServer用户、系统用户和资产之间的关系

四、系统用户权限划分

系统用户的权限也是至关重要的,其往往决定了用户对于服务器的实际操作权限。以下方法对系统用户权限的划分提供了两种思路:

方法一:白名单——拒绝所有,开放某些命令;

第一步:选择“资产管理”→“命令过滤”,创建命令过滤规则;

第二步:编辑命令过滤规则,拒绝所有命令,在“正则表达式”内容里面填写 .* 参数;

第三步:允许某些可执行的命令,继续添加第二条命令过滤规则,其优先级一定要小于第一条命令过滤规则的优先级。

方法二:黑名单——允许所有,拒绝某些命令。

第一步:选择“资产管理”→“命令过滤”,创建命令过滤规则;

第二步:点击命令过滤规则的名称,然后点击“创建”,添加需要禁用的命令;

第三步:直接添加需要禁用的命令即可,其他命令默认都允许,可以通过正则添加或者使用“|”符号来分隔多条命令。

五、总结

良好的用户权限体系是JumpServer开源堡垒机在企业最佳实践中的重要保障。作为管理员,我们需要对开发、测试、运维等人员的权限做好规划,统筹大局,搭建一套完整的用户权限体系。权限的灵活运用能够为企业IT系统的安全运维保驾护航。

操作指南|JumpServer用户权限体系的使用实践相关推荐

  1. 基于大数据的用户标签体系建设思路和实践

    在大数据时代,数据在呈现出海量化.多样化和价值化变化的同时,也改变了传统 IT 行业的市场竞争环境.营销策略和服务模式.如何在 ZB 级的海量数据中获取并筛选有价值的信息,是对 IT 企业的一大挑战, ...

  2. 如何构建 FinTech 科学反欺诈体系|架构师实践日

    微众圈 > 微信资讯 > 科技 > 文章 如何构建 FinTech 科学反欺诈体系|架构师实践日 摘自公众号:七牛云发布时间:2017-4-11 21:28:33 FinTech,即 ...

  3. 科学数据中心资源和用户访问控制体系

    科学数据中心资源和用户访问控制体系 曹乔卓然1, 陈祖刚2, 李国庆2, 李静2 1 郑州大学地球科学与技术学院,河南 郑州 450052 2 中国科学院空天信息创新研究院,北京 100094 摘要: ...

  4. 安徽航信研发项目管理体系探索与实践

    一.前言 安徽航天信息科技有限公司(以下简称"安徽航信")是航天信息股份有限公司的控股子公司,是隶属于中国航天科工集团公司的三级单位,成立于2003年12月,位于安徽省合肥市高新技 ...

  5. B端产品如何搭建用户帮助体系

    用户帮助体系可以提升用户的使用体验,引导用户正确的使用产品,并且体验产品的各个功能,B端产品因为其特殊的业务属性和复杂度,通常其学习成本不低.这些成本不仅仅体现在对于复杂业务概念及流程的认知方面,同时 ...

  6. 速戳,用户管理体系的搭建全攻略

    导读:用户管理体系是一套从用户中挖掘并招募部分用户,给予其一定的官方管理权利,让其协助官方运营人员管理社区类事务的管理模型.用户管理体系面向产品的核心用户,致力于增强用户归属感和成就感,从而让用户在产 ...

  7. Day239.RBAC模式、动态加载用户权限资源规则数据规则、【记住我】注销多次登录图片验证码session验证码验证功能 -springsecurity-jwt-oauth2

    1.RBAC权限管理模型 一.RBAC权限模型简介 RBAC权限模型(Role-Based Access Control)即:基于角色的权限控制.模型中有几个关键的术语: 用户:系统接口及功能访问的操 ...

  8. video 微信 标签层级过高_基于大数据的用户标签体系建设思路和应用

    在大数据时代,数据在呈现出海量化.多样化和价值化变化的同时,也改变了传统IT行业的市场竞争环境.营销策略和服务模式.如何在ZB级的海量数据中获取并筛选有价值的信息,是对IT企业的一大挑战,通过构建客户 ...

  9. moss2007 权限体系分析(深入到数据库结构的分析)

    SPS2007相对SPS2003来说,功能增强了很多,新的概念也增强了很多,在权限体系这块,SPS2007也是有比较大的增强,由于权限体系非常重要,所以我们对其作出比较详尽的分析. 1.SPS2007 ...

  10. hive的用户和用户权限

    hive的用户和用户权限 HiverServer2支持远程多客户端的并发和认证,支持通过JDBC.Beeline等连接操作.hive默认的Derby数据库,由于是内嵌的文件数据库,只支持一个用户的操作 ...

最新文章

  1. autowired java_Java 基础之Autowired 是否是自动注入
  2. 打包镜像并同时压缩多个镜像
  3. php yii结果集合并,PHP 基础之数组合并
  4. 全网首发:char数组矩阵转bit的算法
  5. HDU 2531 (BFS搜索)
  6. c# 导出Excel
  7. Python datetime日期相减
  8. 生产环境 java.util.concurrent.RejectedExecutionException: event executor terminated 错误分析
  9. 网安面试题(common)
  10. Webservice CXF 调用报错 Could not find conduit initiator for address:
  11. 关于汽车信息安全测试的公司-阿古斯
  12. 电子元器件行业SRM供应商系统加强产业链协同,保证零差错高效率
  13. Python pyecharts地理数据可视化 绘制地理图表
  14. 计算机是概念化还是程序化的,思维的基本特征知识点的理解
  15. jsp393学生宿舍管理系统mysql
  16. Microbiome:南农张瑞福团队揭示放牧引起草原微生物组变化驱动土壤有机碳的转化和生产力的提升...
  17. anaconda安装pythonocc
  18. 为什么自动驾驶使用linux,一旦用上,欲罢不能,为何ADiGO 3.0自动驾驶系统如此让人上瘾?...
  19. Java时间处理(UTC时间和本地时间转换)
  20. 深度学习目标检测在实际场景中的应用(附源代码)

热门文章

  1. 神经网络的双曲线正切激活函数
  2. 软件测试答疑:抽奖按钮怎么测试?
  3. Java校园语音通信软件开发
  4. 国家信息安全等级保护三级认证(三级等保设置以及注意点)
  5. Qt 未找到文件:NMAKE
  6. 用python批量下载modis数据的速度怎么样_MODIS数据下载与处理-pymodis的使用(持续更新...)...
  7. json 转 map,循环得到 key,value
  8. CentOS7.4 更改SSH端口号
  9. 计算机office软件版本,office哪个版本最好用,你在用的office是哪个版本
  10. 那些年,我们一起找过的工作