我有两个服务在 Google App Engine 上运行(flex,同一个项目),我希望一个服务使用 HTTPS 调用另一个。
除此之外,我设置了防火墙,只允许 0.1.0.40
和 10.0.0.1
。
我还在请求中设置了 X-Appengine-Inbound-Appid
header 。
不幸的是,我收到“403 访问被禁止”错误(禁用防火墙后消失)。
现在,我正在使用 xxx.appspot.com
URL 来调用该服务。我应该改用一些内部 URL 吗?该请求似乎被防火墙视为外部请求。
谢谢!
最佳答案
我们的团队遇到了类似的问题。除了我们的其他 App Engine 服务,我们拒绝所有外部访问,其中一些服务位于不同的 GCP 项目中。允许通过防火墙从其他 App Engine 服务进行访问的唯一方法是让消费服务使用 URL Fetch 服务并按照您提到的那样传入 appspot.com URL。您还可以将 followRedirects 设置为 false。
但是,在您的情况下,这是行不通的。根据这个:https://cloud.google.com/appengine/docs/flexible/nodejs/glossary它仅适用于 Java、Python、PHP 和 Go。在这些情况下,您只需为 0.1.0.40 和 10.0.0.1 添加白名单规则。
如果您不想在 Google Compute Engine 中创建代理服务(如前所述 here ),您将必须添加此处指定的一堆非常大的 CIDR 范围:https://cloud.google.com/appengine/kb/
关于google-app-engine - Google App Engine 防火墙和内部访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49685512/