Google Cloud NAT 内部 IP

Google Cloud NAT 内部 IP

我在 Kubernetes 上使用 GCP 运行一个集群,并且在 App Engines 上运行一些服务,我尝试在它们之间进行通信,但无法从外部访问 App Engines。

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

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

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

当我连接到应用引擎时,我可以看到通过 NAT 网关发出的请求来自 IP 0.0.0.0。但是,当我们仅将此 IP 列入白名单时,请求只有 1/3 能够通过,这看起来真的很奇怪。

您知道如何理解并解决这个问题吗?

答案1

Cloud Nat 可实现私人 Google 访问权限对于使用私有 IP 与 Google API 和服务交互的虚拟机。

发送到 Google API 的数据包不会被 NAT,也不包含 NAT IP。在向 Google API 或服务发出请求时,我们不会通过公共互联网;相反,我们会采用到达 Google API 的特定路径,并且云 NAT 不负责此通信。

私人 Google 访问权限支持访问应用引擎应用程序。

答案2

根据文档您提到,配置 Cloud NAT 后,它会自动启用私人 Google 访问权限子网。然而,虽然 Private Google Access 允许访问 Cloud 和 Developer API 以及大多数 GCP 服务,但有些例外并且似乎 App Engine 不受支持。

相关内容