繁体   English   中英

如何为 HTTP 触发器验证谷歌云 function?

[英]How to authenticate google cloud function for HTTP trigger?

我有一个 function 应用程序,它托管在我的 GCP 项目中并启用了身份验证。 此应用程序将根据事件从 Jfrog 容器注册表 Webhook 触发。

我在这里面临的问题是验证/授权 HTTP 请求。 我尝试使用“授权:承载”header,效果很好。 但该令牌似乎在 60 分钟后过期。

问:是否有一种永久方式(没有过期)来授权/验证云 function HTTP 请求? Jfrog webhooks 无法以编程方式创建令牌,因为它是一个简单的 HTTP POST 触发器,可以接受额外的标头。

我发现很难从 GCP 文档中找到解决方案。 我确实有使用“roles/cloudfunctions.invoker”角色创建的服务帐户。

Jfrog artifactory webhooks参考: https://www.jfrog.com/confluence/display/JFROG/Webhooks

正是出于这个原因,我写了那篇文章 它基于 ESPv2 和 Cloud Run,但API 网关是该技术堆栈的托管版本。 原理和OpenAPI spec是一样的。

该解决方案将安全级别从短期令牌 (1h) 降级为长期令牌(无限制)。 但是可以使用 API 网关来保证 API Key 校验和查询转发。

一个更简单的模式是删除对 Cloud Functions 的身份验证检查(并将其公开)并在您的函数本身中执行 API 密钥(实际上是随机字符串比较)。


在这两种情况下,API 都是可公开访问的(API 网关或云功能),并且在 DDoS 攻击的情况下,没有任何东西可以保护您的服务(和您的资金)。 设置正确的 Cloud Functions Max 实例以防止出现意外情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM