我在app引擎中有许多微服务仅供内部使用。但是,默认情况下,应用引擎会将service-project.appspot.com
域打开为公开,任何人都可以通过http
或https
访问它们。
有没有办法限制只对某个IP地址的访问?
我能想到的琐碎方法是检查应用程序代码中的源IP地址。 或者,我可以使用nginx配置创建自定义docker镜像,以检查源IP地址。但是,这些并不是很干净的解决方案,因为访问控制实际上独立于应用程序,我不想在容器内硬编码静态IP地址。
我认为有一种方法可以为app引擎设置防火墙规则,但我找不到它。 Identity-Aware Proxy似乎是另一种选择,但它不适用于app engine flex。
答案 0 :(得分:1)
我知道这很冷,但我们正在努力为IAP重新启用App Engine灵活支持。不过,它不仅仅是几天。
https://cloud.google.com/appengine/docs/flexible/java/migrating#users有一些选项可能比硬编码IP更可口。您无法使用GCE防火墙规则,因为appspot.com流量来自云HTTP负载均衡器,因此GCE实例防火墙只能看到负载均衡器的IP。如果您执行想要验证应用中的IP,请按照https://cloud.google.com/compute/docs/load-balancing/http/#components所述使用X-Forwarded-For。
希望这有帮助! --Matthew,Cloud IAP工程师