GCP项目之间的路由(AppEngine + Kubernetes)



在Google Cloud中,我有一个应用程序部署在Kubernetes中的一个项目中(称为项目a),另一个部署在App Engine中(称为项目b)。项目a使用自动IP创建了一个云NAT。项目b使用App Engine标准。

Project-B默认允许来自internet的入口流量。但是我只想让a项目和b项目沟通。所有其他的流量都需要被阻塞。

我目前没有配置任何共享VPC。

在Project-B中,我使用以下拒绝规则配置App Engine Firewall规则(以下列表按照App Engine Firewall中定义的防火墙规则优先级排序):

0.0.0.1/32
0.0.0.2/31
0.0.0.4/30
0.0.0.8/29
0.0.0.16/28
0.0.0.32/27
0.0.0.64/26
0.0.0.128/25
0.0.1.0/24
0.0.2.0/23
0.0.4.0/22
0.0.8.0/21
0.0.16.0/20
0.0.32.0/19
0.0.64.0/18
0.0.128.0/17
0.1.0.0/16
0.2.0.0/15
0.4.0.0/14
0.8.0.0/13
0.16.0.0/12
0.32.0.0/11
0.64.0.0/10
0.128.0.0/9
1.0.0.0/8
2.0.0.0/7
4.0.0.0/6
8.0.0.0/5
16.0.0.0/4
32.0.0.0/3
64.0.0.0/2
128.0.0.0/1
default rule: allow *

(上述CIDR块对应0.0.0.1 - 255.255.255.255;我使用https://www.ipaddressguide.com/cidr为我执行计算)。

从项目a,我仍然可以到达项目b。是否有某种内部网络路由,谷歌做绕过应用引擎防火墙?在这种情况下,谷歌似乎在使用默认规则,而忽略了我所有的其他规则。

然后我做了相反的。上述所有CIDR块的规则更改为ALLOW,而最后一个默认规则更改为所有ip的DENY。然后我得到了相反的行为-项目a无法到达项目b。同样,看起来只使用了默认规则。

如何实现只有项目a可以与项目b通信,不允许互联网入口流量到达项目b的情况?是否可以避免使用共享VPC?如果我使用共享VPC,项目b的App Engine防火墙规则应该是什么?

当然。我最终选择了负载均衡器解决方案。这给了我一个松散耦合的解决方案,它更适合我的场景。设置时间不到30分钟。

最新更新