从 PubSub 推送订阅验证云功能
Authenticating to cloud function from PubSub push subscription
我们正在使用 PubSub 进行排队,利用指向 http 触发的 云函数的推送订阅。根据 this 文档 Cloud 运行 和 App Engine 都将对来自 PubSub 的请求进行身份验证,未列出云功能。我们使用了其他 google 服务,例如调度程序来调用需要身份验证的函数,但使用 PubSub 时运气不佳。
我的问题是,云函数是否支持通过订阅目标帐户集从 PubSub 进行身份验证,或者是否需要该函数读取并处理 JWT 本身以进行身份验证?
Pub/Sub订阅支持对使用“推送”的订阅使用服务帐号认证。
要使用服务帐户,只需指定云函数的端点、启用身份验证并添加用于向云函数发送请求的服务帐户。确保服务帐户具有访问 PubSub 和云功能的适当权限。
你需要不同的东西:
- 具有 role/cloudfunctions.invoker
的服务帐户
- 勾选
Enable authentication
- Select 您的服务帐号
- 在受众字段中添加云功能URL(如云功能中提供的那样)。 这是 Ricco 答案中缺少的部分
编辑 1
PubSub 需要获得在服务帐户上生成令牌的授权。检查 first step on this。在那里,它展示了如何将 pubsub 服务代理服务帐户授予令牌创建者。
我们正在使用 PubSub 进行排队,利用指向 http 触发的 云函数的推送订阅。根据 this 文档 Cloud 运行 和 App Engine 都将对来自 PubSub 的请求进行身份验证,未列出云功能。我们使用了其他 google 服务,例如调度程序来调用需要身份验证的函数,但使用 PubSub 时运气不佳。
我的问题是,云函数是否支持通过订阅目标帐户集从 PubSub 进行身份验证,或者是否需要该函数读取并处理 JWT 本身以进行身份验证?
Pub/Sub订阅支持对使用“推送”的订阅使用服务帐号认证。
要使用服务帐户,只需指定云函数的端点、启用身份验证并添加用于向云函数发送请求的服务帐户。确保服务帐户具有访问 PubSub 和云功能的适当权限。
你需要不同的东西:
- 具有 role/cloudfunctions.invoker 的服务帐户
- 勾选
Enable authentication
- Select 您的服务帐号
- 在受众字段中添加云功能URL(如云功能中提供的那样)。 这是 Ricco 答案中缺少的部分
编辑 1
PubSub 需要获得在服务帐户上生成令牌的授权。检查 first step on this。在那里,它展示了如何将 pubsub 服务代理服务帐户授予令牌创建者。