操作指南通过JumpServer实现Kubernetes运维
本文重点介绍如何通过JumpServer实现Kubernetes的运维安全审计。此前,我们专门介绍过在Kubernetes集群上快速部署JumpServer的方法步骤,可参见操作指南在Kubernetes集群上快速部署JumpServer开源堡垒机一文。
一、Kubernetes运维审计现状
Kubernetes是一种可自动实施Linux容器操作的开源平台,可以帮助用户省去应用容器化过程中的许多手动部署和扩展操作,其已经成为了容器编排的事实标准。企业基于Kubernetes部署的业务应用越来越多,这样一来,企业用户在Kubernetes的使用和管理上就面临了一些问题:
业务线众多,多个团队都需要使用Kubernetes,存在Token复用的情况,用户的身份很难唯一;
维护人员的操作行为难以约束,如果对容器进行了一些违规、越权操作难以进行阻止;
维护人员的操作过程不透明,管理人员对于当前有哪些运维人员对集群做了哪些操作完全不清楚,也不清楚这些操作的风险;
缺乏有效的技术手段来记录和复现用户的操作场景,当出现运维安全事故的时候,无法快速定位故障原因和责任人。
JumpServer是广受欢迎的开源堡垒机,是符合4A(包含认证Authentication、授权Authorization、账号Accounting和审计Auditing)规范的运维安全审计系统。JumpServer可以纳管众多不同类型的资产,包括Linux资产、Windows资产、网络资产、BS应用资产、CS应用资产等,同时支持纳管Kubernetes资产。值得关注的是,JumpServer还是市面上第一款支持Kubernetes运维安全审计的堡垒机。
在日常运维管理方面,JumpServer内嵌Kubectl客户端,能够直接管控Kubenetes的Kubectl命令;在应用部署和管理方面,JumpServer内嵌Helm客户端,能够直接管控Helm命令进行Kubernetes应用安装管理,并在此基础上能够对Kubectl、Helm命令与操作进行记录、录屏和高危命令阻断。
下面就来详细介绍下如何通过JumpServer开源堡垒机实现Kubernetes的运维安全审计。
二、划分权限对应关系
基于Kubernetes的RBAC(即RoleBasedAccessControl,基于角色的访问控制)权限能力,并结合JumpServer的系统账号管理能力,企业可以设计不同的权限划分关系,如下图所示:
管理员在Kubernetes为不同的用户或者团队创建不同的SA(即ServiceAccount,服务账户),并且进行相应的RBAC权限控制。同时在JumpServer上为不同的SA创建不同的系统用户,形成如上图一一绑定的关系。
三、JumpServer纳管Kubernetes的具体步骤
1。获取Kubernetes集群的访问入口地址;
2。在JumpServer中添加相应的Kubernetes应用;
3。将JumpServer堡垒机对Kubenetes进行授权,结合Kubenetes自身的RBAC权限管控,控制人员的访问权限;
4。创建KubernetesSA账号,并查看Token信息;
5。将JumpServer中的普通用户和Kubernetes角色进行绑定;
6。通过WebTerminal连接Kubernetes资产,普通用户无法在左侧菜单栏查看所有的Pods信息,只能查看所拥有的Namespace下的资产情况,无法获取到其他业务Namespace的状态;
7。支持使用Helm命令。
四、针对高危命令配置审核机制,规避误操作行为
1。添加过滤规则时,管理员可以选择复核或者拒绝选项进行审核操作;
2。在系统用户列表中,绑定对应的命令过滤器;
3。阻断结果:当普通用户操作高危命令时,需要管理员进行命令复核才能继续执行。
五、全程跟踪记录Kubernetes的操作过程
1。对于在线用户,管理员可以通过JumpServer进行实时监控,一旦发现有任何异常操作对其立刻阻断;
2。对于历史会话,管理员可以在线或者下载到本地进行录像查看;
3。记录Kubernetes集群的操作命令,一旦系统出现故障,能够快速定位故障原因和责任人;
4。创建会话分享,支持多用户协同办公。
六、价值收益
通过JumpServer实现Kubernetes的运维安全审计,可以对企业的Kubernetes管理带来了一些实质性的价值和收益:
1。对于Kubernetes集群管理可以形成统一的运维入口,实现运维操作路径的唯一化;
2。通过JumpServer系统账号管理能力和Kubernetes的RBAC权限管控结合,严格控制了访问权限,有效规避了非授权访问带来的问题;
3。Token托管使得密码管理规范化并且能够有效落地,避免了因人员的流动导致Kubernetes密码外泄的风险;
4。能够完整记录运维人员的操作过程,当Kubernetes业务应用因人为操作导致故障的时候,能够通过JumpServer快速定位到问题原因和责任人。