全部產品
Search
文件中心

Server Load Balancer:使用ALB擴充版實現API Key入站身份認證

更新時間:Feb 28, 2026

ALB擴充版支援API Key入站身份認證,在請求轉寄至後端大模型服務前驗證憑證有效性,拒絕未授權訪問,保護AI服務安全。

方案架構

擴充版ALB執行個體接收用戶端請求,轉寄規則根據HTTP標題匹配請求。API Key認證組件通過服務擴充關聯轉寄規則,在轉寄動作前執行:從HTTP要求標頭中提取API Key,與預配置的憑證進行比對,匹配成功時允許轉寄至後端AI服務;未匹配或請求未提供API Key時直接返回401響應,阻止請求繼續轉寄。

  • 擴充版ALB執行個體:提供負載平衡和流量轉寄能力。

  • AI類型伺服器組:對接後端大模型服務。

  • HTTPS監聽:接收用戶端請求。

  • 轉寄規則:根據HTTP標題條件匹配請求並轉寄。

  • 服務擴充:通過API Key認證組件實現入站身份認證和轉寄控制。

image

適用範圍

  • 使用者已擷取ALB擴充版公測資格

  • 使用者已在華北6(烏蘭察布)地區建立一個Virtual Private Cloud,分別在可用性區域A和可用性區域B建立一個交換器,且交換器已開通公網SNAT(用於AI伺服器組調用公網大模型)。

  • 使用者已開通阿里雲百鍊並擷取了API Key。

  • 使用者已註冊自訂網域名。本文計劃將ALB執行個體部署於華北6(烏蘭察布)地區,因此網域名稱需要完成ICP備案

  • 使用者已準備好與自訂網域名匹配的伺服器憑證。非阿里雲購買的認證需要上傳到阿里雲認證服務

操作步驟

1.建立擴充版ALB執行個體

  1. 登入ALB控制台,選擇華北6(烏蘭察布)地區單擊建立應用型負載平衡

  2. 在購買頁完成以下配置,單擊立即購買

    • 地區:選擇華北6(烏蘭察布)

    • 執行個體網路類型:選擇公網

    • VPC可用性區域:選擇目標VPC,勾選烏蘭察布 可用性區域A烏蘭察布 可用性區域B後選擇對應交換器,並自動分配公網IP

    • 協議版本:選擇IPv4

    • 功能版本(執行個體費):選擇擴充版

  3. 確認訂單頁面確認執行個體配置詳情,單擊立即開通

2.建立AI類型伺服器組

建立AI類型伺服器組,對接阿里雲百鍊。

  1. 伺服器組控制台,單擊建立伺服器組伺服器群組類型選擇AI服務,輸入名稱如sgp-ai-qwen,單擊建立

  2. 伺服器組建立成功對話方塊單擊添加後端伺服器

  3. 添加AI服務對話方塊完成以下配置,單擊確定

    • 大模型供應商:選擇阿里雲百鍊

    • 服務地址:選擇大模型供應商後自動填滿。

    • API Key:填入從阿里雲百鍊平台擷取的API Key。

3.建立監聽

  1. ALB控制台,單擊目標執行個體ID進入執行個體詳情頁。在監聽頁簽單擊建立監聽

  2. 配置監聽步驟,選擇監聽協議HTTPS監聽通信埠填寫443,完成後單擊下一步

  3. 配置SSL認證步驟,選擇與自訂網域名匹配的伺服器憑證,單擊下一步

  4. 選擇伺服器組步驟,依次選擇AI服務類型和伺服器組sgp-ai-qwen,完成後單擊下一步

    此處選擇的伺服器組將用於監聽的預設規則,即在請求未命中其他轉寄規則時處理請求,使用者可根據實際需求進行調整。
  5. 組態稽核步驟,確認配置並單擊提交

4.建立服務擴充

建立服務擴充並添加API Key認證組件,從HTTP標題提取API Key並應用入站身份認證。

  1. 服務擴充控制台,單擊建立服務擴充。在服務擴充配置地區,輸入服務副檔名稱ext-apikey-auth

  2. 擴充類型預設選擇外掛程式組件名稱下拉選擇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標題條件並關聯服務擴充。

  1. ALB控制台,單擊目標執行個體ID進入執行個體詳情頁。切換到監聽頁簽後,單擊目標監聽ID進入監聽詳情頁,再切換到轉寄規則頁簽。

  2. 單擊插入新規則,完成以下配置後單擊確定

    • 轉寄條件:選擇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。

本文以阿里雲Alibaba Cloud DNS為例,對於非阿里雲註冊網域名稱,需先將網域名稱添加到雲解析控制台

  1. ALB控制台,複製目標執行個體的DNS 名稱

  2. 登入網域名稱解析控制台,在目標網域名稱的操作列單擊解析设置。在解析设置頁面單擊添加记录

  3. 參考以下資訊添加CNAME記錄,完成後單擊确定

    • 记录类型:選擇CNAME

    • 主机记录:輸入欄位名首碼如ai。假設使用者自有根網域名稱為example.com,則訪問ALB的網域名稱為ai.example.com

    • 解析请求来源TTL时间:保持預設。

    • 记录值:輸入ALB執行個體的DNS名稱。

  4. 在彈出的解析变更确认對話方塊確認解析資訊,單擊確定

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擴充版:目前處於公測階段,使用者可免費體驗。

  • 公網訪問費用:公網NAT Gateway收取執行個體費和容量單位CU費。NAT Gateway和擴充版ALB執行個體綁定的EIP有獨立的計費規則,費用由EIP收取。

  • 網域名稱和DNS解析費用:除了需要支付網域名稱供應商的網域名稱費用外,在阿里雲配置DNS解析需要支付公網權威解析費用

  • 認證費用:從阿里雲購買認證或將認證上傳至阿里雲,需要支付伺服器憑證費用

  • 百鍊模型費用:調用百鍊大模型API需要支付費用。

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認證組件且已關聯轉寄規則。