全部產品
Search
文件中心

Server Load Balancer:API Key入站身份認證實踐

更新時間:Aug 12, 2026

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

方案架構

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

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

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

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

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

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

適用範圍

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

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

  • 使用者已開通阿里雲百鍊並擷取了API Key,且已將該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建立的身份憑證。

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

華北2(北京)

可用性區域I、可用性區域K、可用性區域L

華東2(上海)

可用性區域B、可用性區域F

中國香港

可用性區域B、可用性區域C、可用性區域D

亞太地區

新加坡

可用性區域A、可用性區域B、可用性區域C

日本(東京)

可用性區域B、可用性區域C、可用性區域E

馬來西亞(吉隆坡)

可用性區域A、可用性區域B、可用性區域C

歐美地區

德國(法蘭克福)

可用性區域A、可用性區域B

美國(矽谷)

可用性區域A、可用性區域B

中東

阿聯酋(杜拜)

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