【发布时间】:2022-01-12 00:34:29
【问题描述】:
我创建了一个不允许未经身份验证的请求的 HTTP Google Cloud 函数。
我在项目中创建了一个具有一个角色的服务帐户:Cloud Functions Invoker。
此服务帐户被列为我的 http 云功能的主体,并显示具有该角色: 我创建了一个 Cloud Scheduler Job 来运行这个功能。
在工作中,我已经指定我希望它获得一个 OIDC 令牌来验证对 http 函数的请求:
每当我触发作业时,它都会失败并显示一条消息,指示请求未经身份验证:
我尝试过的事情:
- 重新创建函数
- 重新创建作业
- 使用其他用户(主服务帐户用户 - 那个也不起作用)
- 从调度程序作业执行 POST 而不是 GET(我之前已经成功地为经过身份验证的 http 函数创建了调度作业,但这是我第一次执行 GET - 真的只是抓住了稻草)
我错过了什么吗?知道为什么它会返回“未经身份验证”消息吗?
【问题讨论】:
-
该功能是否只允许内部连接?如果是,它将返回 403,因为调度程序不被认为是内部的
-
你设置了观众吗?
-
@guillaumeblaquiere 我按照我通常使用的方法将其留空,它会自动填充观众。将其设置为与云函数 url 相同。
-
@FerreginaPelona 我没有明确设置 - 我将不得不阅读如何做到这一点。