首页 > 解决方案 > 允许 Cloud NAT 与 App Engine 防火墙通信

问题描述

我在带有 GCP 的 Kubernetes 上有一个正在运行的集群,还有一些在 App Engine 上运行的服务,我试图在它们之间进行通信,但无法从外部访问 App Engine。

我创建了一个具有特定子网的私有 Kubernetes 集群,我将此子网链接到 Cloud NAT 以拥有一个可以列入白名单的唯一出口 IP,并且我在 App Engine 防火墙规则中允许此 IP。

但是,当我从集群请求我的应用程序引擎时,我收到 403 响应,因为它没有通过防火墙。但是,如果我连接到我的 Kubernetes pod 并尝试请求一个站点知道我的 IP,我会得到我在 Cloud NAT 中设置的 IP。

我在 Cloud NAT 文档中发现,在应用防火墙规则(https://cloud.google.com/nat/docs/overview#firewall_rules)之前实现了对内部 IP 的转换。

有没有办法检索这个内部 IP?还是另一种保护服务的方法?

标签: google-app-enginefirewallnat

解决方案


Cloud NAT绝不适用于发送到 Google API 和服务的公共 IP 地址的流量。发送到 Google API 和服务的请求绝不会使用为 Cloud NAT 配置的外部 IP 作为其来源。

我建议您部署一个内部负载均衡器。内部 TCP/UDP 负载平衡使集群外部的应用程序可以访问集群的服务,这些应用程序使用相同的 VPC 网络并位于相同的 GCP 区域。


推荐阅读