作者:吴明秘
Hi!欢迎来到Tungsten Fabric与Kubernetes集成指南系列,本文介绍如何创建安全策略。 Tungsten Fabric与K8s集成指南系列文章,由TF中文社区为您呈现,旨在帮助大家了解Tungsten Fabric与K8s集成的基础知识。大家在相关部署中有什么经验,或者遇到的问题,欢迎与我们联系。
安全策略可以通过限制端口、网络协议等方式控制任意pod之间的访问,以及pod与service之间的访问。在K8s集群中安全策略对应的是Network Policy,在Tungsten Fabric中安全策略对应的Firewall Rule,两者是会实时同步的。
pod之间的访问控制
安全策略的控制是全局的,跨命名空间,跨network,所以创建策略的时候要尽可能详细地指定此端到彼端的一些参数,包括端口、命名空间、IP地址段等等。
根据第二章节的信息,可以知道目前有——
两个命名空间:test-ns1 test-ns2
三个network:k8s-ns1-pod-net01 k8s-ns1-pod-net02 k8s-ns2-pod-net01
四个pod:
nginx01-ns1-net01
nginx01-ns1-net02
nginx01-ns2-net01
nginx02-ns2-net01
而k8s-ns1-pod-net01与k8s-ns1-pod-net02已经互通(通过新建TF router连通),k8s-ns1-pod-net01 与k8s-ns2-pod-net01已经互通(通过TF Network Policy连通)。
首先,新增一条默认禁止访问策略,禁止任何流量访问test-ns1的pod,配置如下:
#pod选择器设置为空,表示选择所有pod,即控制整个命名空间。
#只写了ingress生效,又把podSelector设置为空,表示拒绝其它命名空间访问,拒绝所有入站请求。
#没有加egress,所以默认egress是允许本命名空间所有pod出站。
创建策略后,验证从test-ns2的k8s-ns2-pod-net01网络是否能访问到test-ns1的k8s-ns1-pod-net01网络。
验证过程如下图所示,首先从test-ns2的pod去p