我想创建一个Google App Engine服务以用作微服务。我希望其API仅供我项目网络中的来电者使用(即来自我的项目中的Google Compute Engine和GAE实例)。限制访问的最简单方法是什么?
我从How do I run private modules on Google App Engine?看到X-AppEngine-Inbound-AppId
的检查适用于来自GAE的请求,但这对来自GCE的请求没有帮助。
要限制GCE服务,我会使用网络。我不认为可以将GAE实例分配给网络。
答案 0 :(得分:0)
检查X-AppEngine-Inbound-AppId
是否与您的应用ID匹配。
https://cloud.google.com/appengine/docs/python/appidentity/
Appengine identity api doc包含使用X-AppEngine-Inbound-AppId
来声明身份。
import webapp2
class MainPage(webapp2.RequestHandler):
allowed_app_ids = [
'other-app-id',
'other-app-id-2'
]
def get(self):
incoming_app_id = self.request.headers.get(
'X-Appengine-Inbound-Appid', None)
if incoming_app_id not in self.allowed_app_ids:
self.abort(403)
self.response.write('This is a protected page.')
app = webapp2.WSGIApplication([
('/', MainPage)
], debug=True)