GCP Endpoints调用异常:添加API Key后仍提示无权限排查
解决GCP GKE后端API Key权限错误(Code 13)
没错,你碰到的这个code:13权限错误,大概率是因为你创建的API Key没有被授权访问你的后端服务。下面是一步步的排查和解决步骤:
1. 检查API Key的API限制配置
这是最常见的诱因——GCP新创建的API Key默认没有权限访问任何受限制API,必须手动绑定到你的服务:
- 打开GCP控制台,进入API和服务 > 凭据页面
- 找到你创建的目标API Key,点击进入编辑界面
- 定位到「API限制」区域,选择「限制密钥」选项
- 在下拉列表里找到你的后端服务对应的API条目(如果是用Cloud Endpoints部署的,就是你Swagger里定义的服务名称),将其添加到限制列表后保存更改
2. 确认Swagger配置与请求参数匹配
再核对一下你的Swagger定义和实际请求是否一致:
- 你在Swagger里定义的API Key参数是
name: "key"且in: "query",所以请求必须携带?key=你的API_KEY,别把参数名写错(比如误写成api_key就会直接失效) - 确保部署到GCP的Swagger配置是最新版本——如果用Cloud Endpoints部署,重新执行
gcloud endpoints deploy swagger.yaml,保证安全规则已同步生效
3. 等待配置同步并测试
GCP的API Key配置更改可能需要1-5分钟才能完全生效,别着急立刻测试。等几分钟后,再用携带正确API Key的请求调用接口,应该就能正常访问了。
额外排查点
如果还是无法解决,可以检查这些细节:
- 确认API Key状态:在凭据页面查看目标API Key是否处于「启用」状态,避免因误操作被禁用
- 查看服务控制日志:进入API和服务 > 仪表板 > 你的服务 > 日志,查看具体的权限拒绝详情,可能会有更精准的错误提示
内容的提问来源于stack exchange,提问作者Al Wld
相关产品推荐
相关产品推荐

