• Docs >
  • TorchServe 令牌授權 API
Shortcuts

TorchServe 令牌授權 API

TorchServe 現在預設強制執行令牌授權

TorchServe 預設強制執行令牌授權,這表示在呼叫 API 時需要提供正確的令牌。這是一項安全功能,旨在解決未經授權 API 呼叫的疑慮。這適用於未經授權的使用者可能嘗試存取正在執行的 TorchServe 執行個體的狀況。預設行為是啟用此功能,此功能會建立一個金鑰檔案,其中包含用於 API 呼叫的適當令牌。使用者可以停用此功能,以防止 API 呼叫需要令牌授權 (如何停用),但使用者需注意,這會使 TorchServe 面臨潛在的未經授權 API 呼叫風險。

如何設定和停用令牌授權

  • 全域環境變數:使用 TS_DISABLE_TOKEN_AUTHORIZATION 並設定為 true 以停用,以及 false 以啟用令牌授權。請注意,必須在 config.properties 中設定 enable_envvars_config=true,才能使用全域環境變數

  • 命令列:命令列只能用於停用令牌授權,方法是新增 --disable-token-auth 旗標。

  • 設定屬性檔案:使用 disable_token_authorization 並設定為 true 以停用,以及 false 以啟用令牌授權。

環境變數、cmd 和設定檔之間的優先順序遵循以下 TorchServer 標準

  • 範例 1

    • 設定檔:disable_token_authorization=false

      cmd line: torchserve --start --ncs --model-store model_store --disable-token-auth

      結果:透過命令列停用令牌授權,但透過設定檔啟用,導致令牌授權被停用。命令列優先

  • 範例 2

    • 設定檔:disable_token_authorization=true

      cmd line: torchserve --start --ncs --model-store model_store

      結果:透過設定檔停用令牌授權,但未透過命令列設定,導致令牌授權被停用。

組態

  1. Torchserve 將預設啟用令牌授權。預期的日誌陳述式 main org.pytorch.serve.http.TokenAuthorizationHandler - Token Authorization Enabled

  2. 在目前的工作目錄中,將會產生一個檔案 key_file.json

    1. 金鑰檔案範例

  {
  "management": {
    "key": "B-E5KSRM",
    "expiration time": "2024-02-16T21:12:24.801167Z"
  },
  "inference": {
    "key": "gNRuA7dS",
    "expiration time": "2024-02-16T21:12:24.801148Z"
  },
  "API": {
    "key": "yv9uQajP"
  }
}
  1. 有 3 個金鑰,每個金鑰都有不同的用途。

    1. 管理金鑰:用於管理 API。範例:curl https://127.0.0.1:8081/models/densenet161 -H "Authorization: Bearer I_J_ItMb"

    2. 推論金鑰:用於推論 API。範例:curl http://127.0.0.1:8080/predictions/densenet161 -T examples/image_classifier/kitten.jpg -H "Authorization: Bearer FINhR1fj"

    3. API 金鑰:用於令牌授權 API。請查看第 4 節以了解 API 用途。

  2. API 旨在產生新金鑰,以取代管理金鑰或推論金鑰。

    1. 管理範例:curl localhost:8081/token?type=management -H "Authorization: Bearer m4M-5IBY" 將取代 key_file 中的目前管理金鑰,並更新到期時間。

    2. 推論範例:curl localhost:8081/token?type=inference -H "Authorization: Bearer m4M-5IBY"

    使用者將必須使用上述其中一個 API。

  3. 當使用者關閉伺服器時,key_file 將會被刪除。

注意事項

  1. 請勿修改金鑰檔案。修改金鑰檔案可能會影響檔案的讀取和寫入,進而導致新金鑰無法正確顯示在檔案中。

  2. 到期時間預設設定為 60 分鐘,但可以在 config.properties 中新增 token_expiration_min 來變更。範例:token_expiration_min=30

  3. 三個令牌讓擁有者在使用上具有最大的彈性,並使其能夠根據自身用途調整令牌。如果使用者只能對已載入的模型執行推論,伺服器的擁有者可以向使用者提供推論令牌。如果擁有者希望使用者新增和移除模型,也可以向擁有者提供管理金鑰。

Docs

Access comprehensive developer documentation for PyTorch

View Docs

Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

Resources

Find development resources and get your questions answered

View Resources