CN116962260A - 一种集群安全检查方法、装置、设备及存储介质 - Google Patents

一种集群安全检查方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116962260A
CN116962260A CN202210401236.0A CN202210401236A CN116962260A CN 116962260 A CN116962260 A CN 116962260A CN 202210401236 A CN202210401236 A CN 202210401236A CN 116962260 A CN116962260 A CN 116962260A
Authority
CN
China
Prior art keywords
node
proxy client
task
cluster
checking
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210401236.0A
Other languages
English (en)
Inventor
林委坤
董志强
陶芬
项柱
王传健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210401236.0A priority Critical patent/CN116962260A/zh
Publication of CN116962260A publication Critical patent/CN116962260A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/042Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例公开了一种集群安全检查方法、装置、设备及存储介质,可应用于云技术、人工智能等各种场景。该方法可包括:主控节点响应于后端服务器通过调用集群管理接口发送的创建进程集指令,创建守护进程集;主控节点调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本;主控节点将检查任务分发给每个工作节点的容器副本,以使得每个工作节点的代理客户端从对应的容器副本中获取检查任务,对目标组件以及工作负载执行检查任务,并将检查结果发送至后端服务器。本申请实施例中,主控节点按预设部署策略向工作节点部署代理客户端,可提高代理客户端的稳定性和可控性,有利于云原生环境下的集群安全运行。

Description

