使用全局IP白名单限制对某些Kubernetes服务的访问



TLDR:需要每五分钟更新一次的IP白名单,以限制对服务的访问

Hy那里

我目前正在将我们的虚拟机迁移到两个Kubernetes集群(prod和dev(中。到目前为止,我们已经通过每五分钟更新一次的网络访问策略来管理对系统的访问。每个环境都有自己的VM,因此策略的设置很容易。我们的托管合作伙伴是Open Telekom Cloud(OTC(。

现在使用Kubernetes,我们在一个集群上运行多个环境,网络访问策略将影响集群上的所有托管环境。

开发集群托管Preview、Dev1、Stage。。。预览应该没有访问限制,所有其他环境都应该受到IP白名单的限制。

  1. 是否可以保留一个每五分钟更新一次的全局ip白名单,以限制对某些服务的访问?更新是否自动分发?

  2. 我应该在入侵中进行限制还是应该使用networkPolicies

  3. 有其他方法可以做到这一点吗?

来自慕尼黑的问候

编辑:非常感谢@harrough manvar

他的解决方案将对基本上每一个托管的Kubernetes服务都有很大帮助。遗憾的是,我们仅限于Telekom DE(OTC CCE(

  • NetworkPolicies无法阻止那里的IP
  • OTC的入口控制器实现不允许IP白名单(或黑名单(。他们正在考虑(有望在2022年底交付(
  • 负载平衡器阻塞也不起作用

我们最终开发了一个Web应用程序防火墙(每个域每月150欧元(,可以根据IP转发/阻止请求。

是否可以保留一个全局ip白名单,该白名单每五分钟,以限制访问某些服务?更新了吗自动分发?

是的,如果您使用任何,可以通过管理入口或网关(Istio、Kong、KrakenD(上的流量并将其列入白名单

您可以使用配置或配置管理工具和CI/CD流程来管理YAML文件,以便每次都应用更改,因此这种方式也很容易管理。

我应该限制访问还是应该使用networkPolicies

这更多地取决于需求。如果你想在IP地址或端口级别(OSI第3层或第4层(控制流量,那么你可以考虑为集群中的特定应用程序使用Kubernetes NetworkPolicies。

对于入口白名单

annotations: 
nginx.ingress.kubernetes.io/whitelist-source-range: "0.0.0.0/24"

有其他方法可以实现这一点吗?

您还可以在K8s服务级别实现load balancer源范围过滤器。

最新更新