我应该如何创建仅在我的项目中可见的Google App Engine服务?

时间:2016-09-07 15:15:59

标签: google-app-engine google-cloud-platform google-app-engine-python

我想创建一个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实例分配给网络。

1 个答案:

答案 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)