跳过本节不影响阅读
既然是牛年第一篇,总要写点废话起个头。另外写小工具系列经常面对的一个难题就是——怎样凑够 300 字的原创门槛。
2020 年有大半年我都在唠叨云原生安全的事情,现在的情况按照我的理解,有点像 2000 年附近的互联网——各种东西都在往新瓶子里装,那时候的新瓶子是互联网,现在的新瓶子是云原生;那时候的旧酒是邮件、留言板、传呼机,现在的旧酒除了这些生活内容之外,多了更多的 ToB/G 的内容;从前的较大规模的公开互联网服务多数是自建自维护的,现在的公开服务则往往会用到大量的公有云、SaaS/PaaS 服务以及第三方交付项目。
在 Kubernetes 来说:
综上,经过轰轰烈烈的云原生运动之后,安全问题就已经被怼到了我们面前,很多时候一些重点服务一旦遭到破坏,虽说安全相关的黑产已经有了成熟的获利链条;然而在责任方来说,的确可以挤出一句——这不是钱的事儿。
言归正传,今天要介绍的是一个安全相关的网络策略小工具。
网络策略是 Kubernetes 内置的重要安全机制之一,用它可以轻松地使用 Namespace、Label Selector、CIDR 等方式,限制 Pod 的 Ingress/Egress 访问,相对于 RBAC 来说,这东西其实更贴近传统网络策略的限制方式,但是目前应用还较少,也就显得比较难用了。Cilium 推出的这个可视化编辑器,是个很好的入门工具。
缺省界面如图所示:
整个界面分为几个部分:
可视化编辑区分为左中右三个部分:
例如新建一个缺省禁止所有其它命名空间访问的策略,只要新建策略,在 1 区点击 Ingress
,将其设为 Default Deny,然后在 2 区点击 In Namespace
,在弹出窗口中选择 Allow from any pod
即可。最终结果如图所示:
除了 All 之外,编辑器还支持 namespaceSelector、podSelector 以及集群外 CIDR 等的源头选择。Egress 策略中也包括对目标端口的设置。
这才能叫可视化吧。
https://editor.cilium.io/
https://kubernetes.io/docs/concepts/services-networking/network-policies/