You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Hosting结合Cloud Run:如何配置IAM身份验证?

解决Firebase Hosting重写至Cloud Run并通过IAM验证的问题

核心问题定位

Firebase Hosting重写调用Cloud Run时,使用的是专属的Firebase Hosting服务账号,并非所有带“Firebase”标识的服务账号,之前错误地给无关账号添加角色,导致验证失败。

具体解决步骤

1. 定位正确的Firebase Hosting服务账号

  • 控制台方式:进入Firebase控制台→项目设置→「服务账号」标签页,找到邮箱格式为 firebase-hosting@[你的项目ID].iam.gserviceaccount.com 的账号,显示名称通常为「Firebase Hosting Service Agent」
  • CLI方式:执行命令:
    gcloud iam service-accounts list --filter="displayName:Firebase Hosting Service Agent"
    
    输出结果中的邮箱就是目标服务账号。

2. 为该账号添加Cloud Run Invoker角色

  • 控制台操作:
    1. 打开Cloud Run控制台,找到目标服务实例
    2. 切换到「权限」标签页,点击「添加」
    3. 在「新成员」输入框填入找到的服务账号邮箱
    4. 角色选择「Cloud Run」→「Cloud Run Invoker」,保存配置
  • CLI操作:执行命令(替换占位符):
    gcloud run services add-iam-policy-binding [你的Cloud Run服务名] \
      --member="serviceAccount:firebase-hosting@[你的项目ID].iam.gserviceaccount.com" \
      --role="roles/run.invoker" \
      --region=[你的服务部署区域]
    

3. 验证配置生效

  • IAM权限变更可能有1-5分钟的延迟,等待后访问Firebase Hosting重写对应的路径测试
  • 若仍无法访问,可清除浏览器缓存或使用无痕窗口排除缓存干扰

额外排查要点

  • 确认firebase.json中的重写规则目标是Cloud Run的原生服务域名(格式为https://[服务名]-[随机哈希].[区域].run.app),而非自定义域名
  • 检查Cloud Run实例的「Require Authentication」选项已开启,且没有其他冲突的IAM权限规则
  • 确认自定义DNS已正确绑定到Firebase Hosting,域名解析状态正常

内容的提问来源于stack exchange,提问作者Imri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 22:40:00