google-app-engine - 如何保护由 GCS 触发的 App Engine Pub/Sub Push Endpoint?
问题描述
我正在尝试找到一种方法来保护我的谷歌云应用引擎标准环境端点订阅了由在谷歌云存储上创建文件触发的推送发布/订阅主题。
由于只能将 IP 地址设置为应用引擎的防火墙规则,并且 pub/sub 没有预定义的 IP 地址集,因此无法使用此功能。由于我无法控制 pub/sub 请求,因此也无法在 pub/sub 调用上使用自定义标头并在应用引擎上检查其有效性。
关于如何保护应用引擎端点的任何建议?
谢谢
解决方案
Cloud Pub/Sub 推送不适用于基于IP 的防火墙规则。使您的推送通知基于 IP 地址的安全性并不是最有效的方法。
OAuth 和服务帐户可用于验证对 Google 产品的访问权限,例如Cloud Pub/Sub。这将阻止外部人员访问您的 Pub/Sub API,只要它们不包含在特定服务帐户下。
此外,为了保护您的推送通知,我将遵循以下两种解决方案之一:
确认推送通知来自 Cloud Pub/ Sub 。您可以配置仅接受包含秘密令牌的消息的端点。
设置您自己的推送代理。一个简单的无状态服务可能会从 Pub/Sub 中提取消息并将它们从固定 IP 地址推送到您的 webhook。Pub/Sub 通过提供可扩展性和可用性在此设置中提供价值。
此外,我不确定您是否已经完全实现了这一点并且没有工作,但是来自另一个 Stackoverflow 问题的这个链接可能会有所帮助
推荐阅读
- python - 如何在 Pandas 中使用 df.apply (lambda) 将 2d 转换为 1d 数组?犯了一些错误
- properties - 我可以在 HTL Slightly 中用逗号分隔标签吗?
- google-sheets - 返回查询公式的工作表名称
- microsoft-teams - 是否可以在 Microsoft Teams 中自定义自定义应用程序的“关于”选项卡?
- nestjs - TypeORM - 使用枚举鉴别器的表继承
- python - Python多处理可能出现死锁,两个队列作为生产者-消费者模式?
- css - 如何在离子中自定义离子文本区域?
- android - 后台定位服务通知有空白通知小图标
- vba - dao.recordset2 和 dao.field2 不可用。我得到编译错误
- node.js - 使用 nodejs 和 mongoose 创建喜欢和不喜欢