前言
之前看到一篇報導,Cisco 發現全球一千多台 Ollama 伺服器外曝,近 2 成免認證即可執行模型推論,可能帶來重大安全風險。
延伸閱讀: Cisco揭露逾千臺Ollama伺服器外曝,近2成免認證可執行模型推論
所以我打算簡單來為 Ollama API 加上 API Key 身分驗證,但小麻煩的是目前 Ollama 本身不支援身分驗證。
核心團隊解釋到 Ollama 是一個 LLM 推理引擎,應該將不同功能分離,建議使用 HTTP Web 伺服器 (例如 Nginx 或 Caddy) 反向代理去做身分驗證。
(或有人推薦 ollama_proxy_server 工具)
延伸閱讀: Support for API_KEY based authentication #8536 | GitHub
我就以比較熟悉的 Nginx 來實做~
設定 API Key (Nginx)
打開 Nginx 的設定檔 nginx.conf。
(不知道這檔案放在哪裡的,自行 Google 就會知道了)
先設定 map 來指定哪些 API Key 可以 call Ollama API,$http_authorization 為 Nginx 內建變數,會自動抓取 headers 內 Authorization 的值。當 Authorization 的值完全等於其中一個 API Key 則 變數為 1,否則為 0。
| |
並透過 if 來驗證 Authorization header 是否帶有正確的 Bearer Token。
如果 header 沒有帶 Authorization 就回 401 "Unauthorized: Authorization header required";
如果驗證錯誤就回 401 "Unauthorized: Invalid API key"
| |
完整包含 Ollama 的設定大概如下:
| |
結語
透過以上簡單的設定,當我們使用 Ollama API 時,就需要在 headers 內代上 Authorization: Bearer sk-123456 做驗證,否則會在 Nginx 被阻擋下來。
從而保護我們 Ollama API 的安全~
對生成式 AI 感興趣的讀者,記得追蹤 FB 粉專『 IT空間 』,以免錯過最新的發文通知呦~🔔
參考:
Support for API_KEY based authentication · Issue #8536 · ollama/ollama | GitHub
How can I add api key authentication in nginx proxy? | Stack Overflow
世界越快,心則慢
🔻 如果覺得喜歡,歡迎在下方獎勵我 5 個讚~
