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

如何阻止Cloud Run将Authorization头传递给部署的Grafana服务

方案1(最简便,无需修改服务端配置)

Cloud Run的身份校验支持从URL查询参数access_token读取身份令牌,无需放在Authorization请求头中,你直接调整请求逻辑即可:

  • 删除代码中req.Header.Set("Authorization", "Bearer "+tok.AccessToken)这一行
  • 把请求URL修改为拼接令牌的格式:
req, err := http.NewRequest("POST", fmt.Sprintf("https://grafana-123.run.app/api/dashboards/db?access_token=%s", tok.AccessToken), r)

该方式不会向Grafana传递Authorization头,完全避免冲突,Grafana会正常处理匿名请求。

方案2(服务端修改,移除透传的请求头)

在部署Grafana的Cloud Run容器中新增一层轻量反向代理(比如Nginx),在代理层移除所有请求的Authorization头后再转发给Grafana,示例Nginx配置片段:

server {
    listen 8080;
    location / {
        proxy_pass http://127.0.0.1:3000; # Grafana默认监听端口
        proxy_set_header Authorization ""; # 清空Authorization头
        proxy_set_header Host $host;
    }
}

修改Cloud Run的容器启动命令先启动Nginx再启动Grafana,同时将Cloud Run的服务端口设置为8080即可。

方案3(直接修改Grafana配置,忽略认证头)

调整Grafana的环境变量配置,直接禁用API Key和基础认证校验,哪怕收到透传的Authorization头也不会处理:

GF_AUTH_ANONYMOUS_ENABLED=true
GF_AUTH_ANONYMOUS_ORG_ROLE=Editor # 调用创建仪表盘接口需要编辑权限,根据需求调整角色
GF_AUTH_API_KEY_ENABLED=false
GF_AUTH_BASIC_ENABLED=false

如果需要保留其他认证方式,不想全局禁用,可以额外部署Nginx做头移除,参考方案2即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:45:04