服务提供方密钥轮换
轮换服务提供方密钥会替换 AISIX 访问上游服务提供方时使用的凭证。调用方无 需修改调用方 API Key 或模型别名。
如果所有依赖模型和透传路由都可以同时切换到新凭证,请原地轮换服务提供方密钥。如果希望逐步迁移这些资源,并保留旧凭证用于回滚,请创建替代服务提供方密钥。
前置条件
开始前请准备:
- 替代上游凭证。
- 使用该服务提供方密钥的全部模型与服务提供方透传路由清单。原地修改会影响所有这些依赖资源。
- 对于 AISIX Enterprise 或 AISIX Cloud,需要管理服务提供方密钥和模型的权限;如果使用替代密钥迁移透传路由,还需要更新受影响路由的权限。
- 对于开源 AISIX 网关,需要访问网关进程环境和声明式资源文件。
- 如果替换凭证的同时还会更改上游端点或协议,请查看服务提供方兼容性。
选择轮换策略
| 策略 | 影响 | 适用场景 |
|---|---|---|
| 原地轮换 | 保留服务提供方密钥引用,并同时切换所有依赖模型和透传路由。 | 可以快速验证替代凭证,并接受一次协调切换。 |
| 替代服务提供方密钥 | 在模型和透传路由迁移到新密钥期间保留两套凭证。 | 需要渐进发布、逐资源验证或简单直接的回滚路径。 |
在 AISIX Enterprise 或 AISIX Cloud 中轮换服务提供方密钥
控制面将服务提供方凭证作为只写密钥存储。读取操作绝不会返回已存储凭证。更新现有服务提供方密钥的密钥会保留其 ID,因此依赖模型和透传路由无需更改。
调用方无需获得新的调用方 API Key,应用可以继续使用相同的模型别名和透传路径。
原地轮换
在控制台中:
- 打开 服务商密钥,并在目标密钥上选择 编辑。
- 在 上游 API 密钥 中输入替代值。该字段为空,因为控制面不会返回已存储密钥;留空会保留当前值。对于包含多个凭证字段的服务提供方,请提供所有必填字段,并在存在替代方案时选择一种凭证方式。凭证会整体替换,而不是逐字段替换。
- 选择 保存。控制面会加密替代凭证,并将其下发到允许使用该密钥的每个环境。关于保存的配置如何成为有效网关配置,参见资源下发。
- 通过每个受影响模型和服务提供方透传路由发送请求,确认上游接受新凭证。
要自动执行相同操作,请使 用具有写入权限的 Admin Token。完整请求和响应 Schema 参见 AISIX Enterprise / Cloud Admin API 参考。
导出控制面连接信息:
# AISIX_CP 是 Admin API 基础 URL;请包含 /api,且不要以斜杠结尾。
# 本地 AISIX Enterprise 快速入门使用 http://localhost:8080/api。
export AISIX_CP="YOUR_AISIX_CONTROL_PLANE_API_URL"
export AISIX_TOKEN="YOUR_ADMIN_TOKEN"
export PROVIDER_KEY_ID="YOUR_PROVIDER_KEY_ID"
通过 api_key 发送替代明文密钥:
curl -sS -X PATCH "$AISIX_CP/provider_keys/$PROVIDER_KEY_ID" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_NEW_UPSTREAM_API_KEY"
}'
省略 api_key 会保留已存储密钥,空值会被拒绝。
对于包含多个凭证字段的服务提供方,请在 config 中发送完整替代凭证。以下示例轮换 Amazon Bedrock 凭证:
curl -sS -X PATCH "$AISIX_CP/provider_keys/$PROVIDER_KEY_ID" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"config": {
"access_key_id": "YOUR_NEW_ACCESS_KEY_ID",
"secret_access_key": "YOUR_NEW_SECRET_ACCESS_KEY",
"region": "us-west-2"
}
}'
结构化凭证会整体替换,因此请包含服务提供方要求的每个字段。例如,Google Vertex AI 要求提供 project、region,并且必须在 access_token 和 service_account_json 中二选一。
警告
原地轮换会让所有依赖模型和透传路由切换到替代凭证。如果凭证无效,这些资源会持续失败,直到提供可用凭证。需要在验证期间保留旧凭证时,请使用替代服务提供方密钥。