2017-10-18 45 views
1

是否可以使Google App Engine服务仅在Google云内部网络上可用,如果有,如何实现?我有一些不应公开的微服务(仅供其他服务使用)。Google App Engine服务仅在内部网络上进行通信并可用

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

  • App Engine的防火墙适用于所有服务
  • 我不知道IP范围,以允许与VPC App Engine服务,因为应用程序引擎只与域一起工作,并没有指定它使用的范围。

回答

0

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

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

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

在你的应用程序处理程序,你可以通过阅读 的X-Appengine-Inbound-Appid头,并将其与允许作出请求 ID的列表检查传入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)

使用身份验证与应用程序自己的服务帐户可以是另一件事看的Flex环境 - 但我还没有尝试。见Service Account for the App Engine Flexible Environment

+0

感谢您的麻烦我正在使用flex和标准混合,所以我想我需要一个满足两者的解决方案。 –

相关问题