GPUtw 說明文件

API 金鑰

建立有權限範圍的 bearer key,用於 REST API 自動化。

建立金鑰

開啟控制台 → API 金鑰,選擇權限組合或自訂 scopes,並複製產生的密鑰。密鑰只會顯示一次。

驗證

範例
curl -H "Authorization: Bearer gputw_live_..." https://gputw.ai/api/instances

權限範圍

所有 API 路徑都會檢查 scope。金鑰只能存取其 scope 允許的範圍,而且僅限已正式開放給 API 的路徑。

  • catalog:read: 瀏覽 GPU 與可用機器
  • instances:read: 列出與讀取執行個體、資源用量、狀態、事件、執行紀錄與日誌
  • instances:create: 部署自動化
  • instances:manage: 停止、刪除、重啟與重新設定
  • instances:exec: 在容器內執行指令——請見下方說明
  • ports:manage: HTTP 連接埠與 raw TCP/UDP exposure
  • vault:read / vault:write: 瀏覽與下載/上傳、重新命名與刪除
  • billing:read: 付款紀錄與帳務設定
  • org:read / org:manage: 讀取團隊/管理成員與設定
  • notifications:read: 讀取與標記通知
  • reservations:manage: 排隊預約
  • tickets:manage: 開立客服單
  • profile:read / profile:manage: 讀取帳戶/變更偏好設定(名稱、語系、通知設定)
  • keys:manage: API 金鑰管理

上傳權杖

「上傳權杖」組合只授予 vault:write。不需啟動任何執行個體,就能透過 HTTPS 寫入 /vault,讓腳本或 CI 直接推送資料集。

它刻意設計為唯寫,因為 CI 是憑證最不受信任的存放位置。從那裡外洩的權杖無法部署執行個體、無法啟動 GPU 花費,也讀不到、下載不了任何一個檔案——能存取 GET /vault/listGET /vault/download-zip 的是 vault:read,而這個組合並不包含它。

Warning

唯寫不等於無害。vault:write 可以覆寫與刪除檔案,也會讓 Vault 用量增加(依容量計費)。請比照其他憑證定期輪替。

範例
curl -X POST "https://upload.gputw.ai/api/vault/upload?path=datasets" \
  -H "Authorization: Bearer gputw_live_..." \
  -F "[email protected]"

如上例,請將上傳送往傳輸主機:它直接連到儲存空間,不經過 CDN,因此單一請求沒有 100 MB 上限。同一個路由在主網域也能用,但會受該上限限制。超過 90 MB 的檔案請改用可續傳的分段上傳 API。詳見 Vault 儲存空間

唯一需要讀取 session 的路徑——續傳與等待合併用的 GET /vault/uploads/<id>——同時接受兩種 vault scope,因此唯寫權杖仍能完成自己發起的上傳。完整上傳流程與 SCP 替代方案請見 Vault 儲存空間

API 金鑰無法執行的操作

部分操作無論金鑰擁有哪些 scope 都無法使用,因為沒有任何 scope 能讓它們適合自動化。請改用瀏覽器登入操作。

  • SSH 金鑰: 新增金鑰等同取得帳號下所有執行中執行個體的 root SSH 權限,會繞過金鑰原本的 scope 限制
  • 帳戶安全設定: 變更密碼、變更 Email 與刪除帳號
  • 建立與刪除團隊: 不可逆,且沒有自動化需求
  • 結帳付款: 涉及金流,且需要互動式轉導
  • 管理員 API: 一律不開放給使用者 API 金鑰

輪替或撤銷

若金鑰外洩,請立即輪替。撤銷金鑰會停止後續 API 存取,但不會影響瀏覽器登入狀態。

最小權限

請使用符合自動化需求的最小 scope。部署機器人通常需要 catalog:readinstances:readinstances:create。只讀取用量的監控程式僅需 instances:read。會停止、重啟或刪除執行個體的操作腳本需要 instances:manage

Warning

instances:exec 會以 root 身分在容器內執行指令。除了 full 之外的預設組合都不包含它,且每次呼叫都會寫入稽核紀錄。請勿授予共用或第三方自動化;確有需要時請另外簽發專用金鑰。

既有金鑰的權限異動

Info

Scope 檢查現已涵蓋整個 API,包含資料庫(Vault)、團隊、帳務、通知與預約等路徑。先前簽發的金鑰不含新增的 scope,因此原本可用的呼叫可能改為回傳 403,並在訊息中指出所需的 scope。請在 API 金鑰頁面更新該金鑰的 scope,或重新輪替。