介绍一个小工具:网络策略可视化编辑器

引子

跳过本节不影响阅读

既然是牛年第一篇,总要写点废话起个头。另外写小工具系列经常面对的一个难题就是——怎样凑够 300 字的原创门槛。

2020 年有大半年我都在唠叨云原生安全的事情,现在的情况按照我的理解,有点像 2000 年附近的互联网——各种东西都在往新瓶子里装,那时候的新瓶子是互联网,现在的新瓶子是云原生;那时候的旧酒是邮件、留言板、传呼机,现在的旧酒除了这些生活内容之外,多了更多的 ToB/G 的内容;从前的较大规模的公开互联网服务多数是自建自维护的,现在的公开服务则往往会用到大量的公有云、SaaS/PaaS 服务以及第三方交付项目。

在 Kubernetes 来说:

  • 推出了 CKS 认证
  • OPA 毕业
  • Kyverno 进入沙箱
  • Redhat 收购 StackRox

综上,经过轰轰烈烈的云原生运动之后,安全问题就已经被怼到了我们面前,很多时候一些重点服务一旦遭到破坏,虽说安全相关的黑产已经有了成熟的获利链条;然而在责任方来说,的确可以挤出一句——这不是钱的事儿。

正文

言归正传,今天要介绍的是一个安全相关的网络策略小工具

网络策略是 Kubernetes 内置的重要安全机制之一,用它可以轻松地使用 Namespace、Label Selector、CIDR 等方式,限制 Pod 的 Ingress/Egress 访问,相对于 RBAC 来说,这东西其实更贴近传统网络策略的限制方式,但是目前应用还较少,也就显得比较难用了。Cilium 推出的这个可视化编辑器,是个很好的入门工具。

缺省界面如图所示:

default

整个界面分为几个部分:

  • A:可视化编辑区:区域中可以用点选的方式产生不同的 Ingress Egress 规则。
  • B:代码编辑区:交互式编辑区产生的策略变更都会用 YAML 代码的形式反映在该区域,另外左上角还可以通过上传的方式载入现有 YAML 文件,上传的内容也会反向映射回到可视化编辑区中。
  • C:该区域是教学区域,下拉菜单中包含了几个常用的策略的相关教学,注意这里的是教学,给出的可能是一个待修复的策略和修复方法,不要直接复制使用。

可视化编辑区分为左中右三个部分:

  • 1:这里可以定义策略的主体,例如命名空间、名称、策略对应的管理目标(Pod Selector),另外还可以定义 Ingress 和 Egress 的缺省行为,例如缺省 Deny 或者 Allow,这里可以看到,随着策略的变化,相应的连接线颜色会发生变化。
  • 2:Ingress 区域,管理进入 Pod 的流量,分为集群外、集群内、本命名空间三种配置方法。
  • 3:Egress 区域,管理从 Pod 发出的流量,和 Ingress 区域一样,分为三种配置。

例如新建一个缺省禁止所有其它命名空间访问的策略,只要新建策略,在 1 区点击 Ingress,将其设为 Default Deny,然后在 2 区点击 In Namespace,在弹出窗口中选择 Allow from any pod 即可。最终结果如图所示:

only-ns

除了 All 之外,编辑器还支持 namespaceSelector、podSelector 以及集群外 CIDR 等的源头选择。Egress 策略中也包括对目标端口的设置。

结论

这才能叫可视化吧。

相关链接

  • 工具地址:https://editor.cilium.io/
  • Kubernetes Network Policies:https://kubernetes.io/docs/concepts/services-networking/network-policies/
Avatar
崔秀龙

简单,是大师的责任;我们凡夫俗子,能做到清楚就很不容易了。

comments powered by Disqus
下一页
上一页

相关