GCP部署Spring Boot应用调用REST API出现403权限不足异常是什么原因
你的应用本身部署运行正常,根路径不涉及数据库操作所以访问无异常,报错出现在应用尝试连接GCP Cloud SQL MySQL实例时,GCP API返回了权限不足错误,常见原因如下:
- 运行应用的GCP服务账号缺少必要权限:你部署Spring Boot应用所用的GCP资源(Cloud Run、Compute Engine、GKE节点等)绑定的服务账号,未被授予
Cloud SQL 客户端(roles/cloudsql.client)或更高的Cloud SQL相关角色,无法获取Cloud SQL实例的连接权限。 - 实例访问范围(scopes)配置错误:如果是用Compute Engine/GKE部署,对应实例的API访问范围未开启Cloud SQL的访问权限,默认范围可能不包含Cloud SQL的操作权限,需要手动添加Cloud SQL的读写权限范围。
- 应用配置的认证信息错误:如果你在Spring Boot配置中手动指定了服务账号密钥文件,该密钥对应的服务账号同样需要满足上述权限要求,否则也会触发权限不足错误。
- Cloud SQL Auth Proxy配置问题:如果你通过Cloud SQL Auth Proxy连接数据库,启动代理所用的服务账号同样需要具备Cloud SQL访问权限,否则代理转发请求时会被GCP拦截。
排查建议
- 先确认部署应用的GCP资源绑定的服务账号,在IAM页面检查是否分配了
roles/cloudsql.client角色 - 检查部署资源的API访问范围配置,确认已开放Cloud SQL的访问权限
- 若使用自定义服务账号密钥,确认密钥对应账号的权限配置无误
内容的提问来源于stack exchange,提问作者Mr bond
相关产品推荐
相关产品推荐

