ALB扩展版支持API Key入站身份认证,在请求转发至后端大模型服务前验证凭证有效性,拒绝未授权访问,保护AI服务安全。
方案架构
扩展版ALB实例接收客户端请求,转发规则根据HTTP标头匹配请求。API Key认证组件通过服务扩展关联转发规则,在转发动作前执行:从HTTP请求头中提取API Key,与预配置的凭证进行比对,匹配成功时允许转发至后端AI服务;未匹配或请求未提供API Key时直接返回401响应,阻止请求继续转发。
-
扩展版ALB实例:提供负载均衡和流量转发能力。
-
AI类型服务器组:对接后端大模型服务。
-
HTTPS监听:接收客户端请求。
-
转发规则:根据HTTP标头条件匹配请求并转发。
-
服务扩展:通过API Key认证组件实现入站身份认证和转发控制。
适用范围
-
用户已获取ALB扩展版公测资格。
-
用户已在华北6(乌兰察布)地域创建一个专有网络VPC,分别在可用区A和可用区B创建一个交换机,且交换机已开通公网SNAT(用于AI服务器组调用公网大模型)。
-
用户已开通阿里云百炼并获取了API Key。
-
用户已准备好与自定义域名匹配的服务器证书。非阿里云购买的证书需要上传到阿里云证书服务。
操作步骤
1.创建扩展版ALB实例
-
登录ALB控制台,选择华北6(乌兰察布)地域,单击创建应用型负载均衡。
-
在购买页完成以下配置,单击立即购买。
-
地域:选择华北6(乌兰察布)。
-
实例网络类型:选择公网。
-
VPC和可用区:选择目标VPC,勾选乌兰察布 可用区A和乌兰察布 可用区B后选择对应交换机,并自动分配公网IP。
-
协议版本:选择IPv4。
-
功能版本(实例费):选择扩展版。
-
-
在确认订单页面确认实例配置详情,单击立即开通。
2.创建AI类型服务器组
创建AI类型服务器组,对接阿里云百炼。
-
在服务器组控制台,单击创建服务器组,服务器组类型选择AI服务,输入名称如
sgp-ai-qwen,单击创建。 -
在服务器组创建成功对话框单击添加后端服务器。
-
在添加AI服务对话框完成以下配置,单击确定。
-
大模型供应商:选择阿里云百炼。
-
服务地址:选择大模型供应商后自动填充。
-
API Key:填入从阿里云百炼平台获取的API Key。
-
3.创建监听
-
在ALB控制台,单击目标实例ID进入实例详情页。在监听页签单击创建监听。
-
在配置监听步骤,选择监听协议为HTTPS,监听端口填写
443,完成后单击下一步。 -
在配置SSL证书步骤,选择与自定义域名匹配的服务器证书,单击下一步。
-
在选择服务器组步骤,依次选择AI服务类型和服务器组
sgp-ai-qwen,完成后单击下一步。此处选择的服务器组将用于监听的默认规则,即在请求未命中其他转发规则时处理请求,用户可根据实际需求进行调整。
-
在配置审核步骤,确认配置并单击提交。
4.创建服务扩展
创建服务扩展并添加API Key认证组件,从HTTP标头提取API Key并应用入站身份认证。
-
在服务扩展控制台,单击创建服务扩展。在服务扩展配置区域,输入服务扩展名称如
ext-apikey-auth。 -
扩展类型默认选择插件,组件名称下拉选择API Key认证。配置认证策略,完成后单击创建。
-
凭证来源:默认选择Authorization:Bearer<token> 。
此处的
<token>表示客户端请求时在Authorization: Bearer后填入API Key的位置,ALB会从此处提取并验证API Key。 -
生成方式:默认选择系统生成。
-
超时时间(毫秒)和处理策略:本文保持默认值
1000和终止,用户可按需调整。
凭证来源支持多种方式:默认的Authorization:Bearer<token> 、自定义HTTP标头、自定义查询字符串或自定义Cookie参数。用户可根据实际需求选择。
系统生成方式会自动生成API Key凭证,创建完成后可在服务扩展详情页查看和复制凭证。用户也可选择自定义方式,手动输入API Key。
-
5.配置转发规则
在监听上创建转发规则,添加HTTP标头条件并关联服务扩展。
-
在ALB控制台,单击目标实例ID进入实例详情页。切换到监听页签后,单击目标监听ID进入监听详情页,再切换到转发规则页签。
-
单击插入新规则,完成以下配置后单击确定。
-
转发条件:选择HTTP标头,键是
k,值是v。k: v仅作示例,用于生产时用户可按需配置HTTP标头键值对,或使用其他类型的转发条件。 -
服务扩展(可选):默认使用已有服务扩展,下拉选择
ext-apikey-auth。 -
转发动作:选择转发至AI服务服务器组
sgp-ai-qwen。
-
转发规则创建后,包含HTTP标头k: v的请求会命中该规则,服务扩展从HTTP请求头Authorization中提取<token>作为API Key凭证进行比对认证,认证通过后转发至服务器组sgp-ai-qwen。
6.设置域名解析
将自有域名通过CNAME解析指向ALB实例的DNS名称,客户端通过自有域名访问ALB。
本文以阿里云云解析DNS为例,对于非阿里云注册域名,需先将域名添加到云解析控制台。
7.验证测试
使用curl命令发送请求验证API Key认证功能,请求需满足以下条件:
-
包含转发规则匹配标头
k: v:用于匹配关联了服务扩展的转发规则。 -
符合OpenAI兼容协议:请求路径为
/v1/completions、/v1/chat/completions或/v1/embeddings且整体格式符合规范。
以下测试命令中的域名ai.example.com为示例域名,实际测试时请替换为步骤六中配置的真实域名,需确保域名解析已生效。
请求携带正确凭证
即请求包含Authorization: Bearer <token>头字段,其中<token>为步骤四中系统生成的API Key凭证。
curl -v \
-H "k: v" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-turbo",
"messages": [
{
"role": "user",
"content": "你是谁"
}
]
}' \
https://ai.example.com/v1/chat/completions
请求成功时,返回HTTP 200状态码和AI服务响应:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "你好!我是千问,是阿里巴巴集团旗下的通义实验室自主研发的超大规模语言模型..."
},
"finish_reason": "stop",
"index": 0
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 14,
"completion_tokens": 53,
"total_tokens": 67
},
"model": "qwen-turbo"
}
请求携带错误凭证或请求不携带凭证
请求携带错误凭证
即请求包含Authorization: Bearer <token>头字段,但其中<token>非正确凭证。
curl -v \
-H "k: v" \
-H "Authorization: Bearer wrong-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-turbo",
"messages": [
{
"role": "user",
"content": "你是谁"
}
]
}' \
https://ai.example.com/v1/chat/completions
请求不携带凭证
即请求不包含Authorization: Bearer <token>头字段。
curl -v \
-H "k: v" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-turbo",
"messages": [
{
"role": "user",
"content": "你是谁"
}
]
}' \
https://ai.example.com/v1/chat/completions
请求失败时,返回HTTP 401状态码,响应体包含认证失败信息。
HTTP响应头:
HTTP/2 401
content-length: 29
content-type: text/plain
date: Wed, 21 Jan 2026 05:58:31 GMT
HTTP响应体:
Client authentication failed
响应说明:
-
HTTP状态码:
401,表示请求因未通过身份认证被拒绝。 -
响应体:纯文本格式的
Client authentication failed提示信息,表明客户端身份认证失败。
更多信息
计费说明
ALB扩展版支持的地域
区域 | 地域 | 可用区 |
中国 | 华北6(乌兰察布) | 可用区A、可用区B、可用区C |
华东1(杭州) | 可用区J、可用区K | |
亚太 | 新加坡 | 可用区A、可用区B、可用区C |
欧洲与美洲 | 德国(法兰克福) | 可用区A、可用区B |
使用建议
-
API Key管理:定期轮换API Key,避免长期使用同一凭证。使用系统生成方式时,妥善保管生成的API Key,避免泄露。
-
凭证来源选择:根据实际需求选择合适的凭证来源。默认的Authorization:Bearer<token>方式符合OpenAI兼容协议,适用于大多数场景。如需自定义,建议使用自定义HTTP标头或自定义查询字符串方式,避免在URL中暴露API Key。
常见问题
报错upstream connect error or disconnect/reset before headers. reset reason: connection timeout
此报错通常为后端服务不可达,请确认ALB实例所在交换机已正确配置SNAT,从而确保ALB能将请求转发到公网的百炼大模型。
已配置API Key认证,请求不带凭证却可以成功
-
确认转发条件与请求格式匹配且转发规则具备足够高的优先级,确保需要进行认证的请求能命中转发规则。
-
确认服务扩展正确添加了API Key认证组件且已关联转发规则。