安全

查看源文件

通过vLLM-MindSpore插件在 Ascend 上使能推理服务时,由于服务化、节点通信、模型执行等必要功能需要使用一些网络端口,因此会存在安全相关的一些问题。

服务化端口配置

使用vLLM-MindSpore插件启动推理服务时,需要相关 IP 与端口信息,包括:

  1. host: 配置服务关联的IP地址,默认值为 0.0.0.0

  2. port: 配置服务关联的端口,默认值为 8000

  3. data-parallel-address: 配置数据并行管理IP,默认值为 127.0.0.1

    仅在使能了多节点数据并行的vLLM中生效。

  4. data-parallel-rpc-port: 配置数据并行管理端口,默认值为 29550

    仅在使能了多节点数据并行的vLLM中生效。

节点间通信

通过vLLM-MindSpore插件进行多节点部署时,使用默认配置进行节点间的通信是不安全的,包括以下场景:

  1. MindSpore分布式通信。

  2. 模型TP、DP并行下的通信。

为了保证其安全性,应该部署在有足够安全的隔离网络环境中。

vLLM 中关于节点间通信的可配置项

  1. 环境变量

    • VLLM_HOST_IP: 可配置vLLM中进程间用于通信的IP地址。主要作用场景是传递给运行框架进行分布式通信组网。

    • VLLM_DP_MASTER_IP: 设置数据并行主节点IP地址(非服务化启动数据并行场景),默认值为 127.0.0.1

    • VLLM_DP_MASTER_PORT: 设置数据并行主节点端口(非服务化启动数据并行场景),默认值为 0

  2. 数据并行配置项

    • data_parallel_master_ip: 设置数据并行时的主节点IP地址,默认值为 127.0.0.1

    • data_parallel_master_port: 设置数据并行时的主节点端口,默认为 29500

执行框架分布式通信

需要注意的是,vLLM-MindSpore插件当前通过MindSpore进行分布式通信,与其相关的安全问题应该参考 MindSpore官网

安全建议

  1. 网络隔离

    • 在隔离的专用网络上部署vLLM节点。

    • 通过网络分段防止未经授权的访问。

    • 设置恰当的防火墙规则。如:

      • 除了vLLM API服务监听的端口外,阻止所以其他连接。

      • 确保用于内部的通信端口仅被信任的主机或网络访。

      • 不向公共互联网或不受信任的网络暴露内部端口。

  2. 推荐配置行为

    • 总是配置相关参数,避免使用默认值,如通过 VLLM_HOST_IP 设置指定的IP地址。

    • 设定防火墙规则,只允许必要的端口有访问权限。

  3. 管理访问权限

    • 在部署环境实施物理层和网络层的访问限制。

    • 管理好身份验证和授权。

    • 所有系统组件的权限管理上,遵循最小权限原则。

参考