供应凭证 API
通过脚本或 Agent 批量添加和管理厂商 API Key、Bedrock Role 与 Vertex Service Account JSON。
本页目录
供应凭证 API 是面向供应商的一套精简自动化接口。同一套账号级 API 支持厂商官方 API Key、委托的 AWS Bedrock IAM Role 和 Google Vertex Service Account JSON。
Supplier Token 只能访问这套控制接口。它与 AnyPath Gateway API Key 完全分离,不能调用模型,也不会获得 Admin 或 Operator 权限。
创建 Supplier Token
打开 控制台 → 路由 → 供应凭证,创建 Supplier Token 并立即复制。明文只显示一次,AnyPath 只保存哈希。
export ANYPATH_CONTROL_URL="https://anypath.dev"
export ANYPATH_SUPPLIER_TOKEN="ap_supply_..."
机器请求统一使用:
Authorization: Bearer ap_supply_...
Content-Type: application/json
不要在这里使用 Gateway API Key(sk-...),也不要用 Supplier Token 调用模型接口。
批量添加凭证
POST /api/gateway/p2p/supply-credentials 每次最多接收 100 项。除非显式设置 "validate": false,新建和恢复的凭证都会自动验证。每一项独立返回结果。
厂商 API Key
curl "$ANYPATH_CONTROL_URL/api/gateway/p2p/supply-credentials" \
-H "Authorization: Bearer $ANYPATH_SUPPLIER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"items": [
{"kind":"api_key","preset":"anthropic-console","value":"provider-key-1"},
{"kind":"api_key","preset":"openai-api-key","value":"provider-key-2"}
]
}'
AWS Claude Platform 同样使用 api_key,但 preset 为 aws-claude-platform,并需同时提供 awsRegion 和 workspaceId。
Vertex Service Account JSON
Gemini 使用 gemini-vertex,Vertex 上的 Claude 使用 anthropic-vertex:
{
"items": [
{
"kind": "vertex_json",
"preset": "gemini-vertex",
"location": "us-central1",
"serviceAccountJson": {
"type": "service_account",
"project_id": "example-project",
"client_email": "supplier@example-project.iam.gserviceaccount.com",
"private_key": "<service-account-private-key>",
"token_uri": "https://oauth2.googleapis.com/token"
}
}
]
}
私钥在接收时即加密,之后不会再次返回。批量上传时,每个 Service Account 对应一个 vertex_json 条目。
Bedrock 委托 Role
Bedrock Role 在添加前需要两步信任配置:
- 获取精确的信任策略和权限策略:
curl "$ANYPATH_CONTROL_URL/api/gateway/p2p/aws/assume-role" \
-H "Authorization: Bearer $ANYPATH_SUPPLIER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action":"preview","roleArn":"arn:aws:iam::123456789012:role/AnyPathBedrock"}'
- 在 AWS 中应用返回的两份策略,再以
"action":"verify"重复请求。STS 边界检查通过后会返回短时有效的proof。 - 添加 Role:
{
"items": [
{
"kind": "bedrock_role",
"preset": "anthropic-bedrock",
"roleArn": "arn:aws:iam::123456789012:role/AnyPathBedrock",
"region": "us-east-1",
"proof": "v1..."
}
]
}
AnyPath 只保存 Role ARN 和账号级信任元数据,不保存长期 IAM Key 或临时 STS 凭证。
管理凭证
| 操作 | 接口 |
|---|---|
| 查看脱敏凭证 | GET /api/gateway/p2p/supply-credentials |
| 添加或批量添加 | POST /api/gateway/p2p/supply-credentials |
| 启用或停用 | PATCH /api/gateway/p2p/supply-credentials/{id},请求体为 {"enabled":true} 或 false |
| 重新验证 | POST /api/gateway/p2p/supply-credentials/{id}/validate |
| 删除 | DELETE /api/gateway/p2p/supply-credentials/{id} |
列表只返回脱敏提示、供应商、凭证类型、模型、状态和验证证据,不会返回厂商密钥或 Vertex JSON。
Agent 调用方式
这套流程不需要单独搭建 MCP Server。给 Agent 提供控制面 URL、通过密钥环境注入 Supplier Token,并提供这份 HTTP 契约即可。安全循环是:先查询当前凭证,批量添加缺失项,检查每一项结果,再只对接口返回且属于当前账号的 ID 执行停用或删除。
同一账号、preset 和凭证的重复写入具有幂等性。已删除凭证可以重新添加,并通过相同的默认关闭验证路径恢复。
安全与路由状态
- 凭证在保存前加密,所有响应都会脱敏。
- 新建、恢复或重新启用的凭证,在验证和现有价格、结算门禁通过前不会参与路由。
- 上游验证失败时凭证保持
failed,不会静默开放路由。 - 撤销 Supplier Token 后,使用该 Token 的后续请求会立即被拒绝。
- Supplier Token 不能管理其他用户的凭证、创建 Gateway API Key、调用模型或访问 Admin API。
底层供应商和模型协议见资源提供方指南。