在节点应用引擎中保护 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!
我正在使用 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!