CN113342468B - 容器数据处理方法及装置 - Google Patents
容器数据处理方法及装置 Download PDFInfo
- Publication number
- CN113342468B CN113342468B CN202110701548.9A CN202110701548A CN113342468B CN 113342468 B CN113342468 B CN 113342468B CN 202110701548 A CN202110701548 A CN 202110701548A CN 113342468 B CN113342468 B CN 113342468B
- Authority
- CN
- China
- Prior art keywords
- access
- traffic
- service module
- service
- address
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种容器数据处理方法及装置。其中,该方法包括:确定采用容器进行工作的服务模块的管理规则,其中,管理规则包括服务模块,服务模块的应用,以及服务模块的访问地址之间的访问许可;获取服务模块的多个访问地址,其中,多个访问地址分别用于多个不同类型的流量访问服务模块,流量的类型与访问地址一一对应;根据流量的类型、类型对应的访问地址,以及管理规则,对流量进行处理。本发明解决了相关技术中由于容器平台的微隔离防火墙,没有从服务模块的角度进行管控,不方便管理操作的技术问题。
Description
技术领域
本发明涉及容器平台领域,具体而言,涉及一种容器数据处理方法及装置。
背景技术
CNCF(Cloud Native Computing Foundation)致力于基于容器平台Kubernetes(简称K8S)的微服务模式应用开发的推广与普及。基于K8S平台开发的应用,被称为云原生应用。
Kubernetes的网络模型为微服务而设计,通过Service来解决微服务发布、动态扩展、负载均衡等问题。
图1是现有技术的K8S***架构的示意图,如图1所示,K8S设计中,K8S有几个关键的概念:Pod,App和Service。Extermal IP外部IP。
Pod为一组关联容器,部署在同一个主机上,共享网络协议栈。Pod的IP动态分配,不同Node上的Pod可以互相通信。Pod可以访问外部IP,外部IP不可以直接访问Pod IP。
Service一般需要多个Pod承载,来实现负载均衡和弹性伸缩。这一组Pod一般通过一个App部署出来。
Service有多种方法被访问:
Service可以分配一个Cluster IP(群集IP),对集群内提供服务。
Service或者分配一个Node Port(节点),通过节点IP对外部提供服务。
通过Service发布Pods的端口后,Service提供负载均衡功能。
承载Service的一组Pod,可以弹性伸缩,动态增加,减少。
Service的所有信息,如Cluster IP,可以通过DNS发布出来。
集群内部互访,及内部与外部互访,存在四条路径,参见图1。
如下情况存在NAT(NAT Network Address Translation网络地址转换)
通过Node Port访问,即路径1,存在SNAT+DNAT。
通过Cluster IP访问,即路径2,存在DNAT。
通过Pod IP访问,即路径3,不存在NAT。
Pod访问外部资源,即路径4,存在SNAT。
近年来挖矿、勒索病毒的猖獗,及微隔离、零信任概念提出,客户逐渐意识到K8S网络内部的东西向流量的访问控制的必要性和重要性,因而很多厂家推出了微隔离防火墙来解决这个问题。
Service给容器网络微隔离防火墙设计带来挑战:
1、K8S网络中,所有POD可以直接通讯,且按照CNI(Container NetworkInterface)架构设计,Pod的IP随机分配,所有Pod之间可互通,传统网关防火墙无法切入。
2、Service引入了源、目的NAT的问题,给防火墙的策略配置与执行带来问题。
3、容器环境动态变化频繁,IP地址不固定,传统按照IP地址管理的防火墙策略也很难应用。
相关技术中存在Kubenetes防火墙,K8S定义了微隔离防火墙的Firewall Policy,防火墙策略。K8S的Firewall Policy定义了对pod ingress/egress访问控制规则。通过label selector,解决了pod ip动态分配的问题。策略之间不可互相冲突。其缺点在于:不符合传统网络防火墙的策略设计思路–First Match。通过Label方式定义策略,虽然灵活性较高,但不方便管理员操作。未考虑从Service的角度进行管控。K8S通过开启externalTrafficPolicy=local,可以禁用Node Port访问时的SNAT,但这样牺牲了Service提供的负载均衡能力。
相关技术中还可以基于PaloAlto Networks的容器安全产品实现了一个叫CNNF的微隔离防火墙。PaloAlto的CNNF设计的策略定义和实现方式,与K8S比较类似的方式,通过label selector来解决App的访问策略的配置。其实际上与K8S原生的方式是一致的,比较便于已有用户的策略迁移及CI/CD流程的整合。其存在的缺点与K8S原生防火墙设计相似,也存在类似问题。
相关技术中,SDN软件定义网络方案中,厂商都会实现在SDN数据平面中实现微隔离防火墙。比如VMWARE的NSX-T中的DFW。但是,SDN解决方案要求全面替换K8S的网络栈。对已部署***的冲击很大,需要停止全部业务进行替换。另外存在供应商绑定问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种容器数据处理方法及装置,以至少解决相关技术中由于容器平台的微隔离防火墙,没有从服务模块的角度进行管控,不方便管理操作的技术问题。
根据本发明实施例的一个方面,提供一种容器数据处理方法,包括:确定采用容器进行工作的服务模块的管理规则,其中,所述管理规则包括所述服务模块,所述服务模块的应用,以及所述服务模块的访问地址之间的访问许可;获取所述服务模块的多个访问地址,其中,所述多个访问地址分别用于多个不同类型的流量访问所述服务模块,所述流量的类型与所述访问地址一一对应;根据流量的类型、所述类型对应的访问地址,以及所述管理规则,对所述流量进行处理。
可选的,确定采用容器进行工作的服务模块的管理规则包括:接收访问源和访问目的的标识信息,其中,所述访问源为所述服务模块,或所述应用,或所述访问地址,所述访问目的为所述服务模块,或所述应用,或所述访问地址;根据不同访问源与访问目的之间的访问是否被许可生成所述管理规则。
可选的,所述应用的标识信息包括所述应用在所述容器中的命名空间,所述应用的类型和所述应用的名称;所述服务模块的标识信息包括所述服务模块在所述容器中的命名空间和所述服务模块的名称;不同访问源与访问目的之间的所述访问包括下列至少之一:所述应用到所述服务模块的访问;所述服务模块到其他服务模块的访问;所述应用到所述访问地址的访问;所述服务模块到所述访问地址的访问;所述访问地址到所述服务模块的访问。
可选的,获取所述服务模块的多个访问地址包括:通过多个过滤器,分别获取所述容器的全局配置参数,根据全局配置参数确定多个分别与过滤器对应的所述服务模块的访问地址,其中,所述全局配置参数包括所述服务模块的多个访问地址。
可选的,根据流量的类型、所述类型对应的访问地址,以及所述管理规则,对所述流量进行处理包括:确定所述流量进行访问的访问源和访问目的,其中,所述流量为未进行网络地址转换之前的流量;通过多个所述过滤器,根据对应的服务模块的访问地址,对所述流量进行筛选,以对所述流量进行分类,其中,所述过滤器对应的服务模块的访问地址为所述类型的流量的访问地址;对所述类型的流量的匹配管理规则;在所述类型的流量的源地址和访问地址,与所述管理规则的源地址和访问地址均一致的情况下,根据所述管理规则对所述流量进行对应的操作;在所述类型的流量的源地址和访问地址,与所述管理规则的源地址和访问地址存在不一致的情况下,对所述流量重新匹配管理规则,直至所述流量匹配到对应的管理规则。
可选的,通过所述过滤器,根据所述管理规则确定所述流量的访问源和访问目的的访问是否被允许之前,所述方法还包括:根据所述流量进行访问采用的网络,确定所述网络对应的过滤器。
可选的,在根据所述流量进行访问采用的网络,确定所述网络对应的过滤器之前,还包括:接收所述流量,其中,所述流量包括进行访问的流量参数;根据所述流量参数对所述流量进行筛选,对与所述容器无关的流量进行筛除。
根据本发明实施例的另一方面,还提供了一种容器数据处理装置,包括:确定模块,用于确定采用容器进行工作的服务模块的管理规则,其中,所述管理规则包括所述服务模块,所述服务模块的应用,以及所述服务模块的访问地址之间的访问许可;获取模块,用于获取所述服务模块的多个访问地址,其中,所述多个访问地址分别用于多个不同类型的流量访问所述服务模块,所述流量的类型与所述访问地址一一对应;处理模块,用于根据流量的类型、所述类型对应的访问地址,以及所述管理规则,对所述流量进行处理。
根据本发明实施例的另一方面,还提供了一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的容器数据处理方法。
根据本发明实施例的另一方面,还提供了一种计算机存储介质,其特征在于,所述计算机存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机存储介质所在设备执行上述中任意一项所述的容器数据处理方法。
在本发明实施例中,采用确定采用容器进行工作的服务模块的管理规则,其中,管理规则包括服务模块,服务模块的应用,以及服务模块的访问地址之间的访问许可;获取服务模块的多个访问地址,其中,多个访问地址分别用于多个不同类型的流量访问服务模块,流量的类型与访问地址一一对应;根据流量的类型、类型对应的访问地址,以及管理规则,对流量进行处理的方式,通过建立服务模块的管理规则,并结合访问服务模块的不同类型的流量的访问地址,确定该流量匹配的管理规则,对流量进行管理规则对应的动作,达到了从服务模块的角度,对服务模块的访问进行控制,实现了基于服务模块的防火墙的目的,从而实现了方便实现,易于管理的技术效果,进而解决了相关技术中由于容器平台的微隔离防火墙,没有从服务模块的角度进行管控,不方便管理操作的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有技术的K8S***架构的示意图;
图2是根据本发明实施例的一种容器数据处理方法的流程图;
图3是根据本发明实施方式的策略管理和资产学习的示意图;
图4是根据本发明实施方式的策略执行的示意图;
图5是根据本发明实施例的一种容器数据处理装置的示意图;
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种容器数据处理的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的一种容器数据处理方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,确定采用容器进行工作的服务模块的管理规则,其中,管理规则包括服务模块,服务模块的应用,以及服务模块的访问地址之间的访问许可;
步骤S204,获取服务模块的多个访问地址,其中,多个访问地址分别用于多个不同类型的流量访问服务模块,流量的类型与访问地址一一对应;
步骤S206,根据流量的类型、类型对应的访问地址,以及管理规则,对流量进行处理。
通过上述步骤,可以采用确定采用容器进行工作的服务模块的管理规则,其中,管理规则包括服务模块,服务模块的应用,以及服务模块的访问地址之间的访问许可;获取服务模块的多个访问地址,其中,多个访问地址分别用于多个不同类型的流量访问服务模块,流量的类型与访问地址一一对应;根据流量的类型、类型对应的访问地址,以及管理规则,对流量进行处理的方式,通过建立服务模块的管理规则,并结合访问服务模块的不同类型的流量的访问地址,确定该流量匹配的管理规则,对流量进行管理规则对应的动作,达到了从服务模块的角度,对服务模块的访问进行控制,实现了基于服务模块的防火墙的目的,从而实现了方便实现,易于管理的技术效果,进而解决了相关技术中由于容器平台的微隔离防火墙,没有从服务模块的角度进行管控,不方便管理操作的技术问题。
上述容器可以为Kubernetes(简称K8S)容器平台,通过Service来解决微服务发布、动态扩展、负载均衡等问题。上述服务模块可以为建立在容器中用于提供服务的功能模块。上述管理规则可以包括与该服务模块有关的流量的许可,包括以服务模块为访问目标的流量,以服务模块为访问源的流量,或者访问过程中经过服务模块的流量。
上述管理规则可以包括,服务模块,服务模块的应用,以及服务模块的访问地址之间的访问许可,也即是上述服务模块,应用和访问地址中任意两种之间的访问许可。具体的,管理规则包括了源地址,访问地址(目的地址),以及相应的动作,上述源地址可以为服务模块的地址,服务模块的应用的地址,或者服务模块的访问地址,上述访问地址也可以为服务模块的地址,服务模块的应用的地址,或者服务模块的访问地址。
例如,上述服务模块为Service,上述应用模块为App,上述访问地址可以为IP/Network:Port。上述管理规则可以包括访问源为应用,访问目的为服务模块的流量;还可以包括访问源为服务模块,访问目的为其他服务模块的流量;还可以包括访问源为应用,访问目的为访问地址的流量;还可以为访问源为服务模块,访问目的为访问地址的流量;还可以是访问源为访问地址,访问目的为服务模块的流量。
获取服务模块的多个访问地址,多个访问地址分别用于多个不同类型的流量访问服务模块,流量的类型与访问地址一一对应。上述访问地址,也即是流量与流量关联的地址,例如,流量的访问目的为服务模块,在改流量访问服务模块时,有多种方式,例如,通过外部IP访问主机,然后通过主机访问服务模块,此时,服务模块有一个访问地址,专门针对该方式访问服务模块。还可以通过pod端口访问服务器,此时,服务模块有另一个访问地址,专门针对该方式访问服务模块。因此,确定服务器多种不同类型的流量访问服务模块的访问地址。需要说明的是,上述访问服务模块,不仅包括将服务模块作为访问目的的情况,还包括服务模块作为访问源的情况。
对于服务模块作为流量中转,若该流量需要访问该服务模块的数据,则可以分为两个流量,包括将服务模块作为访问目的的流量和将服务模块作为访问源的流量的结合。
在服务器的管理规则确定后,接收该服务器有关的流量,包括上述将服务模块作为访问目的的流量,以及将服务模块作为访问源的流量。根据改流量的类型,包括通过具体的方式访问服务模块的流量类型,就可以确定改流量类型对应的访问地址。根据流量的类型、类型对应的访问地址,以及管理规则,确定对流量进行拦截或许可。
通过建立服务模块的管理规则,并结合访问服务模块的不同类型的流量的访问地址,确定该流量是否许可或拦截,达到了从服务模块的角度,对服务模块的访问进行控制,实现了基于服务模块的防火墙的目的,从而实现了方便实现,易于管理的技术效果,进而解决了相关技术中由于容器平台的微隔离防火墙,没有从服务模块的角度进行管控,不方便管理操作的技术问题。
可选的,确定采用容器进行工作的服务模块的管理规则包括:接收访问源和访问目的的标识信息,其中,访问源为服务模块,或应用,或访问地址,访问目的为服务模块,或应用,或访问地址;根据不同访问源与访问目的之间的访问是否被许可生成管理规则。
上述访问源和访问目的可以是多种不同类型的流量的访问源和访问目的,访问源为服务模块,或应用,或访问地址,访问目的为服务模块,或应用,或访问地址。
上述访问源的标识信息可以为访问源的名称,在实施时,为避免容易重复可以扩展为访问源的访问源的名称和命名空间或访问源的类型。上述访问目的的标识信息可以为访问目的的名称,在实施时,为避免容易重复可以扩展为访问目的的访问目的的名称和命名空间或访问目的的类型。
根据不同访问源与访问目的之间的访问是否被许可可以由用户决定,其生成管理规则可以由用户设定。从而提高使用灵活性,提高用户体验。
可选的,应用的标识信息包括应用在容器中的命名空间,应用的类型和应用的名称;服务模块的标识信息包括服务模块在容器中的命名空间和服务模块的名称;不同访问源与访问目的之间的访问包括下列至少之一:应用到服务模块的访问;服务模块到其他服务模块的访问;应用到访问地址的访问;服务模块到访问地址的访问;访问地址到服务模块的访问。
直接利用K8S的引用App和服务模块Service的名称,进行策略配置,大幅简化用户的配置和信息传递。具体的上述应用到服务模块的访问,服务模块到其他服务模块的访问;应用到访问地址的访问;服务模块到访问地址的访问;访问地址到服务模块的访问均可以被允许,也即是只设置被允许或者只设置被拦截的流量,从而简化规则配置负担,降低资源占用。
直接使用App与Service的name会有重名的问题。因此,策略中使用的App和Service都要加上必要的扩展:App扩展为Namepsapce.AppType.AppName。Service扩展为Namepace.Service。
可选的,获取服务模块的多个访问地址包括:通过多个过滤器,分别获取容器的全局配置参数,根据全局配置参数确定多个分别与过滤器对应的服务模块的访问地址,其中,全局配置参数包括服务模块的多个访问地址。
通过多个过滤器分别获取对应的该服务模块的多个访问地址。关于过滤器部分,获取k8s的一些全局配置,比如Pod CIDR(10.244.0.0/16是个网段),根据不同的流量访问路径的访问地址过滤对应流量,以对接收的流量进行分类。
例如,在K8S***中,在主机网络的Ingress Filter(入口过滤器)中,仅处理图1中的路径1,也即是通过Node Port访问路径的访问,其余流量直接Bypass。在Pod网络的Ingress/Egress Filter(过滤器)处理中,处理图1中的路径2,3,4的访问。路径2即通过Cluster IP访问路径,路径3即通过Pod IP访问路径,路径4即Pod访问外部资源的路径。
可选的,根据流量的类型、类型对应的访问地址,以及管理规则,对流量进行处理包括:确定流量进行访问的访问源和访问目的,其中,流量为未进行网络地址转换之前的流量;通过多个过滤器,根据对应的服务模块的访问地址,对流量进行筛选,以对流量进行分类,其中,过滤器对应的服务模块的访问地址为类型的流量的访问地址;对类型的流量的匹配管理规则;在类型的流量的源地址和访问地址,与管理规则的源地址和访问地址均一致的情况下,根据管理规则对流量进行对应的操作;在类型的流量的源地址和访问地址,与管理规则的源地址和访问地址存在不一致的情况下,对流量重新匹配管理规则,直至流量匹配到对应的管理规则。
从而根据流量的类型、类型对应的访问地址,以及管理规则,对流量进行处理,具体,在管理规则确定流量的访问源和访问目的的访问被允许,且在流量的类型对应的访问地址,与服务模块的访问地址一致的情况下,根据管理规则对流量进行对应的操作;在管理规则确定流量的访问源和访问目的的访问不被允许的情况下,或者在流量的类型对应的访问地址,与服务模块的访问地址不一致的情况下,对流量重新匹配管理规则,直至流量匹配到对应的管理规则,并根据匹配到的管理规则对该流量进行处理。上述对流量进行管理规则对应的有效的处理,例如可以是对流量进行许可和拦截。从而达到了从服务模块的角度,对服务模块的访问进行控制,实现了基于服务模块的防火墙的目的,从而实现了方便实现,易于管理的技术效果,进而解决了相关技术中由于容器平台的微隔离防火墙,没有从服务模块的角度进行管控,不方便管理操作的技术问题。
可选的,通过过滤器,根据管理规则确定流量的访问源和访问目的的访问是否被允许之前,方法还包括:根据流量进行访问采用的网络,确定网络对应的过滤器。
流量采用不同的方式访问服务模块,其采用的网络也不同,其设置的额过滤器也不同。例如,在主机网络的Ingress Filter(入口过滤器)中,仅处理路径1的访问,其余流量直接Bypass。在Pod网络的Ingress/Egress Filter处理中,处理路径2,3,4的访问。上述路径1-4在图1中可以确定。
可选的,在根据流量进行访问采用的网络,确定网络对应的过滤器之前,还包括:接收流量,其中,流量包括进行访问的流量参数;根据流量参数对流量进行筛选,对与容器无关的流量进行筛除。
根据流量参数对流量进行筛选,对与容器无关的流量进行筛除,可以通过对不同的流量按照Pod CIDR,Node IPs的分类,在流量在NAT发生之前进行Filter处理,可以解决Service的NAT的问题。从而保证了流量处理的准确性。
需要说明的是,本实施例还提供了一种可选的实施方式,下面对该实施方式进行详细说明。
本实施方式提出的适用于K8S的为隔离防火墙,可以解决之前所述方案的缺陷,实现:中立的解决方案,与CNI及SDN(Software Defined Network,软件定义网络)解绑。对服务模块Service访问的全面控制;简化的策略配置,易于管理。
本实施方式整体方案分为三个部分:
图3是根据本发明实施方式的策略管理和资产学习的示意图,如图3所示,包括策略管理和资产学习。
策略管理具体如下:
标签Label选择资产的方式,不便于识别、记忆,而且给不同部门之间的信息交换带来一些问题。
不同于K8S的安全策略设计,利用K8S的应用App和服务模块Service概念,通过与K8S的整合,直接利用K8S的应用App和服务模块Service的名称,进行策略配置,大幅简化用户的配置和信息传递:
典型配置如表1所示,表1为策略配置表:
表1,策略配置表
源Src | 目的Dst | Action动作,访问 |
App | Service | Permit许可,允许 |
Service | Service | Permit |
App | IP/Network:Port. | Permit |
Service | IP/Network:Port. | Permit |
IP/Network | Service. | Permit |
直接使用App与Service的name名称会有重名的问题。因此,策略中使用的App和Service都要加上必要的扩展:
App扩展为Namepsapce命名空间.AppType应用类型.AppName应用名称;
Service扩展为Namepace命名空间.Service服务模块名称。
资产学习具体如下:
App/Service的弹性伸缩及变化问题,通过实时跟踪App/Service的变化并下发到各个Filter过滤器点来解决,。
Service的学习中,会将Service对应的Endpoints,也即是具体提供服务的设备,在容器后端地址,Cluster IP集群IP、Node Port节点信息全部学习到,各个Filter过滤器根据流量分类的结果,选择某个IP地址进行策略匹配,解决Service的全面防护问题。
图4是根据本发明实施方式的策略执行的示意图,如图4所示,还包括策略执行。
策略执行具体如下:
采用主机引流技术,在Linux主机协议栈和Pod协议栈进行流量牵引和过滤,方法包括但不限于:ebpf、iptables、netfilter等。
在主机网络的Ingress Filter(入口过滤器)中,仅处理路径1的访问,其余流量直接拦截Bypass。
在Pod网络的Ingress/Egress Filter(输入输出过滤器)处理中,处理路径2,3,4的访问。
通过对不同的流量按照Pod CIDR(无类型域间路由,Classless Inter-DomainRouting),Node IPs的分类,在流量在NAT发生之前进行Filter处理,可以解决Service的NAT的问题。
主机网络协议栈和Pod的网络协议栈容器虚拟网络的具体实现方法无关–即与CNI或者SDN无关,因此,此方法可以做到平台或CNI中立。
本实施方式提出了一种K8S容器平台的微隔离解决方案。适用于K8S各个版本,且不受限于具体的CNI的实现。通过全新的策略定义和实现方法,简化了用户的管理,实现了Pod/Service的全面防护。解决目前常见K8S环境微隔离防火墙的缺陷,可以在不影响用户现有部署的情况下实施,简化了实施后用户日常策略的运维管理,用户的前期和后期人力投入较现有方案大幅减小,提高了运维效率。
本实施方式通过将App和Service直接引入K8S防火墙策略,简化K8S环境防火墙策略的设计和管理。通过在主机网络协议栈和容器网络协议栈设置多个控制点,解决K8SService引入的NAT问题,实现与平台和CNI无关的Kubernetes的Pod/Service的全面防护。
图5是根据本发明实施例的一种容器数据处理装置的示意图,如图5所示,根据本发明实施例的另一方面,还提供了一种容器数据处理装置,包括:确定模块52,获取模块54和处理模块56,下面对该装置进行详细说明。
确定模块52,用于确定采用容器进行工作的服务模块的管理规则,其中,管理规则包括服务模块,服务模块的应用,以及服务模块的访问地址之间的访问许可;获取模块54,与上述确定模块52相连,用于获取服务模块的多个访问地址,其中,多个访问地址分别用于多个不同类型的流量访问服务模块,流量的类型与访问地址一一对应;处理模块56,与上述获取模块54相连,用于根据流量的类型、类型对应的访问地址,以及管理规则,对流量进行处理。
通过上述装置,采用确定采用容器进行工作的服务模块的管理规则,其中,管理规则包括服务模块,服务模块的应用,以及服务模块的访问地址之间的访问许可;获取服务模块的多个访问地址,其中,多个访问地址分别用于多个不同类型的流量访问服务模块,流量的类型与访问地址一一对应;根据流量的类型、类型对应的访问地址,以及管理规则,对流量进行处理的方式,通过建立服务模块的管理规则,并结合访问服务模块的不同类型的流量的访问地址,确定该流量匹配的管理规则,对流量进行管理规则对应的动作,达到了从服务模块的角度,对服务模块的访问进行控制,实现了基于服务模块的防火墙的目的,从而实现了方便实现,易于管理的技术效果,进而解决了相关技术中由于容器平台的微隔离防火墙,没有从服务模块的角度进行管控,不方便管理操作的技术问题。
根据本发明实施例的另一方面,还提供了一种处理器,其特征在于,处理器用于运行程序,其中,程序运行时执行上述中任意一项的容器数据处理方法。
根据本发明实施例的另一方面,还提供了一种计算机存储介质,其特征在于,计算机存储介质包括存储的程序,其中,在程序运行时控制计算机存储介质所在设备执行上述中任意一项的容器数据处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种容器数据处理方法,其特征在于,包括:
确定采用容器进行工作的服务模块的管理规则,其中,所述管理规则包括所述服务模块,所述服务模块的应用,以及所述服务模块的访问地址之间的访问许可;
获取所述服务模块的多个访问地址,其中,所述多个访问地址分别用于多个不同类型的流量访问所述服务模块,所述流量的类型与所述访问地址一一对应;
根据流量的类型、所述类型对应的访问地址,以及所述管理规则,对所述流量进行处理;
其中,所述管理规则包括与所述服务模块有关的流量的许可,所述流量包括以服务模块为访问目标的流量,以服务模块为访问源的流量,或者访问过程中经过服务模块的流量;
确定采用容器进行工作的服务模块的管理规则包括:
接收访问源和访问目的的标识信息,其中,所述访问源为所述服务模块,或所述应用,或所述访问地址,所述访问目的为所述服务模块,或所述应用,或所述访问地址;
根据不同访问源与访问目的之间的访问是否被许可生成所述管理规则。
2.根据权利要求1所述的方法,其特征在于,所述应用的标识信息包括所述应用在所述容器中的命名空间,所述应用的类型和所述应用的名称;
所述服务模块的标识信息包括所述服务模块在所述容器中的命名空间和所述服务模块的名称;
不同访问源与访问目的之间的所述访问包括下列至少之一:
所述应用到所述服务模块的访问;
所述服务模块到其他服务模块的访问;
所述应用到所述访问地址的访问;
所述服务模块到所述访问地址的访问;
所述访问地址到所述服务模块的访问。
3.根据权利要求1所述的方法,其特征在于,获取所述服务模块的多个访问地址包括:
通过多个过滤器,分别获取所述容器的全局配置参数,根据全局配置参数确定多个分别与过滤器对应的所述服务模块的访问地址,其中,所述全局配置参数包括所述服务模块的多个访问地址。
4.根据权利要求3所述的方法,其特征在于,根据流量的类型、所述类型对应的访问地址,以及所述管理规则,对所述流量进行处理包括:
确定所述流量进行访问的访问源和访问目的,其中,所述流量为未进行网络地址转换之前的流量;
通过多个所述过滤器,根据对应的服务模块的访问地址,对所述流量进行筛选,以对所述流量进行分类,其中,所述过滤器对应的服务模块的访问地址为所述类型的流量的访问地址;
对所述类型的流量的匹配管理规则;
在所述类型的流量的源地址和访问地址,与所述管理规则的源地址和访问地址均一致的情况下,根据所述管理规则对所述流量进行对应的操作;
在所述类型的流量的源地址和访问地址,与所述管理规则的源地址和访问地址存在不一致的情况下,对所述流量重新匹配管理规则,直至所述流量匹配到对应的管理规则。
5.根据权利要求4所述的方法,其特征在于,通过所述过滤器,根据所述管理规则确定所述流量的访问源和访问目的的访问是否被允许之前,所述方法还包括:
根据所述流量进行访问采用的网络,确定所述网络对应的过滤器。
6.根据权利要求5所述的方法,其特征在于,在根据所述流量进行访问采用的网络,确定所述网络对应的过滤器之前,还包括:
接收所述流量,其中,所述流量包括进行访问的流量参数;
根据所述流量参数对所述流量进行筛选,对与所述容器无关的流量进行筛除。
7.一种容器数据处理装置,其特征在于,包括:
确定模块,用于确定采用容器进行工作的服务模块的管理规则,其中,所述管理规则包括所述服务模块,所述服务模块的应用,以及所述服务模块的访问地址之间的访问许可;
获取模块,用于获取所述服务模块的多个访问地址,其中,所述多个访问地址分别用于多个不同类型的流量访问所述服务模块,所述流量的类型与所述访问地址一一对应;
处理模块,用于根据流量的类型、所述类型对应的访问地址,以及所述管理规则,对所述流量进行处理;
其中,所述管理规则包括与所述服务模块有关的流量的许可,所述流量包括以服务模块为访问目标的流量,以服务模块为访问源的流量,或者访问过程中经过服务模块的流量;
所述装置还用于接收访问源和访问目的的标识信息,其中,所述访问源为所述服务模块,或所述应用,或所述访问地址,所述访问目的为所述服务模块,或所述应用,或所述访问地址;
根据不同访问源与访问目的之间的访问是否被许可生成所述管理规则。
8.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的容器数据处理方法。
9.一种计算机存储介质,其特征在于,所述计算机存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机存储介质所在设备执行权利要求1至6中任意一项所述的容器数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110701548.9A CN113342468B (zh) | 2021-06-23 | 2021-06-23 | 容器数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110701548.9A CN113342468B (zh) | 2021-06-23 | 2021-06-23 | 容器数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342468A CN113342468A (zh) | 2021-09-03 |
CN113342468B true CN113342468B (zh) | 2023-08-08 |
Family
ID=77478126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110701548.9A Active CN113342468B (zh) | 2021-06-23 | 2021-06-23 | 容器数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342468B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301841B (zh) * | 2021-12-20 | 2024-02-06 | 山石网科通信技术股份有限公司 | 基于k8s的微隔离策略的处理方法和装置 |
CN115190076A (zh) * | 2022-07-14 | 2022-10-14 | 中国工商银行股份有限公司 | 流量分流方法、装置、计算机可读存储介质及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340363A (zh) * | 2007-12-24 | 2009-01-07 | 中国科学技术大学 | 一种实现多元数据包分类的方法及设备 |
US20130316675A1 (en) * | 2012-05-24 | 2013-11-28 | Seven Networks, Inc. | Facilitation of mobile operator billing based on wireless network traffic management and tracking of destination address in conjunction with billing policies |
CN107864062A (zh) * | 2016-12-14 | 2018-03-30 | 中国电子科技网络信息安全有限公司 | 一种容器防火墙***部署方法 |
CN111049796A (zh) * | 2019-10-25 | 2020-04-21 | 中国通信服务股份有限公司 | 一种基于Open vSwitch实现Overlay多租户CNI容器网络的方法 |
CN111510515A (zh) * | 2020-04-07 | 2020-08-07 | 中国建设银行股份有限公司 | 一种区分混合应用环境的容器的方法及装置 |
CN111988320A (zh) * | 2020-08-21 | 2020-11-24 | 深信服科技股份有限公司 | 一种应用识别方法、装置、***、设备和介质 |
CN112929216A (zh) * | 2021-02-05 | 2021-06-08 | 深信服科技股份有限公司 | 一种资产管理方法、装置、设备及可读存储介质 |
-
2021
- 2021-06-23 CN CN202110701548.9A patent/CN113342468B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340363A (zh) * | 2007-12-24 | 2009-01-07 | 中国科学技术大学 | 一种实现多元数据包分类的方法及设备 |
US20130316675A1 (en) * | 2012-05-24 | 2013-11-28 | Seven Networks, Inc. | Facilitation of mobile operator billing based on wireless network traffic management and tracking of destination address in conjunction with billing policies |
CN107864062A (zh) * | 2016-12-14 | 2018-03-30 | 中国电子科技网络信息安全有限公司 | 一种容器防火墙***部署方法 |
CN111049796A (zh) * | 2019-10-25 | 2020-04-21 | 中国通信服务股份有限公司 | 一种基于Open vSwitch实现Overlay多租户CNI容器网络的方法 |
CN111510515A (zh) * | 2020-04-07 | 2020-08-07 | 中国建设银行股份有限公司 | 一种区分混合应用环境的容器的方法及装置 |
CN111988320A (zh) * | 2020-08-21 | 2020-11-24 | 深信服科技股份有限公司 | 一种应用识别方法、装置、***、设备和介质 |
CN112929216A (zh) * | 2021-02-05 | 2021-06-08 | 深信服科技股份有限公司 | 一种资产管理方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113342468A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11792041B2 (en) | Private alias endpoints for isolated virtual networks | |
RU2646343C1 (ru) | Объекты виртуального сетевого интерфейса | |
KR101868633B1 (ko) | 마이그레이션들 동안 네트워크 재구성을 자동화하는 방법 | |
JP6479814B2 (ja) | 仮想ネットワークにおけるアイデンティティ及びアクセス管理ベースのアクセス制御 | |
CN113342468B (zh) | 容器数据处理方法及装置 | |
US20060075484A1 (en) | Apparatus, method, and computer program product for building virtual networks | |
JP2018532300A (ja) | サービスルール処理のための、サービスノードへのリモートデバイス管理属性の分配 | |
US20050053063A1 (en) | Automatic provisioning of network address translation data | |
JP2009500968A (ja) | リモートネットワークアクセスのための統合アーキテクチャ | |
CN112965824A (zh) | 报文的转发方法及装置、存储介质、电子设备 | |
CN105472048B (zh) | 一种地址分配方法、信息聚合方法及相关设备 | |
US20050188002A1 (en) | Apparatus, method, and computer program product for building virtual networks | |
CN108667776B (zh) | 一种网络业务诊断方法 | |
CN102148715A (zh) | 虚拟网络配置迁移的方法及设备 | |
US8914339B2 (en) | Device for managing data filters | |
CN117255089A (zh) | 容器网络***及其使用方法 | |
CN109450768B (zh) | 容器互联的方法及用于容器互联的*** | |
CN105357332B (zh) | 一种网络地址转换方法及装置 | |
EP4258603A1 (en) | Service processing method and apparatus, electronic device, and storage medium | |
WO2022177830A1 (en) | Cloud-based egress filtering system | |
CN114070637A (zh) | 基于属性标签的访问控制方法、***、电子设备及存储介质 | |
CN114244555A (zh) | 一种安全策略的调整方法 | |
CN110636148A (zh) | 网络地址升级处理方法 | |
CN114296870A (zh) | 流量策略处理方法及装置 | |
WO2021219217A1 (en) | Updating routing information |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |