绑定服务账号的API Key调用Vertex AI接口遇API_KEY_SERVICE_BLOCKED错误
问题解决:API_KEY_SERVICE_BLOCKED调用Vertex AI Agent Platform接口
核心原因
API密钥的服务限制列表中未包含Agent Platform API(aiplatform.googleapis.com),这类企业级AI平台API通常不支持通过API密钥的服务限制来授权,且官方更推荐使用服务账号的OAuth2认证方式。
解决方案
方案1:改用服务账号密钥认证(推荐)
Vertex AI的Agent Platform接口官方优先推荐服务账号密钥认证,步骤如下:
- 为目标服务账号
my-sa@MY_PROJECT_ID.iam.gserviceaccount.com创建JSON格式的服务账号密钥 - 使用密钥生成访问令牌:
gcloud auth activate-service-account my-sa@MY_PROJECT_ID.iam.gserviceaccount.com --key-file=path/to/your-key.json gcloud auth print-access-token - 调用接口时,将令牌放入
Authorization请求头:POST https://asia-northeast1-aiplatform.googleapis.com/v1/projects/MY_PROJECT_ID/locations/asia-northeast1/publishers/google/models/gemini-2.5-flash:generateContent Authorization: Bearer YOUR_ACCESS_TOKEN Content-Type: application/json { "contents": [{"parts": [{"text": "你的请求内容"}]}] }
方案2:移除API密钥的服务限制(临时 workaround)
若必须使用API Key,可暂时移除其服务限制(保留IP等其他安全限制即可):
- 进入Google Cloud控制台的API密钥管理页面
- 找到目标API Key,编辑限制设置
- 将“API限制”从“限制键”改为“不限制键”
- 保存后重新调用接口,
API_KEY_SERVICE_BLOCKED错误即可解除
补充说明
- Agent Platform API(
aiplatform.googleapis.com)不在API密钥的可选服务限制列表中,是因为Google针对这类API的认证策略更倾向于服务账号OAuth2,而非API Key的服务限制模式 - 已授予的IAM角色对API Key认证无效,API Key的权限仅由其绑定的服务账号和限制设置决定
内容的提问来源于stack exchange,提问作者hiro prelude
相关产品推荐
相关产品推荐