一种集群安全检查方法、装置、设备及存储介质
技术领域
本申请涉及云安全技术领域,尤其涉及一种集群安全检查方法、装置、设备及存储介质。
背景技术
云计算是一种提供资源的网络,其包括计算、存储等能力,具有弹性、敏捷、资源池和服务化特性。近几年来,云计算正在成为信息技术产业发展的战略重点,全球的信息技术企业都在纷纷向云计算转型。云原生是基于云计算的方式发展出的一种新的后台服务架构模式,云原生技术架构充分利用了云计算的特性,改变云端应用的设计、开发、部署和运行模式,为后台的部署和平滑升级提供了一种更便利的方式。伴随着云计算的发展,云原生也越来越受到重视,从而云原生的集群安全部署也被广泛关注。云原生的技术要求对传统服务进行微服务的拆分和部署,因此云原生环境致力于实现各个环境的独立部署,弱化环境的权限。
目前,云原生的安全部署主要是基于传统的基于主机型入侵检测系统(Host-based Intrusion Detection System,HIDS)的架构来实现的。HIDS作为计算机系统的监测器和分析器,它并不作用于外部接口,而是专注于系统内部,监测系统全部或部分的动态的行为以及整个计算机系统的状态。然而,基于传统的方案在用户的主机(或者称为节点)部署的agent还会在系统内部安装驱动,具有很高的权限,并且,当agent占用资源过多时,可能会导致主机资源耗竭;如果agent运行出错,用户环境便会和后台失去联系,从而会直接影响用户多个业务环境。可见,该方案的稳定性和可控性较低,从而不利于云原生环境下的集群安全运行。
发明内容
本申请实施例提供了一种集群安全检查方法、装置、设备及存储介质,可提高代理客户端的稳定性和可控性,从而提高集群安全检查的有效性和稳定性,有利于云原生环境下的集群安全运行。
第一方面,本申请实施例提供了一种集群安全检查方法,应用于包括多个节点的目标业务集群,该多个节点包括主控节点和工作节点,该方法包括:
主控节点响应于后端服务器通过调用集群管理接口发送的创建进程集指令,创建守护进程集;
主控节点调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本,该预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
主控节点将检查任务分发给每个工作节点的容器副本,以使得每个工作节点的代理客户端从对应的容器副本中获取检查任务,对目标组件以及工作负载执行检查任务,并将检查结果发送至后端服务器。
第二方面,本申请实施例提供了另一种集群安全检查方法,应用于包括多个节点的目标业务集群,该多个节点包括主控节点和工作节点,该方法包括:
工作节点接收主控节点按照预设部署策略部署的代理客户端以及容器副本,预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
工作节点调用代理客户端从对应的容器副本中获取主控节点分发的检查任务;
工作节点调用代理客户端对目标组件以及工作负载执行检查任务,得到检查结果;
工作节点调用代理客户端将检查结果发送至后端服务器,以使得后端服务器根据各个工作节点的代理客户端发送的检查结果生成目标文件,该目标文件包括目标业务集群的安全检查结果。
第三方面,本申请实施例提供了一种集群安全检查装置,应用于包括多个节点的目标业务集群,该多个节点包括主控节点和工作节点,该装置包括:
创建模块,用于响应于后端服务器通过调用集群管理接口发送的创建进程集指令,创建守护进程集;
部署模块,用于调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本,预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
任务处理模块,用于将检查任务分发给每个工作节点的容器副本,以使得每个工作节点的代理客户端从对应的容器副本中获取检查任务,对目标组件以及工作负载执行检查任务,并将检查结果发送至后端服务器。
第四方面,本申请实施例提供了另一种集群安全检查装置,应用于包括多个节点的目标业务集群,该多个节点包括主控节点和工作节点,该装置包括:
接收模块,用于接收主控节点按照预设部署策略部署的代理客户端以及容器副本,该预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
获取模块,用于调用代理客户端从对应的容器副本中获取主控节点分发的检查任务;
检查模块,用于调用代理客户端对目标组件以及工作负载执行检查任务,得到检查结果;
发送模块,用于调用代理客户端将检查结果发送至后端服务器,以使得后端服务器根据各个工作节点的代理客户端发送的检查结果生成目标文件,该目标文件包括目标业务集群的安全检查结果。
第五方面,本申请实施例提供了一种计算机设备,该计算机设备包括处理器、通信接口和存储器,该处理器、通信接口和存储器相互连接,其中,该存储器存储有计算机程序,该处理器用于调用该计算机程序,执行本申请实施例提供的集群安全检查方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的集群安全检查方法。
第七方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的集群安全检查方法。
在本申请实施例中,主控节点响应于后端服务器通过调用集群管理接口发送的创建进程集指令,创建守护进程集;主控节点调用守护进程集按照预设部署策略向每个工作节点部署代理客户端以及容器副本,该预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;主控节点将检查任务分发给每个工作节点的容器副本,以使得每个工作节点的代理客户端从对应的容器副本中获取检查任务,对目标组件以及工作负载执行检查任务并将检查结果发送给后端服务器。采用本申请实施例,主控节点按照预设部署策略向工作节点部署代理客户端,可提高代理客户端的稳定性和可控性,从而提高集群安全检查的有效性和稳定性,有利于云原生环境下的集群安全运行。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种集群安全检查的框架图;
图2是本申请实施例提供的一种集群安全检查方法的流程示意图;
图3是本申请实施例提供的一种下发检查任务的结构示意图;
图4是本申请实施例提供的另一种集群安全检查方法的流程示意图;
图5a是本申请实施例提供的一种集群安全检查的过程示意图;
图5b是本申请实施例提供的又一种集群安全检查方法的流程示意图;
图6是本申请实施例提供的一种容器服务集群节点的界面示意图;
图7是本申请实施例提供的一种容器服务测试工作负载的界面示意图;
图8是本申请实施例提供的一种集群安全执行过检查后的界面示意图;
图9是本申请实施例提供的一种集群安全集群风险详情的界面示意图;
图10是本申请实施例提供的一种集群安全检查装置的示意图;
图11是本申请实施例提供的另一种集群安全检查装置的示意图;
图12是本申请实施例提供的一种计算机设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解本申请公开的实施例,首先对本申请实施例涉及的一些概念进行阐述,这些概念的阐述包括但不限于以下内容。
1、集群
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理,作为一个整体向用户提供一组网络资源。
2、主控节点
主控节点(或者称为Master)指的是负责集群中应用的调度、更新、扩缩容等操作的节点,一个集群中包括一个主控节点。
3、工作节点
工作节点(或者称为Node)指的是集群中用于执行任务的节点。一个集群中可包括多个工作节点,工作节点可以是虚拟机或物理机。当工作节点接收到主控节点下发的任务后,会去执行对应的任务。
4、守护进程集
守护进程集(或者称为Daemonset)和守护进程类似,它在符合匹条件的节点上均部署一个容器副本(或者称为pod)。守护进程集可确保集群中全部(或者某些)节点上均运行一个容器副本。当有新节点加入集群时,会为新节点部署一个容器副本。当有节点从集群中移除时,这些节点上部署的容器副本也会被回收。
为了便于理解本申请实施例,下面对本申请实施例提供的集群安全检查方案进行描述。
为了提高代理客户端的稳定性和可控性,从而有利于云原生环境下的集群安全检查,本申请实施例提供了一种集群安全检查方案。请参见图1,图1是本申请实施例提供的一种服务管理集群安全检查的框架图。如图1所示,假设目标业务集群100中包括了主控节点101、工作节点102、工作节点103、工作节点104以及后端服务器105。下面结合图1对本申请实施例提出的集群安全检查方案的大致实施过程进行阐述:首先,目标业务集群100中的主控节点101可响应于后端服务器105通过调用集群管理接口发送的进程集创建指令,创建守护进程集。然后,主控节点101调用守护进程集,并按照预设部署策略向工作节点102、工作节点103和工作节点104部署代理客户端以及容器副本,该预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种。其中,资源控制策略用于限制代理客户端在工作节点的资源占用量;权限控制策略用于对代理客户端的权限进行限制;进程管理策略用于将代理客户端在工作节点中以首进程运行。最后,主控节点101将检查任务分发给工作节点102、工作节点103和工作节点104分别对应的容器副本,使得工作节点102的代理客户端、工作节点103的代理客户端和工作节点104的代理客户端分别从对应的容器副本中获取检查任务,对目标组件以及工作负载执行检查任务,并将检查结果发送至后端服务器105。
经实践表明,本申请实施例所提出的集群安全检查方案可具有如下有益效果:①通过资源控制策略可将代理客户端占用的资源限制在合理范围内,确保在任何情况下,都不会影响用户业务。②通过权限管理策略可弱化环境权限,更符合云原生环境的安全解决。③通过进程管理策略将代理客户端以首进程运行在工作节点中,当该进程意外退出时,可基于该进程管理策略对工作节点重新部署代理客户端,从而为用户环境的稳定监测增加了一层保障。④主控节点按照预设部署策略向工作节点部署代理客户端,可提高代理客户端的稳定性和可控性,从而提高集群安全检查的有效性和稳定性,有利于云原生环境下的集群安全运行。
需要说明的是:在具体实现中,上述方案可以由终端调用后端服务的接口,通过主控节点执行任务下发,工作节点执行检查并上报结果。主控节点为服务器设备,上述方案中的工作节点也是服务器设备。其中,此处所提及的终端可以包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机等;终端内可运行各式各样的客户端(Application,APP),如代理客户端、社交客户端、浏览器客户端、信息流客户端、教育客户端,等等。此处所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云安全、云原生安全、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。
基于上述方案,本申请实施例提出了一种集群安全检查方法。请参见图2,图2是本申请实施例提供的一种集群安全检查方法的流程示意图,该集群安全检查方法可应用于包括多个节点的目标业务集群,该多个节点包括主控节点和工作节点。该集群安全检查方法可由上述提及的主控节点执行,该主控节点可以是一个计算机设备。如图2所示,该集群安全检查包括如下步骤:
S201、主控节点响应于后端服务器通过调用集群管理接口发送的创建进程集指令,创建守护进程集。
可选地,该集群管理接口可以是Kubernetes(或者称为K8S)集群管理接口。Kubernetes是一个用于大规模运行分布式应用和服务的开源容器编排平台,通过Kubernetes可以快速有效地响应用户需求,快速而有预期地部署应用,极速地扩展应用,无缝对接新应用功能,节省资源,优化硬件资源的使用。当集群管理接口是K8S集群管理接口时,主控节点可响应于后端服务器通过调用K8S集群管理接口发送的创建进程集指令,创建Daemonset(即守护进程集)。
S202、主控节点调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本。
其中,该预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种。
以守护进程集是Daemonset为例,主控节点调用Daemonset按照预设部署策略向每个工作节点部署代理客户端时,可通过调用接口clientset.AppsV1().DaemonSets.Create(),按照预设部署策略向每个工作节点部署代理客户端以及容器副本。由于Daemonset可确保集群中每个节点运行一个容器副本(或者称为pod),因此主控节点可调用Daemonset在每个工作节点中部署容器副本。
在一种可选的实施方式中,主控节点调用守护进程集按照预设部署策略向每个工作节点部署代理客户端以及容器副本之前,还可接收针对代理客户端的资源配置指令,该资源配置指令包括资源类型以及资源类型对应的资源量阈值;响应资源配置指令生成代理客户端的资源控制策略,该资源控制策略用于限制代理客户端在工作节点的资源占用。
举例来说,假设主控节点接收针对代理客户端资源配置指令中的资源类型包括资源中央处理器(Resource Central Processing Unit,ResourceCPU)和资源存储器(Resource Memory)。其中,ResourceCPU的资源量阈值为250m(即代理客户端最多占用0.25核CPU),Resource Memory的资源量阈值为250Mi(即代理客户端最多占用250兆内存)。在接收到该资源配置指令之后,主控节点可响应该资源配置指令,生成代理客户端的资源控制策略,即将代理客户端的ResourceCPU的资源量限制在0.25核的范围内,将代理客户端的Resource Memory的资源量限制在为250兆的范围内,从而保证在任何情况下都不会影响用户业务。可选的,主控节点可通过利用K8S使用系统提供的cgroup特性,生成代理客户端的资源控制策略。
在一种可选的实施方式中,主控节点调用守护进程集按照预设部署策略向每个工作节点部署代理客户端以及容器副本之前,还可创建代理客户端的权限集合,并将权限集合和对应的服务账户进行绑定,得到授权文件;调用基于角色的权限访问控制模型,基于授权文件生成权限控制策略。
可选的,主控节点可基于K8S来生成权限控制策略。该实施方式中,服务账户(或者称为Service Account)是给srevice使用的一个账号,可为Pod中的进程和外部用户提供身份信息。具体一点,就是为了让Pod中的进程、服务能访问K8S集群,基于Service Account,pod中的进程、服务调用Kubernetes集群的配置接口API server。
权限集合(或者称为ClusterRole)是一组权限的集合,ClusterRole可以在包括所有命名空间namespace和集群级别的资源或非资源类型进行鉴权。
基于角色的权限访问控制模型(Role-Based Access Control,RBAC):在RBAC中,用户不再直接与权限相连,而是通过“角色”这一属性来间接的被赋予权限,用户通过成为适当的角色来得到这些角色固有的权限,这样处理就解耦了用户与权限的关系。通过使用RBAC可极大地简化权限的管理。
举例来说,主控节点可创建代理客户端的权限集合,假设该权限集合中包括了3个权限(role),例如是role1、role2、role3。主控节点可将该权限集合中的权限和对应的服务账户进行绑定,得到授权文件。其中,授权文件包括授权文件1、授权文件2以及授权文件3。授权文件1指示role1只能用于授予对namespace1中资源的访问权限,授权文件2指示role2只能用于授予对namespace2中资源的访问权限,授权文件3指示role3只能用于授予对namespace3中资源的访问权限。然后主控调用RBAC模型,基于上述授权文件生成权限控制策略。即主控节点可以调用RBAC模型使得用户通过成为角色1,得到角色1固有的权限role1,从而访问namespace1中的资源。主控节点也可以调用RBAC模型使得用户通过成为角色2,得到角色2固有的权限role2,从而访问namespace2中的资源。主控节点还可以调用RBAC模型使得用户通过成为角色3,得到角色3固有的权限role3,从而访问namespace3中的资源等等。
在一种可选的实施方式中,进程管理策略包括代理客户端在工作节点中以首进程运行,主控节点调用守护进程集按照预设部署策略向每个工作节点部署代理客户端以及容器副本之后,可获取每个工作节点部署的代理客户端的运行状态;当任一工作节点上部署的代理客户端出现故障停止运行时,主控节点基于进程管理策略对任一工作节点重新部署代理客户端。可选的,该实施方式可利用K8S实现。
以一个工作节点上部署的代理客户端为例,主控节点可利用K8S将代理客户端作为进程号为1的首进程运行在该工作节点的pod中。之后,主控节点可获取该代理客户端的运行状态,若进程出现故障停止运行(即进程意外退出),K8S通过健康检查便会监测到该进程已退出,从而会基于进程管理策略重新将代理客户端以首进程运行在该工作节点的pod中。这样,可提高代理客户端的稳定性,从而可以为用户环境的稳定监测增加一层保障。
S203、主控节点将检查任务分发给每个工作节点的容器副本,以使得每个工作节点的代理客户端从对应的容器副本中获取检查任务,对目标组件以及工作负载执行检查任务,并将检查结果发送至后端服务器。
在一种可选的实施方式中,主控节点还可接收终端设备发送的检查任务配置指令,该检查任务配置指令包括资产类型和对象标识;调用任务管理器响应检查任务配置指令,创建检查任务,该检查任务包括任务标识、检查项以及节点标识中的一种或多种。
可选地,检查项可包括但不限于Apache containerd安全漏洞、共享使用主机网络、K8S的API服务器组件(或者称为Kubernetes API Server)版本信息泄露等等。
可选地,主控节点可通过单节点API网关(API-Gateway)接收用户在终端设备(或者称为控制台)下发的包括资产类型(或者称为后台资产类型)和对象标识(或者称为用户标识appid)的检查任务配置指令(或者称为扫描命令)。其中,后台资产类型包括主机(即节点)、容器副本、镜像等分别对应的风险类型;appid指的是目标业务集群所属的用户标识。之后,主控节点可调用任务管理器(Task-Manager)响应API-Gateway发送的该检查任务配置指令,创建检查任务。其中,任务管理器中的子任务管理器(Subtask-Manager)还会根据appid查询到目标业务集群中每个节点的标识信息(即节点标识,或者称为quuid),把检查任务分解成多个子任务。最后,主控节点可通过调用任务调度器(Task-Scheduler),按照quuid维度将检查任务下发到目标业务集群中的各个节点上。
在一种可选的实施方式中,主控节点将检查任务分发给每个工作节点的容器副本时,可先获取检查任务的配置文件,并将配置文件存储在分布式存储系统中,该分布式存储系统以键值对的形式保存配置文件和工作节点;创建配置资源对象,并通过配置资源对象从分布式存储系统中获取配置文件和工作节点的键值对;基于键值对将配置文件挂载到对应的工作节点的容器副本中。可选的,该实施方式可利用K8S支持的Configmap方式,将检查任务进行分布式下发。
请参见图3,图3是本申请实施例提供的一种下发检查任务的结构示意图。如图3所示,当利用K8S实现上述实施方式时,首先,主控节点可先获取检查任务的配置文件,并将该配置文件存储在分布式键值对存储系统ETCD中。其中,ETCD是一个Go语言编写的分布式、高可用的一致性键值对存储系统,用于提供可靠的分布式键值存储、配置共享和服务发现等功能,其具有容灾功能。
之后,主控节点启动ETCD,基于分布式系统强一致性的算法(或者称为Raft协议),通过复制日志文件的方式将该配置文件复制到ETCD的所有节点中,即基于Raft协议将配置文件复制到图3中的节点1(ETCD1)(301)、节点2(ETCD2)(302)和节点3(ETCD3)(303)中,使得ETCD1(301)、ETCD2(302)和ETCD3(303)中的数据保持一致,即实现数据同步。可选的,主控节点还可随时接收用户针对配置文件输入的etcd snapshot命令将数据配置到本地。
然后,主控节点可创建配置资源对象(对应图3中的配置资源对象(Configmap)(304)),并通过Configmap(304)从ETCD1(301)、ETCD2(302)和ETCD3(303)中获取具体的配置文件和工作节点的键值对。
最后,主控节点基于键值对将配置文件挂载在每个工作节点的容器副本中,即将配置文件1(Config file1)(305)挂载在工作节点1对应的容器副本1(pod1)(308)中;将配置文件2(Config file2)(306)挂载在工作节点2对应的容器副本2(pod2)(309)中;将配置文件3(Config file3)(307)挂载在工作节点3对应的容器副本3(pod3)(310)中。在挂载完成后,将检查任务分布式的更新到每个工作节点的代理客户端中。
在一种可选的实施方式中,后端服务器接收检查每个工作节点的代理客户端发送的检查任务之后,可根据检查任务生成目标文件,该目标文件包括目标业务集群的安全检查结果。可选地,后端服务器还可将目标文件添加到数据队列中,基于数据队列中至少一个业务集群的目标文件生成安全检查结果列表,并在结果页面中展示安全检查结果列表。其中,至少一个业务集群包括目标业务集群。
在本申请实施例中,主控节点响应于后端服务器通过调用集群管理接口发送的创建进程集指令,创建守护进程集;主控节点调用守护进程集按照预设部署策略向每个工作节点部署代理客户端以及容器副本,该预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;主控节点将检查任务分发给每个工作节点的容器副本,以使得每个工作节点的代理客户端从对应的容器副本中获取检查任务,对目标组件以及工作负载执行检查任务,并将检查结果发送至后端服务器。采用本申请实施例,主控节点按照预设部署策略向工作节点部署代理客户端,可提高代理客户端的稳定性和可控性,从而提高集群安全检查的有效性和稳定性,有利于云原生环境下的集群安全运行。
需要说明的是,本申请实施例中所提到的终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通等。
请参见图4,图4是本申请实施例提供的另一种集群安全检查方法的流程示意图。该集群安全检查方法可应用于包括多个节点的目标业务集群,该多个节点包括主控节点和工作节点。该集群安全检查方法可由上述提及的工作节点执行。为便于描述,下面以一个工作节点为例进行阐述,该工作节点可以是一个计算机设备。如图4所示,该集群安全检查包括如下步骤:
S401、工作节点接收主控节点按照预设部署策略部署的代理客户端以及容器副本。
其中,预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种。
在一种可选的实施方式中,工作节点接收主控节点按照预设部署策略部署的代理客户端以及容器副本之后,可根据资源控制策略确定代理客户端的资源类型以及资源类型对应的资源量阈值;为代理客户端的资源类型配置资源量,该资源量小于或等于资源量阈值。
举例来说,工作节点接收主控节点按照预设部署策略部署的代理客户端以及容器副本之后,可根据资源控制策略确定代理客户端的资源类型包括ResourceCPU和ResourceMemory,其中,Resource Memory的资源量阈值为250m(即代理客户端最多占用0.25核CPU),Resource Memory的资源量阈值为250Mi(即代理客户端最多占用250兆内存);工作节点控制代理客户端的Resource Memory的资源占用量小于或等于0.25核,控制代理客户端的Resource Memory的资源占用量小于或等于250兆。
在一种可选的实施方式中,工作节点接收主控节点按照预设部署策略部署的代理客户端以及容器副本之后,可根据权限控制策略对代理客户端权限进行控制。可选的,工作节点可根据权限控制策略,调用基于角色的权限访问控制模型对代理客户端的权限进行控制。
在一种可选的实施方式中,工作节点接收主控节点按照预设部署策略部署的代理客户端以及容器副本之后,可根据进程管理策略以首进程运行代理客户端;当代理客户端出现故障停止运行时,向主控节点发送重新部署指令,以使得主控节点重新部署代理客户端。
S402、工作节点调用代理客户端从对应的容器副本中获取主控节点分发的检查任务。
在一种可选的实施方式中,工作节点调用代理客户端从对应的容器副本中获取主控节点分发的检查任务时,可获取检查任务的配置文件,该配置文件是通过配置资源对象(例如是Configmap)的方式挂载在容器副本中的。
在一种可选的实施方式中,当工作节点调用代理客户端未获取到主控节点分发的检查任务时,可调用代理客户端通过固定路径检查主控节点中的检查任务是否存在变化;当确定检查任务存在变化时,调用代理客户端获取变化后的检查任务,并对目标组件以及工作负载执行变化后的检查任务。
需要注意的是,检查任务的配置文件的路径是预先配置好的,容器副本中所挂载的检查任务的配置文件是单次检查任务的配置文件。检查任务不同,其对应的配置文件不同。可以理解的是,代理客户端会尝试监测检查任务对应的配置文件,当配置文件不存在时,代理客户端会通过预先配置好的固定路径监测该配置文件所在的目录(即Configmap)中的检查任务。之后,代理客户端可判断该目录中的检查任务是否有变动,当检查任务有变动时,代理客户端会读取并解析变化后的检查任务对应的配置文件,并对目标组件以及工作负载执行变化后的检查任务。可选的,判断检查任务是否存在变动可以是判断检查任务的标识信息(或者称为taskid)是否与上一次一致。如果是新的taskid,则代理客户端执行新的taskid对应的新的检查任务。
S403、工作节点调用代理客户端对目标组件以及工作负载执行检查任务,得到检查结果。
在一种可选的实施方式中,工作节点调用代理客户端对目标组件以及工作负载执行检查任务,得到检查结果,包括:工作节点调用代理客户端获取检查项标识列表和执行检查的节点标识列表;若执行检查的节点标识列表包括工作节点的节点标识,则工作节点调用代理客户端加载与检查任务相关联的依赖资源,并基于检查项标识列表对目标组件以及工作负载进行逐项检查。
可选的,当检查项标识列表(或者是数组)为空时,代理客户端可检查全部的检查项。当执行检查的节点标识列表为空时,则可确定所有工作节点都执行检查任务。
可选的,目标组件可以包括但不限于runC、Containerd,Docker,Kubelet,kube-api-server,kube-controller-manager、kube-scheduler和etcd等;工作负载(或者称为工作负载资源)包括但不限于所有的运行中Pod和其相关资源。
其中,runC是一个轻量级的命令行工具,是根据开放容器计划(Open ContainerInitiative,OCI)标准用来创建和运行容器的,较新版本的Docker和Containerd都是用runC来管理容器的。
Containerd是K8S最基础的运行时组件,也是K8S支持较好的运行时组件,同时也是较新版本Docker的运行时组件。
Docker是K8S最基础的运行时组件,是K8S支持最好的运行时组件。Docker使用linux系统提供的cgroup和namespace实现组件之间的隔离,属于进程级别隔离。
Kubelet是K8S系统中,运行在子节点上的进程,主要进行子节点资源的监测上报,container的运行监测等。
kube-api-server是为API对象验证和配置数据的,这些对象包含Pod,Service等等。API Server提供REST操作以及前端到集群的共享状态,所有其它组件可以通过这些共享状态交互。
kube-controller-manager由一系列的控制器组成,是集群内部的管理控制中心。该组件负责集群内的节点(Node)、容器副本(Pod)、服务端点(Endpoint)、命名空间(namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)的管理。当某个Node意外宕机时,该组件会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态。
kube-scheduler是K8S中的关键模块,扮演管家的角色遵从一套机制为Pod提供调度服务,例如基于资源的公平调度、调度Pod到指定节点、或者通信频繁的Pod调度到同一节点等。
需要说明的是,对于新的检查任务,程序会先加载与检查任务相关的依赖资源,然后按照检查项进行逐项检查。
S404、工作节点调用代理客户端将检查结果发送至后端服务器,以使得后端服务器根据各个工作节点的代理客户端发送的检查结果生成目标文件,该目标文件包括目标业务集群的安全检查结果。
在一种可选的实施方式中,代理客户端执行的检查项标识列表中的每个检查项都会产生一个结果,该结果包含了检查项id,结果状态,检查信息等。对于目标组件而言,结果状态包括检查通过、检查不通过、检查目标未发现、检查出错几项,检查信息为检查过程中的证据信息;对于工作负载而言,结果状态包括检查通过、检查不通过、检查出错几项,检查信息为对应的工作负载资源,如果该资源是由上层资源调度产生的,则会递归至最上层的资源信息。例如,CronJob会调度出Job资源,Job又会调度出Pod,当检查到的资源为CronJob产生的Pod时,会递归获取的上层的CronJob信息,并上报CronJob信息。
其中,Job负责处理任务,仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。CronJob在Job上加上了时间调度,即定时任务,指的是在指定的时间周期运行指定的任务。
可选地,后端服务器可将目标文件添加到数据队列中,基于数据队列中至少一个业务集群的目标文件生成安全检查结果列表,并在结果页面中展示安全检查结果列表。其中,至少一个业务集群包括目标业务集群。
由于目标业务集群中可包括多个工作节点,因此,每个工作节点都会将检查结果发送至后端服务器,以使得后端服务器根据各个工作节点发送的检查结果生成目标文件(或者称为结果文件(result文件)),该目标文件包括目标业务集群的安全检查结果。可选地,后端服务器还可将目标文件上报至消息系统(例如是kafka),等待后端程序对其进行消费处理入库。
本申请实施例中,工作节点接收主控节点按照预设部署策略部署的代理客户端以及容器副本,该预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;工作节点调用代理客户端从对应的容器副本中获取主控节点分发的检查任务;工作节点调用代理客户端对目标组件以及工作负载执行检查任务,得到检查结果;工作节点调用代理客户端将检查结果发送至后端服务器,以使得后端服务器根据各个工作节点的代理客户端发送的检查结果生成目标文件,目标文件包括目标业务集群的安全检查结果。采用本申请实施例,工作节点利用按照预设部署策略部署的代理客户端,可提高代理客户端的稳定性和可控性,且充分利用了云原生系统提供的编排能力,从而提高集群安全检查的有效性和稳定性更适合云原生场景下的集群安全检查。
需要说明的是,当本申请实施例运用到具体产品或技术中时,本申请实施例所涉及的检查任务、检查结果、目标文件等均是在获得用户的许可或者同意后才获取的;并且检查任务、检查结果、目标文件等的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
请参见图5a,图5a是本申请实施例提供的一种集群安全检查的过程示意图。下面结合图5a对本申请实施提供的集群安全检查方法进行描述。
首先,主控节点可按照前述预设部署策略向每个工作节点部署代理客户端和容器副本pod。
其次,用户可在已授权的网络控制台Webconsole(501)对云Api3.0(502)中的目标业务集群下发检查任务配置指令(或者称为扫描命令),该检查任务配置指令中包括后台资产类型(即图5a中的assettype)和目标业务集群所属的用户标识信息(即图5a中的appid)。当单节点API网关API-Gateway(503)收到该指令后,可将该指令发送给主控节点中的任务管理器Task-Manage(504)处理,即将后台资产类型和appid参数传给任务管理器Task-Manage(504),创建检查任务。然后,主控节点可调用任务调度器Task-Scheduler(505),基于云容器服务的软件开发程序包(Kubernetes Engine Software Development Kit,KESDK)(506)将检查任务通过云容器服务中的API服务器组件(Kubernetes Engine APIServer,KE API Server)(509)下发到每个工作节点的代理客户端中进行处理。在没有发现云容器服务(No KE)(507)时,主控节点可通过K8S的API服务器组件(K8S API Server)(508)将检查任务下发到每个工作节点的代理客户端中进行处理。
在下发检查任务的过程中,主控节点可先获取检查任务的配置文件,并将所述配置文件存储在ETCD中。然后,主控节点可创建配置资源对象Configmap(510),并通过Configmap(510)从ETCD中的各个节点中获取配置文件和工作节点的键值对;最后,基于键值对将配置文件挂载到对应的工作节点的容器副本pod(511)中,并在检查任务对应的配置文件挂载完成之后,将检查任务分布式的更新到每个工作节点的代理客户端中。其中,主控节点可通过从容器镜像服务(Container Registry,CR)(512)中拉取相应的代码,以使得配置文件可挂载到每个pod中。
然后,工作节点可调用代理客户端监测检查任务的配置文件。当配置文件不存在时,工作节点可调用代理客户端通过固定路径检查主控节点中的检查任务是否存在变化。当确定检查任务存在变化时,工作节点可调用代理客户端获取变化后的检查任务,并对目标组件以及工作负载执行变化后的检查任务。在执行检查任务时,工作节点可调用代理客户端获取检查项标识列表和执行检查的节点标识列表,若执行检查的节点标识列表包括工作节点的节点标识,则调用代理客户端加载与检查任务相关联的依赖资源,并基于检查项标识列表对目标组件以及工作负载进行逐项检查。
最后,代理客户端在执行完检查任务之后,可将检查结果上报至分布式发布订阅消息系统Kafka中。在此过程中,工作节点可调用代理客户端将检查结果文件发送至后端服务器。由于代理客户端执行的每个检查项都会产生一个结果,当所有检查项都执行完毕时,后端服务器会接收所有检查结果,并会对所有结果进行重新排序整理,写入结果文件result_file(513)中(即前述根据检查结果生成目标文件)。与此同时,后端服务器会对上报的结果文件进行扫描(即图5a中的扫描结果上报),并通过一个向Kafka发送数据的客户端Kafka-Producer(514)将结果文件上报至Kafka(515)中,等待后端程序对其进行消费处理入库。图5a中,基线检测云容器安全服务产品css_baseline(516)一方面可通过结果分析ResultAnalyze(517)模块对检查结果进行分析,并将分析结果发送至主控节点的子任务管理器Subtask-Manager(518)中,以使得子任务管理器将分析结果发送至数据库DataBase(DB)(519)中,供后续任务管理器进行调用处理。另一方面,可将数据消费结果上报至Kafka(515)中。
请参见图5b,图5b是本申请实施例提供的又一种集群安全检查方法的流程示意图,该方法可应用于包括多个节点的目标业务集群,该多个节点包括主控节点和工作节点。如图5b所示,该集群安全检查方法可包括如下步骤:
S501、主控节点响应于后端服务器通过调用集群管理接口发送的创建进程集指令,创建守护进程集。
S502、主控节点调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本。
在一种可选的实施方式中,步骤S501、S502的具体过程可分别参见上文S201、S202中的描述,此处不再进行赘述。
S503、终端设备通过网关向主控节点发送检查任务配置指令。
网关又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备。可选地,该网关例如可以是图5a中的单节点API网关(即图5a中的503)。
在一种可选的实施方式中,终端设备可响应用户针对网络控制台(例如是图5a中的501)输入的登录指令,生成目标页面,该目标页面用于对目标业务集群进行配置管理;通过目标页面,接收针对目标业务集群输入的检查任务配置指令,并通过网关向主控节点发送该检查任务配置指令。
可选地,用户针对网络控制台输入的登录指令可以是用户在网络控制台的登录界面输入用户名和密码,并输入确认登录的指令;也可以是用户通过已与网络控制台绑定的第三方应用程序扫描登录界面中的二维码等。
可选地,该检查任务配置指令包括后台资产类型(即图5a中的assettype)和目标业务集群所述的用户标识信息(即图5a中的appid)。其中,后台资产类型可包括主机(即节点)、容器副本、镜像等分别对应的风险类型。
可选地,检查任务配置指令可以是目标业务集群对应一个检查任务配置指令,也可以是目标业务集群中的每个工作节点对应不同的检查任务配置指令。当终端设备接收到针对目标业务集群中每个工作节点输入的不同的检查任务配置指令时,可通过网关向主控节点发送每个工作节点对应的检查任务配置指令。
S504、主控节点调用任务管理器,响应检查任务配置指令创建检查任务。
S505、主控节点调用任务调度器,将检查任务分发给每个工作节点的容器副本。
在一种可选的实施方式中,步骤S504、S505的具体过程可参见上文步骤S203中的相关描述,此处不再进行赘述。
在另一种可选的实施方式中,若终端设备通过网关向主控节点发送每个工作节点的检查任务配置指令,则主控节点可调用任务管理器,响应每个工作节点对应的检查任务配置指令创建每个工作节点对应的检查任务;调用任务调度器,将每个工作节点对应的检查任务分发给对应工作节点的容器副本。可以理解的是,该实施方式中,任务调度器可直接将每个工作节点对应的检查任务分发给对应工作节点的容器副本,不需要执行如图3所示的下发检查任务的过程。
可选的,主控节点可调用任务调度器(例如是图5a中的505),基于云容器服务的软件开发程序包(例如是图5a中的506)将检查任务通过云容器服务中的API服务器组件(例如是图5a中的509)下发到每个工作节点的代理客户端中进行处理。在没有发现云容器服务时,主控节点可通过K8S的API服务器组件(例如是图5a中的508)将检查任务下发到每个工作节点的容器副本中进行处理。
S506、工作节点调用代理客户端从对应的容器副本中获取主控节点分发的检查任务,并对目标组件以及工作负载执行检查任务,得到检查结果。
以一个工作节点为例,步骤S506的具体过程可参见上文步骤S402和S403的描述,此处不再进行赘述。
S507、工作节点调用代理客户端将检查结果发送至后端服务器。
在一种可选的实施方式中,步骤S507的具体过程可参见上文步骤S404中的相关描述,此处不再进行赘述。
S508、后端服务器根据各个工作节点的代理客户端发送的检查结果生成目标文件,该目标文件包括目标业务集群的安全检查结果。
其中,该目标文件也可以被称为结果文件(即图5a中的513)。
由于目标业务集群中可包括多个工作节点,因此,后端服务器会接收每个工作节点的代理客户端发送的检查结果,并对所有检查结果进行重新排序整理,生成目标文件。
S509、后端服务器将目标文件上报至消息系统,以使得后端程序对目标文件进行消费处理入库。
可选地,后端服务器可通过发送数据的客户端(例如可以是图5a中的514)将目标文件(例如可以是图5a中的513))上报至消息系统(例如可以是图5a中的515)中,等待后端程序对其进行消费处理入库。
可选的,后端服务器还可通过结果分析模块(例如可以是图5a中的517)对检查结果进行分析,并将分析结果发送至主控节点的子任务管理器(例如可以是图5a中的518)中,以使得子任务管理器将分析结果发送至数据库(例如可以是图5a中的519)中,供后续任务管理器进行调用处理。
可选地,后端服务器可将目标文件添加到数据队列中,基于数据队列中至少一个业务集群的目标文件生成安全检查结果列表,并在终端设备的结果页面中展示安全检查结果列表。其中,至少一个业务集群包括目标业务集群。
可见,采用本申请实施例,主控节点按照预设部署策略向工作节点部署代理客户端,可提高代理客户端的稳定性和可控性,从而提高集群安全检查的有效性和稳定性,有利于云原生环境下的集群安全运行。
根据本申请提供的实施例,图2和图4所示的集群安全检查方法可对K8S集群的安全性进行检查。可选的,K8S集群的搭建通常由运维人员通过在服务器集群上自行部署K8S相关组件,或者直接使用由云平台提供的托管服务或者容器服务来实现。下面以在云容器服务上创建的集群环境为例进行描述。
请参见图6,图6是本申请实施例提供的一种容器服务集群节点的界面示意图。如图6所示,为用户在云容器服务中创建的一个新的集群ke-test,其中包括了两个工作节点,即ke_cls-123_worker2和ke_cls-123_worker1。K8S主控制节点由容器服务托管,不提供工作负载能力。
请参见图7,图7是本申请实施例提供的一种容器服务测试工作负载的界面示意图。如图7所示,为用户在集群ke-test中创建的测试用的工作负载busybox。
之后,可在容器安全服务中集群安全选项下看到该集群,对该集群的检查组件进行安装后就可以对该集群进行K8S的安全检查,执行检查后可以获取该集群下的具体风险项和其解决方案。如图8所示,图8中的虚线框部分即为对该集群的检查组件进行安装后执行集群安全检查后得到的展示框。用户可点击查看详情获得该集群的风险详情界面。如图9所示,即为该集群ke_test的风险详情界面,该界面中展示了集群ke-test的风险项的详细列表,其列出所有涉及的漏洞和漏洞相关的基本信息,如名称、描述、检查目标、危险等级等。当漏洞有被运维人员或者管理员修复之后,主控节点可控制代理客户端对该集群执行重新检查,查看该漏洞是否确定已经被正确修复了。
基于上述集群安全检查方法的相关实施例的描述,本申请实施例还提出了一种集群安全检查装置,该集群安全检查装置可以是运行于主控节点中的一个计算机程序(包括程序代码)。该集群安全检查装置可以执行图2所示的集群安全检查方法;请参见图10,图10是本申请实施例提供的一种集群安全检查装置,该集群安全检查装置可以运行如下模块:
创建模块1001,用于响应于后端服务器通过调用集群管理接口发送的创建进程集指令,创建守护进程集;
部署模块1002,用于调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本,预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
任务处理模块1003,用于将检查任务分发给每个工作节点的容器副本,以使得每个工作节点的代理客户端从对应的容器副本中获取检查任务,对目标组件以及工作负载执行检查任务,并将检查结果发送至后端服务器。
在一种可选的实施方式中,部署模块1002在用于调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本之前,还用于:
接收针对代理客户端的资源配置指令,资源配置指令包括资源类型以及资源类型对应的资源量阈值;
响应资源配置指令生成代理客户端的资源控制策略,资源控制策略用于限制代理客户端在工作节点的资源占用。
在一种可选的实施方式中,部署模块1002在用于调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本之前,还用于:
创建代理客户端的权限集合,并将权限集合和对应的服务账户进行绑定,得到授权文件;
调用基于角色的权限访问控制模型,基于授权文件生成权限控制策略。
在一种可选的实施方式中,进程管理策略包括代理客户端在工作节点中以首进程运行,部署模块1002在用于调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本之后,还用于:
获取每个工作节点部署的代理客户端的运行状态;
当任一工作节点上部署的代理客户端出现故障停止运行时,基于进程管理策略对任一工作节点重新部署代理客户端。
在一种可选的实施方式中,创建模块1001,还用于接收终端设备发送的检查任务配置指令,检查任务配置指令包括资产类型和对象标识;
调用任务管理器响应检查任务配置指令,创建检查任务,检查任务包括任务标识、检查项以及节点标识中的一种或多种。
在一种可选的实施方式中,任务处理模块1003在用于将检查任务分发给每个工作节点的容器副本时,具体用于:
获取检查任务的配置文件,并将配置文件存储在分布式存储系统中,分布式存储系统以键值对的形式保存配置文件和工作节点;
创建配置资源对象,并通过配置资源对象从分布式存储系统中获取配置文件和工作节点的键值对;
基于键值对将配置文件挂载到对应的工作节点的容器副本中。
根据本申请的一个实施例,图2所示的方法所涉及的各个步骤均可由图10所示的集群安全管理装置中的各个模块来执行。例如,图2中所示的步骤S201可由图6中所示的创建模块1001执行,步骤S202可由图10中所示的部署模块1002执行,步骤S203可由图10中所示的任务处理模块1003执行等等。
根据本申请的一个实施例,图10所示的集群安全检查装置中的各个模块可以分别或全部合并为一个或若干个另外的模块来构成,或者其中的某个(些)模块还可以再拆分为功能上更小的多个模块来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个模块来实现,或者多个模块的功能由一个模块实现。在本申请的实施例中,基于集群安全检查装置也包括其他模块,在实际应用中,这些功能也可以由其它模块协助实现,并且可以由多个模块协作实现。
基于上述集群安全检查方法的相关实施例的描述,本申请实施例还提出了另一种集群安全检查装置,该集群安全检查装置可以是运行于工作节点中的一个计算机程序(包括程序代码)。该集群安全检查装置可以执行图4所示的集群安全检查方法;请参见图11,图11是本申请实施例提供的另一种集群安全检查装置,该集群安全检查装置可以运行如下模块:
接收模块1101,用于接收主控节点按照预设部署策略部署的代理客户端以及容器副本,该预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
获取模块1102,用于调用代理客户端从对应的容器副本中获取主控节点分发的检查任务;
检查模块1103,用于调用代理客户端对目标组件以及工作负载执行检查任务,得到检查结果;
发送模块1104,用于调用代理客户端将检查结果发送至后端服务器,以使得后端服务器根据各个工作节点的代理客户端发送的检查结果生成目标文件,该目标文件包括目标业务集群的安全检查结果。
在一种可选的实施方式中,检查模块1103还用于:
当工作节点调用代理客户端未获取到主控节点分发的检查任务时,调用代理客户端通过固定路径检查主控节点中的检查任务是否存在变化;
当确定检查任务存在变化时,调用代理客户端获取变化后的检查任务,并对目标组件以及工作负载执行变化后的检查任务。
在一种可选的实施方式中,检查模块1103在用于调用代理客户端对目标组件以及工作负载执行检查任务,得到检查结果时,具体用于:
调用代理客户端获取检查项标识列表和执行检查的节点标识列表;
若执行检查的节点标识列表包括工作节点的节点标识,则调用代理客户端加载与检查任务相关联的依赖资源,并基于检查项标识列表对目标组件以及工作负载进行逐项检查。
根据本申请的一个实施例,图4所示的方法所涉及的各个步骤均可由图11所示的集群安全管理装置中的各个模块来执行。例如,图4中所示的步骤S401可由图11中所示的接收模块1101执行,步骤S402可由图11中所示的获取模块1102执行,步骤S403可由图11中所示的检查模块1103执行,步骤S404可由图11中所示的发送模块1104执行等等。
根据本申请的一个实施例,图11所示的集群安全检查装置中的各个模块可以分别或全部合并为一个或若干个另外的模块来构成,或者其中的某个(些)模块还可以再拆分为功能上更小的多个模块来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个模块来实现,或者多个模块的功能由一个模块实现。在本申请的实施例中,基于集群安全检查装置也包括其他模块,在实际应用中,这些功能也可以由其它模块协助实现,并且可以由多个模块协作实现。
根据本申请的一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算机设备上运行能够执行如图2所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图10中所示的集群安全检查装置,以及来实现本申请实施例的集群安全检查方法。或者,运行执行如图4所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图11中所示的集群安全检查装置,以及来实现本申请实施例的另一种集群安全检查方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
可以理解的是,本申请实施例提供的集群安全检查装置中各个模块的具体实现以及可以达到的有益效果可参考前述对应的集群安全检查方法实施例的描述,在此不再赘述。
基于上述方法实施例以及装置实施例的描述,本申请实施例还提供一种计算机设备。请参见图12,该计算机设备至少包括处理器1201、存储器1202、通信接口1203。上述处理器1201、存储器1202和通信接口1203可通过总线1204或其他方式连接,本申请实施例以通过总线1204连接为例。
其中,处理器1201(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其可以解析计算机设备内的各类指令以及处理计算机设备的各类数据,例如:CPU可以用于解析用户向计算机设备所发送的开关机指令,并控制计算机设备进行开关机操作;再如:CPU可以在计算机设备内部结构之间传输各类交互数据,等等。通信接口1203可选的可以包括标准的有线接口、无线接口(如Wi-Fi、移动通信接口等),受处理器1201的控制用于收发数据。存储器1202(Memory)是计算机设备中的记忆设备,用于存放计算机程序和数据。可以理解的是,此处的存储器1202既可以包括计算机设备的内置存储器,当然也可以包括计算机设备所支持的扩展存储器。存储器1202提供存储空间,该存储空间存储了计算机设备的操作系统,可包括但不限于:Windows系统、Linux系统、Android系统、iOS系统,等等,本申请对此并不作限定。在一种可选的实施方式中,本申请实施例的处理器1201可通过运行存储器1202中存储的计算机程序,执行如下操作:
响应于后端服务器通过调用集群管理接口发送的创建进程集指令,创建守护进程集;
调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本,预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
将检查任务分发给每个工作节点的容器副本,以使得每个工作节点的代理客户端从对应的容器副本中获取检查任务,对目标组件以及工作负载执行检查任务,并将检查结果发送至所述后端服务器。
在一种可选的实施方式中,处理器1201调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本之前,还用于:
接收针对代理客户端的资源配置指令,资源配置指令包括资源类型以及资源类型对应的资源量阈值;
响应资源配置指令生成代理客户端的资源控制策略,资源控制策略用于限制代理客户端在工作节点的资源占用。
在一种可选的实施方式中,处理器1201在调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本之前,还用于:
创建代理客户端的权限集合,并将权限集合和对应的服务账户进行绑定,得到授权文件;
调用基于角色的权限访问控制模型,基于授权文件生成权限控制策略。
在一种可选的实施方式中,进程管理策略包括代理客户端在工作节点中以首进程运行,处理器1201在调用守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本之后,还用于:
获取每个工作节点部署的代理客户端的运行状态;
当任一工作节点上部署的代理客户端出现故障停止运行时,基于进程管理策略对任一工作节点重新部署代理客户端。
在一种可选的实施方式中,处理器1201还用于:
将目标文件添加到数据队列中,以使得终端设备基于数据队列中至少一个业务集群的目标文件生成安全检查结果列表,并在结果页面中展示安全检查结果列表,至少一个业务集群包括目标业务集群。
在一种可选的实施方式中,处理器1201还用于:
接收终端设备发送的检查任务配置指令,检查任务配置指令包括资产类型和对象标识;
调用任务管理器响应检查任务配置指令,创建检查任务,检查任务包括任务标识、检查项以及节点标识中的一种或多种。
在一种可选的实施方式中,处理器1201在用于将检查任务分发给每个工作节点的容器副本时,具体用于:
获取检查任务的配置文件,并将配置文件存储在分布式存储系统中,分布式存储系统以键值对的形式保存配置文件和工作节点;
创建配置资源对象,并通过配置资源对象从分布式存储系统中获取配置文件和工作节点的键值对;
基于键值对将配置文件挂载到对应的工作节点的容器副本中。
具体实现中,本申请实施例中所描述的处理器1201、存储器1202、通信接口1203可执行本申请实施例提供的一种集群安全检查方法中所描述的主控节点的实现方式,也可执行本申请实施例提供的一种集群安全检查装置中所描述的实现方式,在此不再赘述。
基于本申请提供的另一个实施例,本申请实施例的处理器1201还可通过运行存储器1202中存储的计算机程序,执行如下操作:
接收主控节点按照预设部署策略部署的代理客户端以及容器副本,该预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
调用代理客户端从对应的容器副本中获取主控节点分发的检查任务;
调用代理客户端对目标组件以及工作负载执行检查任务,得到检查结果;
调用代理客户端将检查结果发送至后台服务器,以使得后台服务器根据各个工作节点的代理客户端发送的检查结果生成目标文件,目标文件包括目标业务集群的安全检查结果。
在一种可选的实施方式中,处理器1201还用于:
当工作节点调用代理客户端未获取到主控节点分发的检查任务时,调用代理客户端通过固定路径检查主控节点中的检查任务是否存在变化;
当确定检查任务存在变化时,调用代理客户端获取变化后的检查任务,并对目标组件以及工作负载执行变化后的检查任务。
在一种可选的实施方式中,处理器1201在用于工作节点调用代理客户端对目标组件以及工作负载执行检查任务,得到检查结果时,具体用于:
调用代理客户端获取检查项标识列表和执行检查的节点标识列表;
若执行检查的节点标识列表包括工作节点的节点标识,则调用代理客户端加载与检查任务相关联的依赖资源,并基于检查项标识列表对目标组件以及工作负载进行逐项检查。
具体实现中,本申请实施例中所描述的处理器1201、存储器1202、通信接口1203可执行本申请实施例提供的另一种集群安全检查方法中所描述的工作节点的实现方式,也可执行本申请实施例提供的另一种集群安全检查装置中所描述的实现方式,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机设备执行上述任一可能实现方式的集群安全检查方法。其具体实现方式可参考前文描述,此处不再赘述。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一可能实现方式的集群安全检查方法。其具体实现方式可参考前文描述,此处不再赘述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请部分实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (14)

1.一种集群安全检查方法,其特征在于,应用于包括多个节点的目标业务集群,所述多个节点包括主控节点和工作节点,所述方法包括:
所述主控节点响应于后端服务器通过调用集群管理接口发送的创建进程集指令,创建守护进程集;
所述主控节点调用所述守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本,所述预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
所述主控节点将检查任务分发给所述每个工作节点的容器副本,以使得所述每个工作节点的代理客户端从对应的所述容器副本中获取所述检查任务,对目标组件以及工作负载执行所述检查任务,并将检查结果发送至所述后端服务器。
2.根据权利要求1所述的方法,其特征在于,所述主控节点调用所述守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本之前,所述方法还包括:
所述主控节点接收针对代理客户端的资源配置指令,所述资源配置指令包括资源类型以及所述资源类型对应的资源量阈值;
所述主控节点响应所述资源配置指令生成所述代理客户端的资源控制策略,所述资源控制策略用于限制所述代理客户端在所述工作节点的资源占用。
3.根据权利要求1所述的方法,其特征在于,所述主控节点调用所述守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本之前,所述方法还包括:
所述主控节点创建所述代理客户端的权限集合,并将所述权限集合和对应的服务账户进行绑定,得到授权文件;
所述主控节点调用基于角色的权限访问控制模型,基于所述授权文件生成权限控制策略。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述进程管理策略包括所述代理客户端在所述工作节点中以首进程运行,所述主控节点调用所述守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本之后,所述方法还包括:
所述主控节点获取所述每个工作节点部署的代理客户端的运行状态;
当任一工作节点上部署的所述代理客户端出现故障停止运行时,所述主控节点基于所述进程管理策略对所述任一工作节点重新部署所述代理客户端。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
所述主控节点接收终端设备发送的检查任务配置指令,所述检查任务配置指令包括资产类型和对象标识;
所述主控节点调用任务管理器响应所述检查任务配置指令,创建检查任务,所述检查任务包括任务标识、检查项以及节点标识中的一种或多种。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述主控节点将检查任务分发给所述每个工作节点的容器副本,包括:
所述主控节点获取检查任务的配置文件,并将所述配置文件存储在分布式存储系统中,所述分布式存储系统以键值对的形式保存所述配置文件和工作节点;
所述主控节点创建配置资源对象,并通过所述配置资源对象从所述分布式存储系统中获取所述配置文件和工作节点的键值对;
所述主控节点基于所述键值对将所述配置文件挂载到对应的工作节点的容器副本中。
7.一种集群安全检查方法,其特征在于,应用于包括多个节点的目标业务集群,所述多个节点包括主控节点和工作节点,所述方法包括:
所述工作节点接收所述主控节点按照预设部署策略部署的代理客户端以及容器副本,所述预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
所述工作节点调用所述代理客户端从对应的所述容器副本中获取所述主控节点分发的检查任务;
所述工作节点调用所述代理客户端对目标组件以及工作负载执行所述检查任务,得到检查结果;
所述工作节点调用所述代理客户端将所述检查结果发送至后端服务器,以使得所述后端服务器根据各个工作节点的代理客户端发送的检查结果生成目标文件,所述目标文件包括所述目标业务集群的安全检查结果。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述工作节点调用所述代理客户端未获取到所述主控节点分发的所述检查任务时,所述工作节点调用所述代理客户端通过固定路径检查所述主控节点中的检查任务是否存在变化;
当确定所述检查任务存在变化时,所述工作节点调用所述代理客户端获取变化后的检查任务,并对所述目标组件以及所述工作负载执行所述变化后的检查任务。
9.根据权利要求7或8所述的方法,其特征在于,所述工作节点调用所述代理客户端对目标组件以及工作负载执行所述检查任务,得到检查结果,包括:
所述工作节点调用所述代理客户端获取检查项标识列表和执行检查的节点标识列表;
若所述执行检查的节点标识列表包括所述工作节点的节点标识,则所述工作节点调用所述代理客户端加载与所述检查任务相关联的依赖资源,并基于所述检查项标识列表对所述目标组件以及所述工作负载进行逐项检查。
10.一种集群安全检查装置,其特征在于,应用于包括多个节点的目标业务集群,所述多个节点包括主控节点和工作节点,所述装置包括:
创建模块,用于响应于后端服务器通过调用集群管理接口发送的创建进程集指令,创建守护进程集;
部署模块,用于调用所述守护进程集,并按照预设部署策略向每个工作节点部署代理客户端以及容器副本,所述预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
任务处理模块,用于将检查任务分发给所述每个工作节点的容器副本,以使得所述每个工作节点的代理客户端从对应的所述容器副本中获取所述检查任务,对目标组件以及工作负载执行所述检查任务,并将检查结果发送至所述后端服务器。
11.一种集群安全检查装置,其特征在于,应用于包括多个节点的目标业务集群,所述多个节点包括主控节点和工作节点,所述装置包括:
接收模块,用于接收所述主控节点按照预设部署策略部署的代理客户端以及容器副本,所述预设部署策略包括资源控制策略、权限控制策略、进程管理策略中的一种或多种;
获取模块,用于调用所述代理客户端从对应的所述容器副本中获取所述主控节点分发的检查任务;
检查模块,用于调用所述代理客户端对目标组件以及工作负载执行所述检查任务,得到检查结果;
发送模块,用于调用所述代理客户端将所述检查结果发送至后端服务器,以使得所述后端服务器根据各个工作节点的代理客户端发送的检查结果生成目标文件,所述目标文件包括所述目标业务集群的安全检查结果。
12.一种计算机设备,其特征在于,所述计算机设备包括存储器、通信接口以及处理器,其中,所述存储器、所述通信接口和所述处理器相互连接;所述存储器存储有计算机程序,所述处理器调用所述存储器中存储的计算机程序,用于实现权利要求1至6任一项所述的集群安全检查方法或实现权利要求7至9任一项所述的集群安全检查方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现实现权利要求1至6任一项所述的集群安全检查方法或实现权利要求7至9任一项所述的集群安全检查方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或计算机指令被处理器执行时实现权利要求1至6任一项所述的集群安全检查方法或实现权利要求7至9任一项所述的集群安全检查方法。
CN202210401236.0A 2022-04-15 2022-04-15 一种集群安全检查方法、装置、设备及存储介质 Pending CN116962260A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210401236.0A CN116962260A (zh) 2022-04-15 2022-04-15 一种集群安全检查方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210401236.0A CN116962260A (zh) 2022-04-15 2022-04-15 一种集群安全检查方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116962260A true CN116962260A (zh) 2023-10-27

Family

ID=88449875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210401236.0A Pending CN116962260A (zh) 2022-04-15 2022-04-15 一种集群安全检查方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116962260A (zh)

Similar Documents

Publication Publication Date Title
US11726828B2 (en) Managing a virtualized application workspace on a managed computing device
CN113169952B (zh) 一种基于区块链技术的容器云管理系统
CN112104723B (zh) 一种多集群的数据处理系统及方法
US9009521B2 (en) Automated failure recovery of subsystems in a management system
CN112130871B (zh) 远程部署中间件的方法、装置、计算机设备及存储介质
US20150067167A1 (en) Hot pluggable extensions for access management system
CN111708550A (zh) 应用部署方法、装置、计算机设备及存储介质
US11722481B2 (en) Multiple identity provider authentication system
Oliveira et al. Evaluating raft in docker on kubernetes
CN114168179B (zh) 微服务管理方法、装置、计算机设备和存储介质
CN112698952A (zh) 计算资源统一管理方法、装置、计算机设备及存储介质
CN113037891A (zh) 边缘计算系统中有状态应用的访问方法、装置及电子设备
CN115086166A (zh) 计算系统、容器网络配置方法及存储介质
CN114706690A (zh) 一种Kubernetes容器共享GPU方法及系统
CN114579250B (zh) 一种构建虚拟集群的方法、装置及存储介质
CN112698930B (zh) 一种获取服务器标识的方法、装置、设备及介质
CN111600755B (zh) 上网行为管理系统和方法
CN114006815A (zh) 云平台节点的自动化部署方法、装置、节点及存储介质
CN116566656A (zh) 资源访问方法、装置、设备及计算机存储介质
CN116501482A (zh) 云计算管理系统、装置、可读存储介质及计算设备
CN116954810A (zh) 容器应用实例的创建方法、系统、存储介质及程序产品
CN116962260A (zh) 一种集群安全检查方法、装置、设备及存储介质
CN111176782B (zh) 一种在线实验方法和装置
Hao Edge computing on low availability devices with K3S in a smart home IoT system
US20230419067A1 (en) ENHANCED QUICK RESPONSE (qr) CODE SCAN SECURITY

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination