发明内容
本申请的目的在于提供一种多集群网络安全策略管控方法和系统,以解决或缓解上述现有技术中存在的问题。
为了实现上述目的,本申请提供如下技术方案:
本申请提供了一种多集群网络安全策略管控方法,用于在包含多个容器集群的联邦集群中进行安全策略规则配置,包括:根据安全请求方编写的网络策略配置文件,调用网络策略控制器对多个所述容器集群的安全策略配置模式进行选择,并由所述网络策略控制器向规则中心发送规则注入请求;响应于所述规则中心接收到网络策略控制器发送的规则注入请求,对所述网络策略控制器发送的安全策略规则进行规则校验;其中,所述安全策略规则包含于所述网络策略配置文件中;响应于所述安全策略规则通过所述规则校验,所述规则中心将所述安全策略规则在规则库中进行存储固化,并向所述网络策略控制器发送第一信息,其中,所述第一信息为所述安全策略规则在所述规则库中存储固化成功的信息;响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行所述安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护。
可选地,在本申请的任一实施例中,所述根据安全请求方编写的网络策略配置文件,调用网络策略控制器对多个所述容器集群的安全策略配置模式进行选择,并由所述网络策略控制器向规则中心发送规则注入请求,包括:根据所述网络策略配置文件中指定的应用程序接口,由应用程序接口服务模块将配置请求参数和所述安全策略规则转发至所述网络策略控制器;其中,所述配置请求参数包含于由所述网络策略配置文件中;所述网络策略控制器根据所述配置请求参数,对多个所述容器集群的安全策略配置模式进行选择,并向所述规则中心发送规则注入请求。
可选地,在本申请的任一实施例中,所述响应于规则中心接收到网络策略控制器发送的规则注入请求,对所述网络策略控制器发送的安全策略规则进行规则校验,包括:响应于所述规则中心接收到所述网络策略控制器发送的规则注入请求,对所述网络策略控制器发送的所述安全策略规则和多个所述容器集群中目前配置的安全策略规则进行规则冲突检测;若所述安全策略规则与所述容器集群中目前配置的安全策略规则发生规则冲突,则向安全请求方发送规则冲突的错误代码,以由所述安全请求方对所述安全策略规则进行修改;若所述安全策略规则与所述容器集群中目前配置的安全策略规则未发生规则冲突,则所述安全策略规则通过所述规则校验。
可选地,在本申请的任一实施例中,所述响应于所述安全策略规则通过所述规则校验,所述规则中心将所述安全策略规则在所述规则库中进行存储固化,并向所述网络策略控制器发送第一信息之后,在响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行所述安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护之前,还包括:响应于所述第一信息发送失败,所述规则中心按照预设的重试机制对所述第一信息进行重复发送,直至重复发送的次数达到所述重试机制的预设尝试阈值,所述规则中心将所述第一信息发送失败的消息代码反馈至所述安全请求方。
可选地,在本申请的任一实施例中,所述安全策略配置模式为多活镜像集群模式,对应的,所述响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行所述安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护,包括:响应于所述网络策略控制器接收到所述第一信息,基于所述多活镜像集群模式,根据所述网络策略配置文件,指定多个所述容器集群中的一个所述容器集群为主集群,并在指定为主集群的所述容器集群中注入所述安全策略规则;基于指定为主集群的所述容器集群配置的所述安全策略规则,在所述联邦集群中的、所述网络策略配置文件中指定的其它所述容器集群中自动生成所述安全策略规则,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护。
可选地,在本申请的任一实施例中,所述安全策略配置模式为非镜像集群手动模式,对应的,所述响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行所述安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护,包括:响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,确定所述联邦集群的多个所述容器集群中,所述安全策略规则限定的资源对象;在限定的所述资源对象中,配置生效的所述安全策略规则,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护。
可选地,在本申请的任一实施例中,在所述响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行所述安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护之后,还包括:响应于任意两个所述容器集群的所述安全策略规则不一致,所述网络策略控制器从所述规则中心拉取最新安全策略规则,在多个所述容器集群中进行最新安全策略规则的配置,使多个所述容器集群根据最新安全策略规则、按照设定的工作模式进行网络安全保护,其中,所述最新安全策略规则为当前生效的安全策略规则。
可选地,在本申请的任一实施例中,所述工作模式为告警模式,对应的,所述响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护,具体为:响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行安全策略规则的配置,以由每个所述容器集群根据所述安全策略规则,激活网络策略探针,对流入所述容器集群的流量进行不定期嗅探;其中,所述网络策略探针包含于所述容器集群的安全策略执行器中;响应于所述网络策略探针探测到流量异常,所述容器集群根据所述安全策略规则中的告警策略,发出告警通知。
可选地,在本申请的任一实施例中,所述安全策略规则至少包括:不同所述容器集群间的访问节点规则、不同所述容器集群间的访问协议规则、不同所述容器集群间的访问的命名空间规则、不容所述容器集群间的访问的服务账号规则、不容所述容器集群间的访问的服务规则、不容所述容器集群间的访问的IP地址段、不容所述容器集群间的访问的IP地址和端口规则。
本申请实施例还提供一种多集群网络安全策略管控系统,用于在包含多个容器集群的联邦集群中进行安全策略规则配置,包括:规则准备单元,配置为根据安全请求方编写的网络策略配置文件,调用网络策略控制器对多个所述容器集群的安全策略配置模式进行选择,并由所述网络策略控制器向规则中心发送规则注入请求;规则校验单元,配置为响应于所述规则中心接收到网络策略控制器发送的规则注入请求,对所述网络策略控制器发送的安全策略规则进行规则校验;其中,所述安全策略规则包含于所述网络策略配置文件中;规则固化单元,配置为响应于所述安全策略规则通过所述规则校验,所述规则中心将所述安全策略规则在规则库中进行存储固化,并向所述网络策略控制器发送第一信息,其中,所述第一信息为所述安全策略规则在所述规则库中存储固化成功的信息;规则配置单元,配置为响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行所述安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护。
与最接近的现有技术相比,本申请实施例的技术方案具有如下有益效果:
本申请实施例提供的多集群网络安全策略管控方法和系统的技术方案,用于在包含多个容器集群的联邦集群中进行安全策略规则配置,通过调用网络策略控制器对多个容器集群的安全策略配置模式进行选择,并向规则中心发送规则注入请求;规则中心接收到规则注入请求后,对网络策略控制器发送的安全请求发编写的安全策略文件中包含的安全策略规则进行规则校验,若安全策略规则通过规则校验,则规则中心将安全策略规则在规则库中进行存储固化,并向网络策略控制器发送安全策略规则在规则库中存储固化成功的第一信息;若网络策略控制器接收到第一信息,基于选择的安全策略配置模式,在多个容器集群中进行安全策略规则的配置,由多个容器集群根据安全策略规则执行安全策略,按照设定的工作模式进行网络访问安全保护。籍此,完成了在联邦集群场景下的网络安全策略实现机制,实现了多集群网络安全策略的同步、分发以及安全控制,极大的提高了在联邦集群场景下的网络安全问题。
具体实施方式
下面将参考附图并结合实施例来详细说明本申请。各个示例通过本申请的解释的方式提供而非限制本申请。实际上,本领域的技术人员将清楚,在不脱离本申请的范围或精神的情况下,可在本申请中进行修改和变型。例如,示为或描述为一个实施例的一部分的特征可用于另一个实施例,以产生又一个实施例。因此,所期望的是,本申请包含归入所附权利要求及其等同物的范围内的此类修改和变型。
示例性场景
图1为根据本申请的一些实施例提供的一种多集群网络安全策略管控方法的场景示意图;如图1所示,该应用场景中,通过联邦集群网络策略管理器将安全策略规则的控制与执行分离开,在联邦集群网络策略管理器中包含API服务模块、网络策略控制器和规则中心;安全请求方编写网络策略配置文件,并发送至联邦集群网络策略管理器中的API服务模块中,API服务模块通过网络策略配置文件中指定的API接口,将网络策略配置文件中的配置请求参数和安全策略规则转发至网络策略控制器;网络策略控制器根据配置请求参数,选择联邦集群中多个容器集群的安全策略配置模式,并向规则中心发送规则注入请求,将安全策略规则发送至规则中心;规则中心接收到网络策略控制器的规则注入请求后,对注入的安全策略规则进行规则校验,将通过规则校验的安全策略规则在规则库中进行固化存储,并将安全策略规则固化存储成功的消息反馈给网络策略控制器;网络策略控制器接收到规则中心发送的安全策略规则固化存储成功的反馈消息后,根据选择的安全策略配置模式,在联邦集群的多个容器集群中进行安全策略配置,由多个容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,在联邦集群的多个容器集群中进行安全策略规则配置时,将安全策略规则的控制(注入规则中心、在规则中心进行规则校验、在规则库中进行存储固化等)与执行(基于选择的安全策略配置模式,在多个容器集群中进行安全策略规则的配置)分离,充分考虑了可能存在的故障隔离,联邦集群的网络策略配置统一在联邦集群网络策略管理器中实现,而具体的网络策略执行,依靠位于各个cluster自身的网络策略探针实现。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
示例性方法
图2为根据本申请的一些实施例提供的一种多集群网络安全策略管控方法的流程示意图;如图2所示,该多集群网络安全策略管控方法包括:
步骤S201、根据安全请求方编写的网络策略配置文件,调用网络策略控制器对多个所述容器集群的安全策略配置模式进行选择,并由所述网络策略控制器向规则中心发送规则注入请求;
在本申请实施例中,安全请求方可以是联邦集群的网络安全管理员,由联邦集群的网络安全管理员进行网络策略配置文件(比如,名称为kubefed-networkpolicy.yaml)的编写,在编写的网络策略配置文件中包含具体的应用程序接口(Application ProgrammingInterface,简称API)、配置请求的格式、配置请求所携带的参数等。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,安全请求方编写的网络策略配置文件的网络策略覆盖范围包括但不限于:针对联邦集群中,各个集群(cluster)级别的安全策略管控、各个工作节点的安全策略管控、各个工作节点的访问协议和访问网卡的安全策略管控、各个服务账号(service account)下所能CRUD(增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete))操作范围内的各个资源的安全策略管控、各个服务(service)的安全策略管控、各个无类别域间路由(Classless Inter-Domain Routing,简称CIDR)网络地址段的安全策略管控、各个细分IP地址和端口的安全策略管控、各个自定义的IPBlock(即IP地址集合)的安全策略管控、各个容器集群的安全策略管控。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,网络策略控制器有两个安全策略配置模式,一种是多活镜像集群模式,一种是非镜像集群手动模式。针对多个容器集群的不同安全策略配置模式,采用不同的技术手段对多个容器集群进行安全策略规则的配置。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图3为根据本申请的一些实施例提供的多集群网络安全策略管控方法中步骤S201的流程示意图;如图3所示,所述根据安全请求方编写的网络策略配置文件,调用网络策略控制器对多个所述容器集群的安全策略配置模式进行选择,并由所述网络策略控制器向规则中心发送规则注入请求,包括:
步骤S211、根据所述网络策略配置文件中指定的应用程序接口,由应用程序接口服务模块将配置请求参数和所述安全策略规则转发至所述网络策略控制器;其中,所述配置请求参数包含于所述网络策略配置文件中;
在本申请实施例中,在网络策略配置文件中包含具体的API接口、配置请求的格式、配置请求所携带的参数等;安全请求方将网络策略配置文件发送到API服务模块中,由API服务模块根据网络策略配置文件中的参数配置调用网络策略控制器,并通过具体的API接口将配置请求参数和安全策略规则转发到网络策略控制器,以便网络策略控制器进行配置识别。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S221、所述网络策略控制器根据所述配置请求参数,对多个所述容器集群的安全策略配置模式进行选择,并向所述规则中心发送规则注入请求。
在本申请实施例中,网络策略控制器根据API服务模块发送的配置请求参数,判断联邦集群中的多个容器集群是属于多活镜像集群模式,还是属于非镜像集群手动模式,以选择合适的安全策略配置模式。当网络策略控制器选取适当的安全策略配置模式后,向规则中心发送规则注入请求,将安全策略规则注入到规则中心。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S202、响应于所述规则中心接收到网络策略控制器发送的规则注入请求,对所述网络策略控制器发送的安全策略规则进行规则校验;其中,所述安全策略规则包含于所述网络策略配置文件中;
在本申请实施例中,规则校验包括:规则检验和规则冲突检测。规则中心在接收到网络策略控制器发送的规则注入请求后,对网络策略控制器注入的安全策略规则进行规则检验,检验若注入的安全策略规则生效后,是否会导致联邦集群中的某个容器完全无法被访问。若安全策略规则的规则检验有问题,则规则中心反馈具体的冲突信息给网络策略控制器,由网络策略控制器通知API接口,安全请求方的安全策略配置请求终止。若安全策略规则的规则检验没有问题,则规则中心继续对安全策略规则进行规则冲突检测,完成安全策略规则的规则校验。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图4为根据本申请的一些实施例提供的多集群网络安全策略管控方法中步骤S202的流程示意图;如图4所示,所述响应于所述规则中心接收到网络策略控制器发送的规则注入请求,对所述网络策略控制器发送的安全策略规则进行校验,包括:
步骤S212、响应于所述规则中心接收到所述网络策略控制器发送的规则注入请求,对所述网络策略控制器发送的所述安全策略规则和多个所述容器集群中目前配置的安全策略规则进行规则冲突检测;
在本申请实施例中,通过对联邦集群中多个容器集群目前配置的安全策略规则与网络策略控制器注入的安全策略规则进行规则冲突检测,判断网络策略控制器注入的安全策略规则和容器集群目前配置的安全策略规则是否会引起冲突,以便确定是否根据安全请求方的安全策略规则对联邦集群的多个容器集群进行网络安全配置。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S222、若所述安全策略规则与所述容器集群中目前配置的安全策略规则发生规则冲突,则向所述安全请求方发送规则冲突的错误代码,以由所述安全请求方对所述安全策略规则进行修改;若所述安全策略规则与所述容器集群中目前配置的安全策略规则未发生规则冲突,则所述安全策略规则通过所述规则校验。
在本申请实施例中,若安全策略控制器注入的安全策略规则与容器集群中目前配置的安全策略规则发生规则冲突,那么,规则中心将发生规则冲突的错误代码反馈给API服务模块,由API服务模块将发生规则冲突的错误代码返回给安全请求方。安全请求方在收到发生规则冲突的错误代码后,对编写的网络策略配置文件进行修改,然后将修改完的网络策略配置文件发送给API服务模块,由API服务模块将修改后的安全策略规则(即修改后的网络策略配置文件中的安全策略规则)转发至网络策略控制器,由网络策略控制器将修改后的安全策略规则再次注入规则中心尽心规则校验。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S203、响应于所述安全策略规则通过所述规则校验,所述规则中心将所述安全策略规则在所述规则库中进行存储固化,并向所述网络策略控制器发送第一信息,其中,所述第一信息为所述安全策略规则在所述规则库中存储固化成功的信息;
在本申请实施例中,若安全策略规则未发生规则冲突,那么规则中心将新生效的安全策略规则(网络策略控制器注入的安全策略规则)存储到规则库中,并返还安全策略规则存储成功的结果给网络策略控制器。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S204、响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络安全保护。
在本申请实施例中,在规则中心将安全策略规则存储成功的结果反馈给网络策略控制器,且网络策略控制器接收到安全策略规则存储成功的消息后,由网络策略控制器根据选择的安全策略配置模式,将安全策略配置规则在多个容器集群中进行配置。容器集群中安全策略配置完成后,就按照设定的工作模式(比如:学习模式、保护模式、告警模式或强化模式)进行网络安全保护,对联邦集群的网络执行安全控制。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在一些可选实施例中,所述响应于所述安全策略规则通过所述规则校验,所述规则中心将所述安全策略规则在所述规则库中进行存储固化,并向所述网络策略控制器发送第一信息之后,在响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全配置模式,在多个所述容器集群中进行所述安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络安全保护之前,还包括:响应于所述第一信息发送失败,所述规则中心按照预设的重试机制对所述第一信息进行重复发送,直至重复发送的次数达到所述重试机制的预设尝试阈值,所述规则中心将所述第一信息发送失败的消息代码反馈至所述安全请求方。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,在将安全策略规则存储成功的结果反馈给网络策略控制器时,若向网络策略控制器反馈信息的失败次数达到预设尝试阈值,直接将安全策略规则存储成功的结果发送网络策略控制器失败的消息代码发送给API服务模块,由API服务模块再将该消息代码反馈给安全请求方。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,将安全策略规则存储成功的结果发送网络策略控制器失败,说明安全策略控制器或规则中心出现故障,需对安全策略控制器或规则中心进行故障排查,故障排查完毕后,重新将安全策略规则存储成功的结果发送网络策略控制器。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,联邦集群中多个容器集群的安全策略配置模式包括:多活镜像集群模式和非镜像集群手动模式,在不同的安全策略配置模式下,安全策略规则的配置手段不同。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图5为根据本申请的一些实施例提供的多活镜像集群模式下步骤S204的流程示意图;如图5所示,所述安全策略配置模式为多活镜像集群模式,对应的,所述响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行所述安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护,包括:
步骤S214A、响应于所述网络策略控制器接收到所述第一信息,基于所述多活镜像集群模式,根据所述网络策略配置文件,指定多个所述容器集群中的一个所述容器集群为主集群,并在指定为主集群的所述容器集群中注入所述安全策略规则;
在本申请实施例中,在网络策略控制器接收到规则中心发送的安全策略规则存储成功的结果后,根据安全请求方提交的网络策略配置文件中的配置请求参数,在联邦集群的多个容器集群中指定一个容器集群为主容器集群,在指定的主容器集群中配置规则库中存储的安全策略规则,执行网络访问安全保护。比如,在网络安全管理员提交的名称为kubefed-networkpolicy.yaml的安全网络策略配置文件中,将有以下字段:
在本申请实施例中,在安全网络策略配置文件(kubefed-networkpolicy.yaml)中,指定集群名称(clustername)为cluster1的容器集群为主容器集群,在cluster1中配置安全策略规则(NetworkPolicy),即带有color:blue这个标签的Pod只能从自己的80端口接受带有color:red的Pod的访问。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S224A、基于指定为主集群的所述容器集群配置的所述安全策略规则,在所述联邦集群中的、所述网络策略配置文件中指定的其它所述容器集群中自动生成所述安全策略规则,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护。
在本申请实施例中,联邦集群中的多个容器集群之间为多活镜像集群模式时,网络策略控制器根据网络策略配置文件中的配置请求参数,触发镜像复制机制,将主集群中配置的安全策略规则,在多活镜像集群模式下的其它容器集群中进行镜像复制,自动生成和主容器集群内一模一样的安全策略规则,执行网络访问安全保护。比如,在网络管理员提交的安全网络策略配置文件kubefed-networkpolicy.yaml中,配置文件中设置的mirrorCluster关键字,触发了联邦集群的多活镜像集群模式,网络策略控制器将会在集群名称(clustername)为cluster2的容器集群上,自动生成和cluster1的容器集群内一模一样的安全策略规则(NetworkPolicy)。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图6为根据本申请的一些实施例提供的多活镜像集群模式下容器集群cluster2对容器集群cluster1的访问示意图;如图6所示,容器集群cluster1上带有color:blue标签的Pod能够从其80端口接收来自cluster2上带有color:red标签的Pod的访问流量,如图6中虚线所示。图7为根据本申请的一些实施例提供的多活镜像集群模式下容器集群cluster1对容器集群cluster2的访问示意图;容器集群cluster2上带有color:blue标签的Pod能够从其80端口接收来自cluster1上带有color:red标签的Pod的访问流量,如图7中虚线所示。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图8为根据本申请的一些实施例提供的非镜像集群模式下步骤S204的流程示意图;如图8所示,所述安全策略配置模式为非镜像集群模式,对应的,所述响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护,包括:
步骤S214B、响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,确定所述联邦集群的多个所述容器集群中,所述安全策略规则限定的资源对象;
在本申请实施例中,在网络策略控制器接收到规则中心发送的安全策略规则存储成功的结果后,根据安全请求方提交的网络策略配置文件中的配置请求参数,基于选择的安全策略配置模式,确定进行安全策略规则配置的容器集群中由安全策略规则限定的资源对象,比如,集群环境中某个namespace、或者某个标签(label)下的Pod、或者某个ip地址范围Pod等。需要说明的是,在对资源对象的限定时,多个不同的限定条件可以组合搭配。比如,确定cluster1作为networkpolicy生效的集群环境,cluster1中命名空间是namespace1且带有color=red标签的Pod的6379端口。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S224B、在限定的所述资源对象中,配置生效的所述安全策略规则,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护。
在本申请实施例中,在安全策略规则限定的资源对象中,需要生效的具体网络访问策略(允许访问还是拒绝访问,访问的端口是多少等)。比如:在网络安全管理员提交的名称为名称为kubefed-networkpolicy.yaml的安全网络策略配置文件中,将有以下字段:
在安全网络策略配置文件kubefed-networkpolicy.yaml中,选择集群名称为cluster1的容器集群作为安全策略规则生效的集群环境,集群名称为cluster1中命名空间为namespace1且带有color=red标签的Pod的6379端口,将智能被集群名称为cluster2中命名空间为namespace1且带有color=blue标签的Pod访问,如图9所示。
在本申请实施例中,容器集群cluster1的流出流量也将被限制,如图10所示,cluster1只能从命名空间是namespace1且带有color=red标签的Pod的80端口流出这3种流量:(1)允许流量发往集群名称为green的容器集群,并且需要发往该容器集群下:带有color=green的namespace标签下的命名空间中,名为intern的服务账号下所能crud的所有Pod;(2)允许流量发往集群名称为green的容器集群,并且需要发往该集群下:带有color=blue的namespace标签下的命名空间中,IP地址段为:172.18.0.0/24的所有IP地址;(3)允许流量从发往集群名称为green的容器集群,并且需要发往该容器集群下:带有color=red的namespace标签下的命名空间中,Pod标签为color:red的所有Pod。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在一些可选实施例中,在所述响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行所述安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护之后,还包括:响应于任意两个所述容器集群的所述安全策略规则不一致,所述网络策略控制器从所述规则中心拉取最新安全策略规则,在多个所述容器集群中进行最新安全策略规则的配置,使多个所述容器集群根据最新安全策略规则,按照设定的工作模式进行网络访问安全保护,其中,所述最新安全策略规则为当前生效的安全策略规则。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,在容器集群中配置安全策略规则时,安全策略规则在各容器集群的各自的ETCD数据库中进行存档,并以此执行安全策略。当某一容器集群发现其与另一容器集群的安全策略规则不一致时,说明这两个容器集群中的某一个容器集群的安全策略规则被篡改,此时,发现安全策略规则不一致的容器集群将安全策略规则不一致的信息上报至网络策略控制器,由网络策略控制器拉取规则中心中存储的当前生效的安全策略规则作为最新安全策略规则,并注入联邦集群的多个容器集群中,对联邦集群的多个容器集群进行安全策略规则的强制更新。比如,当容器集群1的Pod1要访问容器集群2的Pod2时,那么,容器集群1会根据自身的安全策略规则配置,看是否可以通行这部分访问流量。如果容器集群1的安全策略规则允许这部分访问流量通过,但是当这部分访问流量来到容器集群2时,被容器集群2配置的安全策略规则拦下,说明容器集群1或容器集群2的安全策略规则存在被篡改,导致安全策略规则不一致的情况。此时,由容器集群2将安全策略规则不一致的信息上报给网络策略控制器,由网络策略控制器拉取规则中心中存储的当前生效的安全策略规则进行下发,对联邦集群的多个容器集群进行安全策略规则的强制更新。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,当安全策略规则不一致由被访问的容器集群发现时,检测出规则不一致的访问请求将被搁置,直到最新安全策略规则下发至个容器集群。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,当容器集群中的安全策略规则不一致时,网络策略控制器从规则中心拉取最新安全策略规则后,不需要再对最新安全策略规则进行规则校验。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图11为根据本申请的一些实施例提供的告警模式下步骤S204的流程示意图;如图11所示,所述工作模式为告警模式,对应的,所述响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全包括,包括:
步骤S214C、响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行安全策略规则的配置,以由每个所述容器集群根据所述安全策略规则,激活网络策略探针,对流入所述容器集群的流量进行不定期嗅探;其中,所述网络策略探针包含于所述容器集群的安全策略执行器中;
在本申请实施例中,通常情况下,网络策略探针(probe)包含于所述容器集群的安全策略执行器(Cluster Policy Agent)中,具有三种状态:关闭状态、告警状态和保护状态,其中,工作模式为告警模式时,网络策略探针为告警状态,工作模式为保护模式时,网络策略探针为保护状态。网络策略探针用于嗅探满足安全策略规则流入集群的访问流量,如果安全策略规则未指定这部分访问流量的访问时间段、访问频次、总访问大小等,那么网络策略探针为关闭状态。若安全策略规则指定了这部分访问流量的访问时间段、访问频次、总访问大小等,根据安全请求方编写的网络策略配置文件中包含的关键字段,开启网络策略探针,由网络策略探针就会对这部分访问流量的访问时间段、访问频次、总访问大小等进行嗅探。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S224C、响应于所述网络策略探针探测到流量异常,所述容器集群根据所述安全策略规则中的告警策略,发出告警通知。
在本申请实施例中,当网络策略探针嗅探到流入容器集群的访问流量的访问时间段、访问频次、总访问大小等存在问题(比如,有常规以外的时间发生大流量访问时,有频繁越权的请求访问时,或者本容器集群的网络时延长时间过高,数据丢包率长时间增加等)时,即认为这部分访问流量异常。在告警模式时,网络策略探针嗅探到流量异常时,容器集群根据安全安全策略规则中的告警策略,及时发出告警通知,但超出的部分仍允许访问,即已经流入容器集群的访问流量仍允许进行访问。在保护模式时,网络策略探针嗅探到流量异常时,容器集群根据安全安全策略规则中的告警策略,及时发出告警通知,但超出的部分不允许访问,即已经流入容器集群的访问流量不允许进行访问。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在一些可选实施例中,所述安全策略规则至少包括:不同所述容器集群间的访问节点规则、不同所述容器集群间的访问协议规则、不同所述容器集群间的访问的命名空间规则、不同所述容器集群间的访问的服务账号规则、不同所述容器集群间的访问的服务规则、不同所述容器集群间的访问的IP地址段、不同所述容器集群间的访问的IP地址和端口规则。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,在针对联邦集群中,通过在各个集群(cluster)级别、各个工作节点、各个工作节点的访问协议和访问网卡、各个服务账号下所能CRUD操作范围内的各个资源、各个服务、各个CIDR网络地址段、各个细分IP地址和端口、各个自定义的IP地址集合、各个Pod进行网络访问安全策略的覆盖,使安全策略规则在联邦集群的多个容器集群中生效。籍此,在不同容器集群Pod之间,能够设置ingress和egress安全策略,能够控制不同容器集群之间namespace的互访,能够控制某个容器集群中的某个Service Account,然后控制这个SA所具有操作资源的Pod的访问策略,能够控制容器集群工作节点网络端口的进出流量规则,实现联邦集群中网络安全访问的控制。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,通过调用网络策略控制器对多个容器集群的安全策略配置模式进行选择,并向规则中心发送规则注入请求;规则中心接收到规则注入请求后,对网络策略控制器发送的安全请求发编写的安全策略文件中包含的安全策略规则进行规则校验,若安全策略规则通过规则校验,则规则中心将安全策略规则在规则库中进行存储固化,并向网络策略控制器发送安全策略规则在规则库中存储固化成功的第一信息;若网络策略控制器接收到第一信息,基于选择的安全策略配置模式,在多个容器集群中进行安全策略规则的配置,由多个容器集群根据安全策略规则执行安全策略,按照设定的工作模式进行网络访问安全保护。籍此,完成了在联邦集群场景下的网络安全策略实现机制,实现了多集群网络安全策略的同步、分发以及安全控制,极大的提高了在联邦集群场景下的网络安全问题。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,通过联邦集群的网络安全规则的自优化(规则校验等)、防规则篡改(安全策略规则不一致时,对容器集群的安全策略规则进行强制更新)以及服务质量(Quality of Service,简称QoS)告警的能力(告警模式),极大的提升了联邦集群的网络安全规则的可靠性和可用性,能够根据容器集群的实际使用场景(多活镜像集群模式或非镜像集群手动模式)对安全策略规则进行灵活调整,使联邦集群的网络安全防护具备防护未知恶意请求的能力(probe对流入集群的访问流量进行嗅探,安全策略规则不一致时,对容器集群的安全策略规则进行强制更新),能够及早发现异常或网络入侵,减少损失。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,不再采用传统防火墙规则中的基于NAT的虚拟机管理思维来解决容器集群安全,而是通过设计面向联邦集群的多个容器集群的、符合容器集群管理的语法和思维编写网络策略配置文件,有效的避免了手工一条条输入防火墙规则,输错后故障排查困难的问题。同时,在业务下线后,可以直接从规则库中拉取生效的安全策略规则,对容器集群进行安全策略规则配置进行强制更新,有效避免了现有技术中对安全策略规则进行逐一判断、删除时可能引发的其它事故,以及,有效避免了新部署的安全策略规则和原有的IP地址冲突,及时有效的回收IP地址,避免IP资源浪费,解决了安全策略规则的积累可能引发的服务性能问题。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
示例性系统
图12为根据本申请的一些实施例提供的一种多集群网络安全策略管控系统的结构示意图;如图12所示,该多集群网络安全策略管控系统,用于在包含多个容器集群的联邦集群中进行安全策略规则配置,包括:规则准备单元1201,配置为根据安全请求方编写的网络策略配置文件,调用网络策略控制器对多个所述容器集群的网络策略配置模式进行选择,并由所述网络策略控制器向规则中心发送规则注入请求;规则校验单元1202,配置为响应于所述规则中心接收到网络策略控制器发送的规则注入请求,对所述网络策略控制器发送的安全策略规则进行规则校验;其中,所述安全策略规则包含于所述网络策略配置文件中;规则固化单元1203,配置为响应于所述安全策略规则通过所述规则校验,所述规则中心将所述安全策略规则在规则库中进行存储固化,并向所述网络策略控制器发送第一信息,其中,所述第一信息为所述安全策略规则在所述规则库中存储固化成功的信息;规则配置单元1204,配置为响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行所述安全策略规则的配置,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图13为根据本申请的一些实施例提供的规则准备单元的结构示意图;如图13所示,所述规则准备单元1201包括:接口子单元1211,配置为根据所述网络策略配置文件中指定的应用程序接口,由应用程序接口服务模块将配置请求参数和所述安全策略规则转发至所述网络策略控制器;其中,所述配置请求参数包含于所述网络策略配置文件中;注入子单元1221,配置为所述网络策略控制器根据所述配置请求参数,对多个所述容器集群的安全策略配置模式进行选择,并向所述规则中心发送规则注入请求。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图14为根据本申请的一些实施例提供的规则校验单元的结构示意图;如图14所示,所述规则校验单元1202包括:检测子单元1212,配置为响应于所述规则中心接收到所述网络策略控制器发送的规则注入请求,对所述网络策略控制器发送的所述安全策略规则和多个所述容器集群中目前配置的安全策略规则进行规则冲突检测;校验通过子单元1222,配置为若所述安全策略规则与所述容器集群中目前配置的安全策略规则发生规则冲突,则向所述安全请求方发送规则冲突的错误代码,以由所述安全请求方对所述安全策略规则进行修改;若所述安全策略规则与所述容器集群中目前配置的安全策略规则未发生规则冲突,则所述安全策略规则通过所述规则校验。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图15为根据本申请的一些实施例提供的多活镜像集群模式下规则配置单元的结构示意图;如图15所示,所述规则配置单元1204包括:主集群子单元1214A,配置为响应于所述网络策略控制器接收到所述第一信息,基于所述多活镜像集群模式,根据所述网络策略配置文件,指定多个所述容器集群中的一个所述容器集群为主集群,并在指定为主集群的所述容器集群中注入所述安全策略规则;镜像子单元1224A,基于指定为主集群的所述容器集群配置的所述安全策略规则,在所述联邦集群中的、所述网络策略配置文件中指定的其它所述容器集群中自动生成所述安全策略规则,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图16为根据本申请的一些实施例提供的非镜像集群手动模式下规则配置单元的结构示意图;如图16所示,所述规则配置单元1204包括:对象确定子单元1214B,配置为响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,确定所述联邦集群的多个所述容器集群中,所述安全策略规则限定的资源对象;配置子单元1224B,配置为在限定的所述资源对象中,配置生效的所述安全策略规则,以由多个所述容器集群根据所述安全策略规则,按照设定的工作模式进行网络访问安全保护。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图17为根据本申请的一些实施例提供的告警模式下规则配置单元的结构示意图;如图17所示,所述规则配置单元1204包括:嗅探子单元1214C,配置为响应于所述网络策略控制器接收到所述第一信息,所述网络策略控制器基于选择的安全策略配置模式,在多个所述容器集群中进行安全策略规则的配置,以由每个所述容器集群根据所述安全策略规则,激活网络策略探针,对流入所述容器集群的流量进行不定期嗅探;其中,所述网络策略探针包含于所述容器集群的安全策略执行器中;告警子单元1224C,配置为响应于所述网络策略探针探测到流量异常,所述容器集群根据所述安全策略规则中的告警策略,发出告警通知。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
本申请实施例提供的多集群网络安全策略管控系统能够实现上述多集群网络安全策略管控方法实施例中的流程和效果,在此不再一一赘述。
以上所述仅为本申请的优选实施例,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。