权限管理方法、装置、电子设备及介质与流程

文档序号:30185540发布日期:2022-05-26 19:39阅读:97来源:国知局
权限管理方法、装置、电子设备及介质与流程

1.本发明涉及计算机技术领域,尤其涉及一种权限管理方法、装置、电子设备及介质。


背景技术:

2.kubernetes提供的原生的用户账户和用户组创建和rbac认证权限去控制不同用户对集群的操作影响。现通常方案是创建证书,然后通过kubectl提供的config插件去进行一系列命令得到用户证书,最后创建rbac,为用户赋予权限。
3.云下需要将用户对集群的影响严格把控,不然可能因为误操作或未限制操作,导致集群崩溃,发生不可估量的事故。例如对于同一个项目,对于运维和开发两个用户群体(用户组)所需的项目权限范围是不同的,对于一个统一集群平台中,不同组织所需的集群资源管理权限范围也是不同的。


技术实现要素:

4.本发明实施例的主要目的在于提出一种权限管理方法、装置、电子设备及介质,提高了权限认证效率和安全性。
5.本发明的一方面提供了一种权限管理方法,其特征在于,包括:创建k8s管理组织,对所述k8s管理组织进行监听,得到所述k8s管理组织的资源信息;根据所述资源信息对创建用户的证书、签名及配置;对所述签名执行审批,根据审批结果对所述配置映射至配置表;根据所述配置表,设置用户的访问控制权限;根据所述访问控制权限为用户分配对应的用户命名空间。
6.根据所述的权限管理方法,其中创建k8s管理组织,对所述k8s管理组织进行监听,得到所述k8s管理组织的资源信息包括:通过kubernetes的informer-listener机制,监听所述k8s管理组织的所述资源信息,其中所述资源信息内容包括组织名称和项目列表。
7.根据所述的权限管理方法,其中根据所述资源信息对创建用户的证书、签名及配置包括:检测所述k8s管理组织是否存在所述证书,对存在所述证书所述k8s管理组织执行更新,或者,对未存在所述证书的所述k8s管理组织依次创建证书、签名及配置。
8.根据所述的权限管理方法,其中对未存在所述证书的所述k8s管理组织依次创建证书、签名及配置包括:读取所述k8s管理组织的根证书,调用x509方法,生成所述k8s管理组织的用户客户端的所述证书;通过kubernetes提供的sdk创建kubernetes集群证书资源的所述签名及证书的所述配置,所述证书为集群认证证书。
9.根据所述的权限管理方法,其中对所述签名执行审批包括:通过kubernetes的informer-listener机制,监听所述签名的资源创建,并根据预设审批规则,对所述签名执行进行自动审批,读取集群客户端的所述证书并写入所述配置,所述预设审批规则用于表征所述签名是否满足逻辑规范。
10.根据所述的权限管理方法,其中根据审批结果对所述配置映射至配置表包括:通
过kubernetes的sdk,创建配置表类型资源,将所述配置保存于所述配置表中,所述配置表支持查询和导出。
11.根据所述的权限管理方法,其中根据所述配置表,设置用户的访问控制权限;根据所述访问控制权限为用户分配对应的用户命名空间包括:通过rolebinding对用户授予role权限,所述role权限用于表征用户的集群权限,所述集群权限用于表征用户对所述命名空间的管理权限,通过用户的所述证书对所述命名空间执行管理。
12.本发明实施例的另一方面提供了一种权限管理装置,包括:
13.第一模块,用于创建k8s管理组织,对所述k8s管理组织进行监听,得到所述k8s管理组织的资源信息;
14.第二模块,用于根据所述资源信息对创建用户的证书、签名及配置;
15.第三模块,用于对所述签名执行审批,根据审批结果对所述配置映射至配置表;
16.第四模块,用于根据所述配置表,设置用户的访问控制权限;
17.第五模块,用于根据所述访问控制权限为用户分配对应的用户命名空间。
18.本发明实施例的另一方面提供了一种电子设备,包括处理器以及存储器;
19.所述存储器用于存储程序;
20.所述处理器执行所述程序实现如前文所描述的方法。
21.本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文所描述的方法。
22.本发明的有益效果为:只需要根据现有组织创建相应的k8s管理组织,即可得到用户证书,步骤简单,对kubernetes无入侵,并且将证书保存到configmap中提供ui平台和用户在后台命令使用;本发明保存了集群用户信息在k8s管理组织,可通过此资源信息得到用户及项目信息;屏蔽了对集群的学习成本,只需对需要的用户体系在编排文件中阐述即可得到;提高了权限认证效率和安全性。
23.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
24.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
25.图1是本发明实施例的方法的流程示意图。
26.图2是本发明实施例的权限管理方法的流程示意图。
27.图3是本发明实施例的用户权限使用流程示意图。
28.图4是本发明实施例的权限管理分析装置图。
具体实施方式
29.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。在后续的描述
中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特有的意义。因此,“模块”、“部件”或“单元”可以混合地使用。“第一”、“第二”等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。在本后续的描述中,对方法步骤的连续标号是为了方便审查和理解,结合本发明的整体技术方案以及各个步骤之间的逻辑关系,调整步骤之间的实施顺序并不会影响本发明技术方案所达到的技术效果。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
30.术语解释:
31.kubernetes词汇解释:
32.namespace:kubernetes支持多个虚拟集群,它们底层依赖于同一个物理集群。这些虚拟集群被称为名字空间。在一些文档里名字空间也称为命名空间。
33.config:使用kubeconfig文件,可以定义组织集群、用户和命名空间。还可以定义上下文,以便在集群和命名空间之间快速轻松地切换
34.csr:certificatesigningrequest(csr)资源用来向指定的签名者申请证书签名,在最终签名之前,申请可能被批准,也可能被拒绝。
35.rbac:基于角色(role)的访问控制(rbac)是一种基于组织中用户的角色来调节控制对计算机或网络资源的访问的方法。
36.informer:同步本地缓存,把api资源对象缓存一份到本地,根据发生的事件类型,触发事先注册好的控制器回调;
37.listener:从本地缓存中获取api资源对象;
38.技术词汇解释:
39.k8sadminorganization:crd名称,k8s管理组织
40.organization:组织或用户名称;
41.projects:项目名称,本技术以namespace隔离各个项目;
42.controller:资源处理插件,可以根据k8sadminorganization的资源信息,进行证书构建。
43.如图1所示,本实施例公开了本发明方法的流程图,其公开了如下流程:
44.s100,创建k8s管理组织,对k8s管理组织进行监听,得到k8s管理组织的资源信息;
45.s200,根据资源信息对创建用户的证书、签名及配置;
46.s300,对签名执行审批,根据审批结果对配置映射至配置表;
47.s400,根据配置表,设置用户的访问控制权限;
48.s500,根据访问控制权限为用户分配对应的用户命名空间。
49.在一些实施方案中,可以通过一控制器自动实现如上述的方法步骤,如插件。
50.根据本实施例公开的技术方案,其至少具有以下有益效果:本发明的关键点在于简化集群权限控制,通过一个类型为k8sadminorganization的编排文件简单明了的阐述想要的组织和权限,即可得到相应的权限文件;本发明使用crd(签名)技术,对kubernetes无入侵,可通过kube-apiserver进行统一管理;实现了复杂流程隐藏,避免权限给予错误,并可简单明了的查看到现有的组织和组织权限,对于同步与管理已有组织架构有着降低复杂
度和简化操作的帮助。
51.图2示例了一种权限管理方法的流程示意图。其流程包括:现技术实现如上,设置组织名称,管理的项目,创建kind(类型)为k8sadminorganization的集群资源,通过一控制器实现了如下流程,自动生产最终的用户证书到集群的configmap中保存起来。后续可基于ui平台使用,或提供到用户后台使用。
52.其步骤如下:
53.步骤一:创建k8sadminorganization。通过kubernetes的informer-listener机制,监听到k8sadminorganization资源信息,信息内容包含组织名称和组织拥有的项目列表,如果未存在用户证书,开始创建,如存在判断是否更新。
54.步骤二:创建证书。读取集群的根证书ca.crt,使用crypto包提供的x509方法,生成k8sadminorganization中用户的客户端证书。
55.步骤三:创建csr。使用kubernetes提供的sdk创建kubernetes集群证书资源csr,及集群用户认证证书config,即真正的集群权限认证证书。
56.步骤四:自动审批csr。通过kubernetes的informer-listener机制,监听csr资源的创建,即证书申请,根据一定的规范逻辑,规定哪些csr申请可以进行自动审批,审批后,根据审批的csr,读取集群客户端证书写入config,进行返回等待保存。
57.步骤五:更新config到configmap。使用kubernetes的sdk,创建configmap类型资源,将config文件保存在configmap中,提供查询和导出使用。
58.步骤六:设置rbac权限。设置rbac权限到当前用户或用户组。使用rolebinding类型(其中包含用户和项目信息)绑定到,预先设置好的集群权限角色role(设置该role拥有哪些集群权限),使得该用户证书拥有哪些集群权限,例如仅拥有当前命名空间下的service,deployment,pod等资源的查看权限。
59.最终得到可以管理一个或多个命名空间下(即项目等)的资源的用户认证证书。
60.参照图3,图3是本发明实施例的用户权限使用流程示意图。其流程如下:
61.s301,从配置表获取用户配置;
62.s302,根据用户配置获取用户集群证书,根据证书确定用户权限;
63.s302,根据用户权限分配对应的命名空间。
64.如图4所示所示,本发明实施例还提供了一种权限管理分析装置,该装置包括了第一模块401、第一模块402、第一模块403、第一模块404及第五模块405。
65.第一模块,用于创建k8s管理组织,对k8s管理组织进行监听,得到k8s管理组织的资源信息;
66.第二模块,用于根据资源信息对创建用户的证书、签名及配置;
67.第三模块,用于对签名执行审批,根据审批结果对配置映射至配置表;
68.第四模块,用于根据配置表,设置用户的访问控制权限;
69.第五模块,用于根据访问控制权限为用户分配对应的用户命名空间。
70.示例性地,在装置中的第一模块、第二模块、第三模块、第四模块及第五模块的协同下,实施例装置可以实现前述的任意一种权限管理方法,即创建k8s管理组织,对k8s管理组织进行监听,得到k8s管理组织的资源信息;根据资源信息对创建用户的证书、签名及配置;对签名执行审批,根据审批结果对配置映射至配置表;根据配置表,设置用户的访问控
制权限;根据访问控制权限为用户分配对应的用户命名空间。本发明通过只需要根据现有组织创建相应的k8s管理组织,对kubernetes无入侵,并且将证书保存到configmap中提供ui平台和用户在后台命令使用;保存了集群用户信息在k8s管理组织,可通过此资源信息得到用户及项目信息;屏蔽了对集群的学习成本,只需对需要的用户体系在编排文件中阐述即可得到;提高了权限认证效率和安全性。
71.本发明实施例还提供了一种电子设备,该电子设备包括处理器以及存储器;
72.存储器存储有程序;
73.处理器执行程序以执行前述的权限管理方法;该电子设备具有搭载并运行本发明实施例提供的权限管理的软件系统的功能,例如,个人计算机(personal computer,pc)、手机、智能手机、个人数字助手(personal digital assistant,pda)、可穿戴设备、掌上电脑ppc(pocket pc)、平板电脑等。
74.本发明实施例还提供了一种计算机可读存储介质,存储介质存储有程序,程序被处理器执行实现如前面的权限管理方法。
75.在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
76.本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述的权限管理方法。
77.此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
78.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
79.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
80.计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
81.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
82.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
83.尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
84.以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1