1. 請務必為你帳戶中的每位團隊成員使用獨立的 API 金鑰。
API 金鑰是用作識別你向 API 發出的請求的獨特代碼。你的 API 金鑰只供你本人使用。分享 API 金鑰違反使用條款。
當你開始進行測試時,你可能會想將 API 存取權限擴展至團隊。OpenAI 不支援分享 API 金鑰。請在成員頁面邀請新成員加入你的帳戶,他們登入後便會很快收到自己專屬的金鑰。你亦可以為個別 API金鑰指派權限。
2. 切勿在瀏覽器或手機應用程式等用戶端環境中部署你的金鑰。
如果你在瀏覽器或手機應用程式等用戶端環境中暴露 OpenAI API 金鑰,惡意使用者便可取得該金鑰並代你發出請求——這可能導致意外收費或令某些帳戶資料外洩。請求應一律透過你自己的後端伺服器轉送,讓你可以安全保存 API 金鑰。
3. 切勿將你的金鑰提交到你的程式碼庫
把 API 金鑰提交到原始碼是憑證外洩的常見途徑。對於擁有公開程式碼庫的人來說,這是你可能在不知情下把金鑰分享至互聯網的常見方式。私人程式碼庫雖然較安全,但資料外洩事件同樣可能導致你的金鑰洩露。因此,我們強烈建議使用環境變數作為主動的金鑰安全措施。
4. 以環境變數取代直接使用 API 金鑰
環境變數是在你的作業系統上設定,而非在應用程式內設定的變數。它由名稱和值組成。我們建議你將變數名稱設為 OPENAI_API_KEY。只要在團隊中統一使用這個變數名稱,你便可提交及分享程式碼,而無需冒著暴露 API 金鑰的風險。
Windows 設定
選項 1: 透過 cmd 提示字元設定你的「OPENAI_API_KEY」環境變數
在 cmd 提示字元中執行以下指令,並以你的API 金鑰取代 <yourkey>:
setx OPENAI_API_KEY "<yourkey>"這會套用到之後開啟的 cmd 提示字元視窗,因此你需要開啟新的視窗,才能在 curl 中使用該變數。你可以開啟新的 cmd 提示字元視窗,然後輸入以下內容,以驗證此變數已設定:
echo %OPENAI_API_KEY%選項 2: 透過控制台設定你的「OPENAI_API_KEY」環境變數
1. 開啟 System 內容,然後選擇 Advanced system settings
2. 選擇 Environment Variables...
3. 在使用者變數區段(上方)中選擇 New… 。加入你的名稱/金鑰值配對,並以你的API 金鑰取代 <yourkey>。
變數名稱:OPENAI_API_KEY
變數值:<yourkey>Linux / MacOS 設定
選項 1: 使用 zsh 設定你的「OPENAI_API_KEY」環境變數
1. 在終端機中執行以下指令,並以你的API 金鑰取代 yourkey。
echo "export OPENAI_API_KEY='yourkey'" >> ~/.zshrc2. 使用新變數更新 shell:
source ~/.zshrc3. 使用以下指令確認你已設定環境變數。
echo $OPENAI_API_KEY輸出結果將會是你的 API 金鑰值。
選項 2: 使用 bash 設定你的「OPENAI_API_KEY」環境變數
依照選項 1 的指示進行,並將 .zshrc 改為 .bash_profile.
你已完成所有設定!你現在可以在 curl 中引用此金鑰,或在 Python 中載入它:
import os
import openai
openai.api_key = os.environ["OPENAI_API_KEY"]5. 使用金鑰管理服務
市面上有多種產品可安全管理機密 API 金鑰。這些工具讓你可控制誰能存取你的金鑰,並提升整體資料安全性。即使你的應用程式發生資料外洩事件,你的金鑰也不會被洩露,因為它們會被加密並於完全分開的位置管理。
對於將應用程式部署到正式環境的團隊,我們建議你考慮使用其中一種服務。
6. 監察你的帳戶使用情況,並在有需要時輪換金鑰
一旦 API 金鑰遭到洩露,他人便可在未經你同意下存取你帳戶的配額。這可能導致資料遺失、意外收費、每月配額耗盡,以及 API 存取中斷。
你團隊的使用情況可透過Usage頁面追蹤。如果你對濫用有任何疑慮,可採取以下幾項措施保護帳戶:
檢視使用情況,確認是否與團隊的工作相符。對於屬於多個組織的使用者(例如公司及個人),請確保該使用者已啟用追蹤,並已為使用情況及追蹤設定預設組織。
如果你認為金鑰已洩露,請立即在API Keys頁面輪換金鑰。對於在正式環境中運行應用程式的客戶,你亦需要相應更新金鑰值。
如需進一步調查,請透過help.openai.com聯絡我們。
7. 使用 IP allowlisting 限制 API 存取
IP allowlisting 可讓你限制哪些 IP 位址可存取你的 OpenAI API。啟用後,只會容許來自已設定 IP 位址或範圍的請求,其他請求即使包含有效 API 金鑰,也會被拒絕。
這可額外增加一層保護,確保你的 API 只可從可信任的基礎設施存取,例如你的後端伺服器或雲端環境。
如需更多資訊,請參閱OpenAI API 的 IP allowlisting 文章。
