容器化应用合规检测的方法、装置、设备和存储介质与流程

文档序号:32661031发布日期:2022-12-23 23:33阅读:60来源:国知局
容器化应用合规检测的方法、装置、设备和存储介质与流程

1.本发明涉及容器化应用技术领域,特别涉及一种容器化应用合规检测的方法、装置、设备和存储介质。


背景技术:

2.无论是在一般的数据中心,或是在金融级数据中心中,对于容器云平台的容器化应用,一般都会制定一些应用运行需要满足的软件规范。所以,为了确保数据中心运行的容器化应用满足这些软件规范,有必要对容器化应用进行合规检查。
3.现有的一种合规性检查方法是,当有容器化应用的镜像文件推送到镜像仓库时,对镜像文件进行合规检查,若镜像文件符合软件规范,就将镜像文件推送到云平台,在云平台上运行容器化应用。
4.这种方式存在的问题是,对于已投产的应用(即镜像文件已推送到云平台的应用)无法及时进行合规检查,并且无法对应用的运行环境进行合规检查。


技术实现要素:

5.针对上述现有技术的缺点,本发明提供一种容器化应用合规检测的方法、装置、设备和存储介质,以提供一种对投产后的容器化应用进行合规检测的方案。
6.本技术第一方面提供一种容器化应用合规检测的方法,应用于云平台,所述方法包括:
7.调用接口服务获得所述云平台中运行的待检测容器化应用的应用合规信息;其中,所述待检测容器化应用的应用合规信息,至少包括所述待检测容器化应用的元数据信息、安全配置信息和镜像信息;
8.获取预先配置的应用规范;
9.利用合规检测插件检测所述待检测容器化应用的应用合规信息是否符合所述应用规范,获得合规检测结果。
10.可选的,所述利用合规检测插件检测所述待检测容器化应用的应用合规信息是否符合所述应用规范,获得合规检测结果之后,还包括:
11.根据所述合规检测结果生成合规检测报告;
12.在用户终端上显示所述合规检测报告。
13.可选的,所述调用接口服务获得所述云平台中运行的待检测容器化应用的应用合规信息之前,还包括:
14.将所述云平台中运行的符合预设检测条件的容器化应用确定为待检测容器化应用。
15.可选的,所述获取预先配置的应用规范,包括:
16.从预先配置的合规检测资源中获取应用规范。
17.本技术第二方面提供一种容器化应用合规检测的装置,应用于云平台,所述装置
包括:
18.调用单元,用于调用接口服务获得所述云平台中运行的待检测容器化应用的应用合规信息;其中,所述待检测容器化应用的应用合规信息,至少包括所述待检测容器化应用的元数据信息、安全配置信息和镜像信息;
19.获取单元,用于获取预先配置的应用规范;
20.检测单元,用于利用合规检测插件检测所述待检测容器化应用的应用合规信息是否符合所述应用规范,获得合规检测结果。
21.可选的,所述装置还包括展示单元,用于:
22.根据所述合规检测结果生成合规检测报告;
23.在用户终端上显示所述合规检测报告。
24.可选的,所述调用单元还用于:
25.将所述云平台中运行的符合预设检测条件的容器化应用确定为待检测容器化应用。
26.可选的,所述获取单元获取预先配置的应用规范时,具体用于:
27.从预先配置的合规检测资源中获取应用规范。
28.本技术第三方面提供一种电子设备,包括存储器和处理器;
29.其中,所述存储器用于存储计算机程序;
30.所述处理器用于执行所述计算机程序,所述计算机程序被执行时,具体用于实现本技术第一方面任意一项所提供的容器化应用合规检测的方法。
31.本技术第四方面提供一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,具体用于实现本技术第一方面任意一项所提供的容器化应用合规检测的方法。
32.本技术提供一种容器化应用合规检测的方法、装置、设备和存储介质,应用于云平台,方法包括:调用接口服务获得云平台中运行的待检测容器化应用的应用合规信息;待检测容器化应用的应用合规信息,至少包括待检测容器化应用的元数据信息、安全配置信息和镜像信息;获取预先配置的应用规范;利用合规检测插件检测待检测容器化应用的应用合规信息是否符合应用规范,获得合规检测结果。本方案通过云平台的接口服务获得运行中的容器化应用的应用合规信息,并检测应用合规信息是否符合应用规范,实现了对运行中的容器化应用的合规检测。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
34.图1为本技术实施例提供的一种容器云平台的架构示意图;
35.图2为本技术实施例提供的一种监听合规配置资源的技术框架示意图;
36.图3为本技术实施例提供的一种容器化应用合规检测的方法的流程图;
37.图4为本技术实施例提供的另一种容器化应用合规检测的方法的流程图;
38.图5为本技术实施例提供的一种容器化应用合规检测的装置的结构示意图;
39.图6为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
40.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.为了便于理解本技术的技术方案,首先对可能涉及的术语进行简要说明。
42.kubernetes,一个开源的企业级容器集群编排系统,一个可扩展、可移植的容器化负载调度、管理平台,能够为容器化应用提供生命周期管理、服务发现、弹性伸缩和故障恢复等功能。
43.用户定义资源(custom resource definitions,crd):kuberntes的一种自定义资源,用来存储结构化数据,能够实现对kubernetes api的扩展,增强kubernetes原生没有的能力,也使得kubernetes更加的模块化。
44.操作者,operator,实现kubernetes扩展能力的一种模式,operator是kubernetes api的客户端,充当crd的控制器,基于crd资源定义,自动化地实现需要完成的业务逻辑。
45.容器,pod,可以在kubernetes创建和管理的最小可部署的计算单元,其中包含一组容器,这些容器网络和存储,并在kubernetes中一起调度,运行在共享的上下文中。
46.容器镜像。容器运行的静态文件,相当于需要在集群中发布的容器化应用的镜像文件,其中包含应用运行需要的应用程序及其依赖,通过dockerfile指令构建而成。其中,docker是一个开源的应用容器引擎,dockerfile为该引擎提供的一种用于创建容器镜像的计算机指令。
47.应用规范,不同企业根据行业要求或安全等级,对于应用容器化需要的容器镜像、运行安全、网络环境等,提出的一些必选或可选的技术或非技术要求。
48.针对背景技术中指出的问题,本技术提供一种容器化应用合规检测的方法。本技术的方案主要基于kubernetes的容器云平台来实现合规性动态检测工具,其中用到了kubernetes平台的接口服务(api server)的监听(watch)机制,可以实时感知云平台中容器化应用的创建和变更通知,从而触发检测工具获取容器化应用运行时的声明性配置,基于这些配置进一步获取容器化应用的元数据信息、安全配置信息、镜像信息等,为检测工具异步完成容器化应用的合规性检查提供输入数据。
49.本技术所提供的容器化应用合规检测的方法,可以应用于图1所示的容器云平台,如图1所示,该云平台包括可视化界面,集群接口服务(kube-apiserver),合规检测引擎,数据库以及合规检测插件。
50.用户可以在可视化界面上执行配置操作,从而通过集群接口服务配置合规检测资源,同时,可视化界面可以显示合规检测引擎输出的合规检测结果。
51.合规检测资源,为本技术实施例中用于存储应用规范的用户定义资源(即crd),除了应用规范以外,合规检测资源还可以存储检测条件和其他与合规检测相关的检测配置信息。合规检测资源中存储的这些数据(即应用规范,检测条件和检测配置信息)均可以通过
上述可视化界面由用户设置。
52.合规检测引擎通过集群接口服务获取待检测容器化应用的应用合规信息,然后在获取到应用合规信息后,调用合规检测插件来检测应用合规信息是否符合上述应用规范,从而获得合规检测结果。合规检测结果可以被合规检测引擎存储在数据库中,也可以在可视化界面展示。
53.合规检测插件包括若干个针对不同检测需求而预先配置的插件,比如包括用于检测镜像文件是否符合对应的应用规范的镜像合规检查插件,用于检测容器化应用是否符合应用规范中的安全限制的安全限制检查插件,用于扫描容器化应用是否有漏洞的漏洞扫描服务插件等。
54.本实施例提供的方法中,应用规范,检测条件和检测配置信息这些数据也可以不存在合规检测资源,而是存储在关系型数据库中。当存储在关系型数据库中时,为了能够及时发现针对应用规范,检测条件和检测配置信息的更新,合规检测引擎可以定时对关系型数据库中存储的上述数据进行查询,以确定这些数据是否被更新。
55.而存储在合规检测资源中的好处在于,当合规检测资源中的应用规范,检测条件和检测配置信息被更新时,合规检测引擎可以基于图2所示的技术框架及时发现这些更新,并同步更新后的数据。
56.如图2所示,集群接口服务对数据库中存储的合规检测资源实时进行列表监听列表监听(list&watch),当用户通过可视化界面调用集群接口服务,对合规检测资源中的数据进行更新时,集群接口服务会将该更新行为以消息的形式发送给通知器(informer)中的映射器(reflector)。
57.由此,映射器通过先进先出(fifo)队列将本次更新中被调用的函数记录在工作队列(workqueue)中,并通过索引器(indexer)在本地缓存中缓存更新后的合规检测资源和对应的索引。
58.同时,工作队列中记录有每一次更新对应的缓存标识(key),例如图2中记录有缓存标识(key)1至缓存标识n,合规检测引擎的控制器(controller)中运行的合规检测引擎控制逻辑可以实时同步工作队列中的缓存标识,然后根据缓存标识从本地缓存中获取到每一次更新后的合规检测资源。
59.其中,用户可以通过调用新增函数(addfunc),更新函数(update func)和删除函数(delete func)中的任意一种来对合规检测资源中存储的数据进行更新。
60.可以看出,通过图2所示的机制,每当用户对合规检测资源中记录的应用规范,检测条件和检测配置信息进行更新时,合规检测引擎都可以实时发现并同步这些更新,然后基于更新后的数据,例如根据更新后的应用规范再次对容器化应用进行合规检测。
61.也就是说,基于上述机制,当合规检测引擎感知到合规检测资源有新增、更新或删除变化时,合规检测引擎便会并发调用合规检测插件进行容器化应用的合规性检测,同时不断收集合规检测插件执行的检查状态,并及时更新到合规检测资源的状态,方便用户跟踪及查看。
62.在一些可选的实施例中,图2所示的监听机制可以在合规检测引擎向集群服务接口发起监听合规检测资源的请求后建立。
63.可选的,当合规检测引擎调用合规检测插件时,可以并发地调用多个合规检测插
件并异步收集合规检测结果,或者也可以基于流水线工作模式,串行地调用合规检测插件,但采用流水线串行模式,在一定程度上,会影响获得合规检测结果所用时长。
64.基于图1所示的云平台,请参见图3,为本技术实施例提供的一种容器化应用合规检测的方法的流程图。本实施例提供的方法可以应用于云平台,具体可以由云平台的合规检测引擎来执行。
65.如图3所示,该方法可以包括如下步骤。
66.s301,将云平台中运行的符合预设检测条件的容器化应用确定为待检测容器化应用。
67.需要说明的是,步骤s301为可选的步骤。也就是说,在一些可选的实施例中,可以不执行步骤s301,而是直接将云平台上运行的每一个容器化应用都确定为待检测容器化应用。
68.执行步骤s301的好处在于:
69.可以过滤掉一些合规检测的需求不强的容器化应用,减少每一轮合规检测时需要检测的容器化应用的数量,减少每一轮合规检测的资源消耗。
70.步骤s301中确定的待检测容器化应用,可以包括一个或多个容器化应用。
71.如前文所述,检测条件可以由用户通过集群服务接口预先配置在合规检测资源中,合规检测引擎则从合规检测资源中读取检测条件。
72.检测条件的具体内容可以按需设定,不做限定。作为一个示例,检测条件可以包括,仅对最近1小时内未进行过合规检测的容器化应用进行合规检测,也就是说,在执行s301时,可以逐一判断当前运行在云平台的每一容器化应用最近一小时内是否被进行过合规检测,如果最近1小时内已经检测过了,就不需要再次检测,如果最近1小时内没有检测过,就将该容器化应用确定为待检测容器化应用。
73.s302,调用接口服务获得云平台中运行的待检测容器化应用的应用合规信息。
74.每一个容器化应用在云平台上运行之前,都会向其他容器化应用声明自身的配置信息,因此在s302中,合规检测引擎可以通过集群服务接口获得当前在运行的待检测容器化应用声明的配置信息,即上述声明配置,然后在声明配置中提取得到该待检测容器化应用的应用合规信息。
75.应用合规信息,指代对一个待检测容器化应用进行合规检测时所需的信息,也可以理解为步骤s304中进行合规检测的入口信息,示例性的,应用合规信息可以包括待检测容器化应用的元数据信息、安全配置信息和镜像信息。
76.s303,获取预先配置的应用规范。
77.如前所述,应用规范也由用户通过集群服务接口预先配置在合规检测资源中。因此,步骤s303具体可以是:
78.从预先配置的合规检测资源中获取应用规范。
79.应用规范,主要包括容器化应用在云平台运行时应当满足的若干规范,这些规范具体可以包括镜像安全方面的规范,例如镜像文件不能包含特定的代码段,不能调用特定的有安全漏洞的函数等;镜像规范方面的规范,例如镜像文件的大小不能超过一定值,镜像文件的存储路径应当为指定路径等;容器运行安全限制方面的规范,例如容器化应用运行时不能修改云平台的特定参数,不能调用云平台的特定插件等。
80.除上述示例外,应用规范还可以包括其他方面的其他规范,本实施例不做限定。
81.s304,利用合规检测插件检测待检测容器化应用的应用合规信息是否符合应用规范,获得合规检测结果。
82.合规检测引擎通过调用合规检测插件,可以检测待检测容器化应用的应用合规信息是否符合前述应用规范,例如检测待检测容器化应用是否符合不能调用特定的有安全漏洞的函数的规范,以及是否符合镜像文件的大小不能超过一定值的规范等。
83.在步骤s304中,合规检测引擎可以根据需要检测的内容调用对应的合规检测插件。
84.例如,如果需要检测待检测容器化应用是否符合镜像规范方面的规范,则可以调用前述镜像合规检查插件,如果需要检测待检测容器化应用是否符合容器运行安全限制方面的规范,可以调用前述安全限制检查插件。
85.这样做的好处在于,针对不同方面的应用规范设置专门用于检测该方面规范的合规检测插件,可以提高每一合规检测插件进行合规检测时的效率和准确度。
86.合规检测结果,可以用于描述待检测容器化应用是否符合对应的应用规范,如果不符合,则可以进一步描述具体符合哪些应用规范,不符合哪些应用规范。
87.在一些可选的实施例中,除了调用合规检测插件以外,还可以调用一些从外部接入到容器云平台的第三方服务来进行合规检测,例如可以调用漏洞扫描服务等。
88.在一些可选的实施例中,合规检测引擎可以根据合规检测资源中记录的检测配置信息对检测过程进行控制。
89.示例性的,检测配置信息可以包括限定检测时长。合规检测引擎开始执行步骤s304,即开始本次合规检测后,可以实时统计本次检测的用时,当发现本次检测的用时达到限定检测时长时,就强制终止本次检测(不论是否获得对应的合规检测结果)。
90.这种情况下,可以记录本次检测的相关状态,例如记录在强制终止后,有哪些待检测容器化应用已完成检测,有哪些待检测容器化应用没有完成检测。
91.作为一种可选的实施方式,合规检测引擎可以通过周期性的调用进行合规检测的合规检测插件来判断本次合规检测是否结束。
92.检测配置信息还可以包括一个用于指征合规检测是否完成的检测状态标识,合规检测引擎可以根据当前的检测进度将该检测状态标识设定为“检测中”或者“检测结束”,用户则可以通过可视化界面查看该检测标识来实时感知检测的完成情况。
93.本技术提供一种容器化应用合规检测的方法,应用于云平台,方法包括:调用接口服务获得云平台中运行的待检测容器化应用的应用合规信息;待检测容器化应用的应用合规信息,至少包括待检测容器化应用的元数据信息、安全配置信息和镜像信息;获取预先配置的应用规范;利用合规检测插件检测待检测容器化应用的应用合规信息是否符合应用规范,获得合规检测结果。本方案通过云平台的接口服务获得运行中的容器化应用的应用合规信息,并检测应用合规信息是否符合应用规范,实现了对运行中的容器化应用的合规检测。
94.本实施例的优点在于:
95.与现有数据中心容器化应用的合规管理相比,本方法能够通过基于动态配置crd,以自动化的方式完成容器化应用的合规检测,减少运维人员的人力付出,同时也能快速发
现容器化应用是否合规的问题。
96.同时,本方法作用在容器化应用的运行阶段,可做为合规检查的最后一道屏障,按需完成容器化应用的合规检测,与时俱进,避免了镜像构建阶段的扫描结果不满足最新要求或规范,或者在紧急情况下,对于新的程序漏洞,能够快速完成对运行环境的检查。
97.另外,本方法不局限于初始部署时的检测能力,通过动态支持插件扩展的方式,根据需要快速更新和增强合规检测引擎的能力。
98.本技术另一实施例还提供一种容器化应用合规检测的方法,请参见图4,为该方法的流程图。
99.s401,将云平台中运行的符合预设检测条件的容器化应用确定为待检测容器化应用。
100.s402,调用接口服务获得云平台中运行的待检测容器化应用的应用合规信息。
101.s403,获取预先配置的应用规范。
102.s404,利用合规检测插件检测待检测容器化应用的应用合规信息是否符合应用规范,获得合规检测结果。
103.步骤s401至s404的具体实施过程与图3对应的实施例的步骤s301只s303一致,不再赘述。
104.s405,根据合规检测结果生成合规检测报告。
105.在步骤s405中,合规检测引擎可以通过周期性地调用合规检测插件(或者第三方的服务)来确定本次合规检测是否结束。
106.在确定本次合规检测结束后,合规检测引擎从用于进行合规检测的合规检测插件或者第三方服务处取回对应的合规检测结果,然后综合各个合规检测插件和第三方服务的合规检测结果生成合规检测报告。
107.s406,在用户终端上显示合规检测报告。
108.在步骤s406中,合规检测引擎可以将合规检测报告发送给每一个具有对应的浏览权限的用户终端,使得运维人员通过用户终端查看合规检测报告。
109.除了以上各个阶段的能力之外,本发明同时也具备识别合规检测插件或第三方服务的生命周期管理能力,当已有的合规检测插件或服务不能满足合规检测需要时,运维人员可以动态更新或新增合规检测插件,以满足新的合规检测需求。
110.根据本技术实施例提供的容器化应用合规检测的方法,本技术实施例还提供一种容器化应用合规检测的装置,请参见图5,为该装置的结构示意图,该装置可以包括如下单元。
111.调用单元501,用于调用接口服务获得云平台中运行的待检测容器化应用的应用合规信息。
112.其中,待检测容器化应用的应用合规信息,至少包括待检测容器化应用的元数据信息、安全配置信息和镜像信息。
113.获取单元502,用于获取预先配置的应用规范。
114.检测单元503,用于利用合规检测插件检测待检测容器化应用的应用合规信息是否符合应用规范,获得合规检测结果。
115.可选的,该装置还包括展示单元504,用于:
116.根据合规检测结果生成合规检测报告;
117.在用户终端上显示合规检测报告。
118.可选的,调用单元501还用于:
119.将云平台中运行的符合预设检测条件的容器化应用确定为待检测容器化应用。
120.可选的,获取单元502获取预先配置的应用规范时,具体用于:
121.从预先配置的合规检测资源中获取应用规范。
122.本实施例提供的装置可以应用云平台,该装置可以视为云平台中的合规检测引擎。
123.本实施例提供的容器化应用合规检测的装置,其具体工作原理可以参见本技术实施例提供的容器化应用合规检测的方法中的相关步骤,此处不再赘述。
124.本技术提供一种容器化应用合规检测的装置,应用于云平台,装置包括,调用单元501调用接口服务获得云平台中运行的待检测容器化应用的应用合规信息;待检测容器化应用的应用合规信息,至少包括待检测容器化应用的元数据信息、安全配置信息和镜像信息;获取单元502获取预先配置的应用规范;检测单元503利用合规检测插件检测待检测容器化应用的应用合规信息是否符合应用规范,获得合规检测结果。本方案通过云平台的接口服务获得运行中的容器化应用的应用合规信息,并检测应用合规信息是否符合应用规范,实现了对运行中的容器化应用的合规检测。
125.本技术实施例还提供一种电子设备,请参见图6,包括存储器601和处理器602。
126.其中,存储器601用于存储计算机程序。
127.处理器602用于执行计算机程序,计算机程序被执行时,具体用于实现本技术任一实施例所提供的容器化应用合规检测的方法。
128.本技术实施例还提供一种计算机存储介质,用于存储计算机程序,计算机程序被执行时,具体用于实现本技术任一实施例所提供的容器化应用合规检测的方法。
129.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
130.需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
131.专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1