Cloud Scheduler 调用 Cloud Run 服务的身份验证
Posted
技术标签:
【中文标题】Cloud Scheduler 调用 Cloud Run 服务的身份验证【英文标题】:Authentication for Cloud Scheduler calling Cloud Run service 【发布时间】:2019-10-30 09:25:25 【问题描述】:我有一个 Cloud Run 服务来执行一些后台任务,我需要它每 15 分钟执行一次。
我正在使用完全符合我需要的 Cloud Scheduler 作业每 15 分钟调用一次 HTTP 端点,但我还想设置身份验证以避免外部调用。
在作业配置页面中,它允许我添加身份验证标头,但我无法设置 OAuth 令牌,因为服务端点不被视为 Google 服务(它不以“googleapis.com”结尾)。
我应该如何处理 Cloud Scheduler - Cloud Run 身份验证?
【问题讨论】:
【参考方案1】:Cloud Run 通过验证 OIDC 令牌而不是 OAuth 令牌进行身份验证。
有关如何设置 Cloud Scheduler,请参阅此文档: https://cloud.google.com/scheduler/docs/http-target-auth
【讨论】:
【参考方案2】:如果你define your Cloud Scheduler job via the CLI 你可以手动specify headers that you could use for authentication。
这允许比 OIDC 和 OAuth 更轻量级的解决方案。
【讨论】:
这实际上是我当时最终做的,标记为接受的答案。以上是关于Cloud Scheduler 调用 Cloud Run 服务的身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Cloud Run 完成,但 Cloud Scheduler 认为该作业已失败
GCP Cloud Scheduler 为 HTTP 目标类型抛出错误
如果我的 Google Cloud Scheduler 作业失败,如何发送电子邮件提醒?
使用 Cloud Scheduler 触发 Cloud Functions 的 HTTP