Python 如何仅允许从指定的IP访问App Engine?
我正在用Python在GAE上构建一个简单的POST处理程序,它将接受POST并将其写入云SQL数据库 我想将此应用程序的访问权限限制在发帖的IP-非GAE Web服务器的有限数量上从本质上讲,如何允许来自我的IP的帖子并禁止所有其他流量? 这似乎是一个简单而常见的操作,但我还没有在网上找到一个合适的解决方案。大多数GAE身份验证和路由包都是围绕用户身份验证构建的 我应该在哪里寻找解决方案?我应该使用什么谷歌关键词?这将写入应用程序本身,还是我应该关注GCP的另一个用于IP访问和路由的组件 谢谢 感谢您提醒我存在request.remote\u addr 以下是我目前的解决方案:Python 如何仅允许从指定的IP访问App Engine?,python,google-app-engine,authentication,Python,Google App Engine,Authentication,我正在用Python在GAE上构建一个简单的POST处理程序,它将接受POST并将其写入云SQL数据库 我想将此应用程序的访问权限限制在发帖的IP-非GAE Web服务器的有限数量上从本质上讲,如何允许来自我的IP的帖子并禁止所有其他流量? 这似乎是一个简单而常见的操作,但我还没有在网上找到一个合适的解决方案。大多数GAE身份验证和路由包都是围绕用户身份验证构建的 我应该在哪里寻找解决方案?我应该使用什么谷歌关键词?这将写入应用程序本身,还是我应该关注GCP的另一个用于IP访问和路由的组件 谢谢
ALLOWED_IP = ['173.47.xx.xx1', '173.47.xx.xx2']
class PostHandler(webapp2.RequestHandler):
def post(self):
# Read the IP of the incoming request
ip = self.request.remote_addr
# If the IP is allowed, execute our code
if ip in ALLOWED_IP:
# Execute some awesome code
# Otherwise, slam the door!
else:
self.error(403)
我不完全确定我的self.error()
用法在这里是否合适,但这是可行的!接受并执行从允许IP发出的POST请求。所有其他人都得到403分
我总是渴望听到改进建议。这个IP范围有多大?连接时,它是否可以存储并执行简单检查?非常小。一开始只有一两个。是的,存储和检查是我所设想的。在这种情况下,因为它只有几个IP,也许防火墙规则是一个更好的选择?防火墙规则是否可用于应用程序引擎,或者这是一个计算引擎功能?您可以在请求中检查remote\u addr,尝试self.request.remote\u addr,然后在继续发布之前检查它是否在您允许的列表中。这确实是一种很好的方式来完成您想要的事情。另一个解决方案是使用托管虚拟机,在这里您可以像在计算引擎中一样配置防火墙规则。干杯如何使用MVM配置防火墙规则?