Google App Engine服务仅在内部网络上进行通信和可用

时间:2017-10-18 23:13:25

标签: google-app-engine

是否可以仅在Google Cloud内部网络上提供Google App Engine服务,如果可以,如何使用?我有一些不应公开提供的微服务(仅供其他服务使用)。

我知道你可以配置防火墙,但是:

  • 应用引擎防火墙适用于所有服务
  • 我不知道允许使用VPC的应用引擎服务的IP范围,因为应用引擎仅适用于域,并且没有指定它使用的范围。

1 个答案:

答案 0 :(得分:1)

如果您使用的是标准环境服务,则可以使用应用程序ID验证此类服务中的请求。来自Asserting identity to other App Engine apps

  

如果您想确定App Engine应用程序的身份   向App Engine应用程序发出请求,您可以使用该请求   标题X-Appengine-Inbound-Appid。此标头已添加到   URLFetch服务请求并且不是用户可修改的,所以它   安全地指示请求的应用程序的ID(如果存在)。

     

为了将此标头添加到请求,应用程序制作   请求必须告诉URLFetch服务不遵循重定向。   也就是说,它必须将fetch follow_redirects参数设置为   False。然后,App Engine会自动将标头添加到HTTP   响应。

     

在您的应用程序处理程序中,您可以通过阅读来检查传入的ID   X-Appengine-Inbound-Appid标题并将其与列表进行比较   允许ID发出请求。

**Note:** The **X-Appengine-Inbound-Appid** header is only set if the call
is made to the **appspot.com** domain. If the app has a custom domain, 
this header will not be set.

如果您使用的是flex环境,则此方法不起作用,请参阅App Engine Flexible + App Identity (Python)

使用应用程序自己的服务帐户进行身份验证可能是另一个需要考虑的灵活环境 - 但我还没有尝试过。请参阅Service Account for the App Engine Flexible Environment