仅允许 Cloudflare IP 进入 Kubernetes 集群中的 VPC

仅允许 Cloudflare IP 进入 Kubernetes 集群中的 VPC

我在 Google Cloud Platform 上运行了一个 Kubernetes 集群。端口 443 通过 Ingress 控制器公开。我尝试使用 VPC 防火墙规则阻止除 Cloudflare IP 之外的任何访问。我设置了以下规则(我知道它们现在已被禁用)

防火墙规则

据我所知,这应该可行,但它们似乎没有阻止任何东西。查看规则,它们适用于正确的节点。

只有将“不允许任何人”规则应用于所有端口时,它才会真正执行任何操作(但我认为它会破坏集群中的内部通信)

有谁知道为什么这不起作用?

答案1

您没有说明是否有默认规则。假设没有,则两者都需要。您需要打开 all-no-one 规则来建立无人进入 Web 端口的基线,然后确保优先级更高的 allow-only-cloudflare 可以覆盖该规则。

如果该 vpc 上的节点之间存在其他合法流量,那么您应该添加另一条规则,例如“允许本地 http”,并且无论您的子网是什么,例如 10.1.1.0/24,都将其作为源。

如果并非所有节点都需要网络流量,那么您可能应该使用标签(如“http_allowed”)创建该规则,并将该网络标签放在您想要获取该规则的任何节点上。

答案2

我想到了另一种方法,我使用 Cloud Armor 创建了一条策略,只允许 cloudflare IP

相关内容