Google App Engine服务仅在内部网络上进行通信并可用
问题描述:
是否可以使Google App Engine服务仅在Google云内部网络上可用,如果有,如何实现?我有一些不应公开的微服务(仅供其他服务使用)。Google App Engine服务仅在内部网络上进行通信并可用
我知道你可以配置防火墙,但是:
- App Engine的防火墙适用于所有服务
- 我不知道IP范围,以允许与VPC App Engine服务,因为应用程序引擎只与域一起工作,并没有指定它使用的范围。
答
如果您使用的是标准环境服务,则可以使用应用程序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 响应中。在你的应用程序处理程序,你可以通过阅读 的
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。
感谢您的麻烦我正在使用flex和标准混合,所以我想我需要一个满足两者的解决方案。 –