是否可以仅在Google Cloud内部网络上提供Google App Engine服务,如果可以,如何使用?我有一些不应公开提供的微服务(仅供其他服务使用)。
我知道你可以配置防火墙,但是:
答案 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。