• 文档 >
  • TorchServe 令牌授权 API
快捷方式

⚠️ 注意:有限维护

本项目不再积极维护。虽然现有版本仍然可用,但没有计划进行更新、错误修复、新功能或安全补丁。用户应注意,漏洞可能不会得到解决。

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 标志来禁用令牌授权。

  • config.properties 文件:使用 disable_token_authorization 并设置为 true 可禁用,设置为 false 可启用令牌授权。

环境变量、命令行和 config 文件之间的优先级遵循以下 TorchServe 标准

  • 示例 1

    • config 文件:disable_token_authorization=false

      命令行:torchserve --start --ncs --model-store model_store --disable-token-auth

      结果:通过命令行禁用令牌授权,但通过 config 文件启用,最终结果是令牌授权被禁用。命令行具有优先级

  • 示例 2

    • config 文件:disable_token_authorization=true

      命令行:torchserve --start --ncs --model-store model_store

      结果:通过 config 文件禁用令牌授权,但命令行未配置,最终结果是令牌授权被禁用。

配置

  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 http://localhost: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。有关 API 的使用,请参阅第 4 节。

  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. 三个令牌为所有者提供了最大的使用灵活性,并使他们能够根据需要调整令牌的使用。如果用户只需要对已加载的模型运行推理,服务器所有者可以向用户提供推理令牌。如果所有者希望用户能够添加和删除模型,服务器所有者还可以向其提供管理密钥。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源