背景
随着容器、微服务、持续交付等云原生技术普及,大量应用基于K8s容器编排构建。相比传统网络模式,在云原生场景下,存在大量微服务模块间网络调用,集群内东西向通信流量激增,网络边界变得更加模糊。
容器环境中,容器IP和端口变换频繁,应用混合部署带来的通信关系复杂,传统基于静态IP和端口的边界安全规则已无法适用容器环境下细粒度的访问控制要求。默认情况下,K8s集群中不对Pod进行任何请求限制,任意Pod之间可以自由通信。正因此,在面对网络攻击时,没有安全规则的容器网络将给攻击者更多的自由和渗透空间。
如何实施容器间网络访问控制,打造安全的容器网络通信边界和通信架构,成为云原生时代关键的网络安全问题。为助力企业破局,腾讯云容器安全服务容器网络隔离功能于9月重磅发布,提供基于 K8s 原生Networkpolicy 的集群容器间网络策略下发和管理能力,帮助企业快速构建安全可信的容器网络。
K8s Networkpolicy介绍
针对上述问题,Kubernetes社区提供了官方解决方案,自v1.3版本起,新增了Networkpolicy资源,用于定义Pod之间的网络访问控制规则,并在v1.7版本中成为GA功能,API版本为networking.k8s.io/v1。
Networkpolicy实现了细粒度的容器访问控制策略,使用“Label标签”选定Pod范围,支持基于Pod应用粒度对指定Pod进行出入站访问控制,可配置IP段、命名空间以及应用(Pod)端口级规则。
默认情况下,一个应用(Pod)的网络会接受任何来源的通信请求,根据最佳安全实践,应用(Pod)应该只放行其业务范围内的正常通信请求。这对攻击者在初始访问阶段进行的入侵探测和漏洞利用,以及网络失陷后进行的横向扫描和渗透具有很大的防御效果。
以下是一个Networkpolicy策略示例,要求db应用只能够和web服务之间通信,拒绝其它通信连接请求:
通过Networpolicy实施容器网络访问控制具有以下优势:
- 是Kubernetes社区官方方案,功能稳定,跟随社区发展。
- 可实施应用级别(Pod)粒度的网络控制,使用K8s标签(Label)选择器划分网络边界,通过标签能够方便的将业务关系映射到系统架构上,便于实施基于业务的管理。
- 贴合K8s使用习惯,Networkpolicy作为K8s资源,通过yaml定义网络访问规则。
- 功能全面,兼容性好,已经有众多K8s网络组件支持Networkpolicy的实现,包括Kube-router、Calico、Cilium、Romana等主流组件。
不过,K8s Networkpolicy通过编写yaml定义访问控制规则,存在一定的学习和使用门槛,同时在策略的管理上也存在不便。
腾讯云容器网络隔离功能介绍
腾讯云容器安全服务于2021年7月正式上线,提供镜像扫描、漏洞防御、集群安全管理、基线管理、运行时入侵防御的全流程容器安全解决方案。
容器网络隔离功能于9月发布,该特性提供基于 K8s 原生 Networkpolicy 的集群容器间网络策略下发和管理能力,通过对集群内的防护对象进行定义,设置防护对象的出站和入站规则实现容器间网络访问控制。
通过容器网络隔离功能,可以实现:
- 实施基于Networkpolicy的容器网络访问控制,快速创建和下发访问控制策略,全面兼容K8s Networkpolicy。
- 提供管理平台,统一管理集群所有网络策略,一键快速开启和关闭网络策略。
- 支持自动发现K8s集群新增Networkpolicy策略及策略变更。
- 支持多集群和混合云集群,包括TKE集群及自建K8s集群。
- 支持详细的策略变更审计等。
同时我们提供策略可视化编辑功能,不用编写复杂的yaml规则,通过图形化配置来快捷的创建和配置容器网络策略规则,大大降低学习和配置成本,直观展现出网络策略的实施效果,哪些请求能允许访问,哪些请求不被允许非常清楚:
这里提供了9个实施容器网络访问控制的常见场景,您可基于容器网络隔离功能快速构建安全可信的容器网络。(查看地址:https://cloud.tencent.com/document/product/1285/80415)
如何快速体验?
登录腾讯云容器安全服务控制台可免费开启体验
- 登录控制台-点击“开启试用”,领取首次免费体验权益
- 进入容器安全服务-网络策略
- 选择步骤可参考产品帮助文档:
(https://cloud.tencent.com/document/product/1285/80414)
END
更多精彩内容点击下方扫码关注哦~
云鼎实验室视频号
一分钟走进趣味科技
-扫码关注我们-
关注云鼎实验室,获取更多安全情报