在节点应用引擎中保护 PubSub 推送端点?

Securing PubSub push endpoints in node app engine?

我正在使用 pubsub 将消息推送到在灵活环境中用节点编写的 App Engine 应用程序。有没有一种方法可以将我的端点限制为仅来自 pubsub 的流量?

在标准环境中,App Engine 具有可以定义仅限管理员的请求和安全端点的处理程序。但是,此功能在柔性环境中不可用。是否可以仅为 Google 请求设置防火墙规则(防火墙似乎是应用程序范围的,而不是端点?),是否有保护端点的标准方法,或者我是否需要自定义滚动解决方案?

原来 Google 已经发布了这个 in the docs 的解决方案。

解决方法是:

在您的 app.yaml 环境中创建令牌:

env_variables:
 PUBSUB_TOPIC: <your-topic-name>
 # This token is used to verify that requests originate from your
 # application. It can be any sufficiently random string.
 PUBSUB_VERIFICATION_TOKEN: <your-verification-token>

在您的消息中发送令牌:

 https://YOUR_APP_ID.appspot.com/pubsub/push?token=YOUR_TOKEN \
--ack-deadline 10

检查推送处理程序中的令牌:

  if (req.query.token !== PUBSUB_VERIFICATION_TOKEN) {
    res.status(400).send();
    return;
  }

RTFM!