【问题标题】:How to restrict public access to google app engine flexible environment?如何限制公众访问谷歌应用引擎柔性环境?
【发布时间】:2017-05-17 05:18:56
【问题描述】:

我在应用引擎中有许多微服务仅供内部使用。但是,默认情况下,应用引擎会向公众开放service-project.appspot.com 域,任何人都可以通过httphttps 访问它们。 有没有办法只限制特定 IP 地址的访问?

我能想到的简单方法是检查应用程序代码中的源 IP 地址。 或者,我可以使用检查源 IP 地址的 nginx 配置创建自定义 docker 映像。但是,这些不是很干净的解决方案,因为访问控制实际上是独立于应用程序的,我不想在容器内硬编码静态 IP 地址。

我认为有一种方法可以为应用引擎设置防火墙规则,但我找不到它。 Identity-Aware Proxy 似乎是另一种选择,但它不适用于 app engine flex。

【问题讨论】:

    标签: google-app-engine app-engine-flexible


    【解决方案1】:

    我知道这是冷酷的安慰,但我们正在努力重新启用对 IAP 的 App Engine flex 支持。不过,这将不仅仅是几天。

    https://cloud.google.com/appengine/docs/flexible/java/migrating#users 有一些选项可能比硬编码 IP 更受欢迎。您将无法使用 GCE 防火墙规则,因为 appspot.com 流量来自 Cloud HTTP 负载均衡器,因此 GCE 实例防火墙只能看到负载均衡器的 IP。如果您确实想在应用中验证 IP,请使用 X-Forwarded-For,如 https://cloud.google.com/compute/docs/load-balancing/http/#components 所述。

    希望这会有所帮助! --Matthew,云 IAP 工程师

    【讨论】:

    • 感谢您的回答。我试图使用 X-Forwarded-For 来获取客户端 IP 地址,并且只允许内部 IP 地址,例如 10.128.16.0/20。但是,使用http://xxx.appspot.com 进行内部呼叫的客户端IP 地址也是外部IP 地址。所以我分不清是外面的还是里面的。如果我按照这个文档使用appspot.com域名,应该是本地路由。 cloud.google.com/appengine/docs/standard/java/…
    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 2019-01-03
    相关资源
    最近更新 更多