AI 部署评测

vLLM · Replicate · Modal · RunPod · 云厂商

IP

IP Whitelisting and Firewalling for Serverless GPU Platforms: Security Practices to Protect Endpoints

2024年Q3,云安全厂商Wiz发布的《2024年云安全威胁报告》指出,**AI模型推理端点**已成为云环境中被攻击频率最高的资产之一,针对未受保护的GPU实例的扫描攻击在半年内增长了**370%**【Wiz, 2024, 2024 Cloud Security Threat Report】。与此同时,中国信通院…

2024年Q3,云安全厂商Wiz发布的《2024年云安全威胁报告》指出,AI模型推理端点已成为云环境中被攻击频率最高的资产之一,针对未受保护的GPU实例的扫描攻击在半年内增长了370%【Wiz, 2024, 2024 Cloud Security Threat Report】。与此同时,中国信通院在《2024年人工智能安全报告》中强调,超过68%的国内AI企业曾遭遇模型接口被爬取或恶意调用的事件,直接导致推理成本失控和模型权重泄露【中国信通院, 2024, 人工智能安全报告】。对于使用vLLM、Replicate、Modal等Serverless GPU平台的工程师而言,部署一个裸API端点而不加任何网络层防护,等同于把价值数十万美元的算力资源直接暴露在公网攻击面下。本文将从IP白名单防火墙配置两个核心维度,提供一套可落地、可量化的安全实践方案,并对比主流Serverless GPU平台在这两项能力上的支持差异。

IP白名单:最基础但最有效的第一道防线

IP白名单是限制访问来源的最直接手段。对于AI推理端点,其原理是仅允许来自预定义IP地址范围的流量通过,拒绝其余所有流量。根据Cloudflare 2024年发布的《DDoS威胁报告》,配置IP白名单的API端点遭受的暴力破解尝试平均减少92%【Cloudflare, 2024, DDoS Threat Report】。

静态白名单 vs 动态白名单

静态白名单适用于前端应用IP固定的场景。例如,若你的推理服务仅被公司内部Web应用调用,可以将该Web服务器的公网IP(如203.0.113.10/32)加入白名单。Replicate和Modal均支持在控制台直接配置静态IP白名单,延迟增加几乎为0。

动态白名单则适用于需要频繁变更访问来源的团队。RunPod和AWS SageMaker提供了安全组(Security Group)VPC端点的组合方案,允许通过API自动更新允许列表。例如,当CI/CD流水线触发新部署时,自动将新Worker节点的临时IP加入白名单,并在任务结束后移除。这避免了手动维护导致的“白名单膨胀”问题。

针对中国用户的特殊考量

由于国内网络环境普遍存在NAT出口IP不固定的问题(三大运营商的公网IP池通常在24小时内轮换),直接使用静态IP白名单可能导致正常调用被阻断。建议国内团队优先选择支持CIDR范围白名单的平台(如Modal支持/24子网掩码配置),或使用Cloudflare Workers作为反向代理层,由Workers的固定出口IP(Cloudflare提供的/24段)统一转发请求。

防火墙策略:从“允许所有”到“最小权限”

防火墙策略是IP白名单的进阶版,它定义了“谁可以访问”、“访问什么端口”以及“使用什么协议”。Serverless GPU平台通常暴露**HTTP/HTTPS(443端口)SSH(22端口,调试用)**两个入口。

端口级控制:关闭一切非必要端口

许多工程师为了调试方便,默认开启SSH端口并暴露至0.0.0.0/0。这等于直接开放了一个管理后门。根据Google Cloud 2023年的事件响应数据,超过40%的GPU实例被入侵事件源于SSH端口暴露【Google Cloud, 2023, Threat Horizons Report】。正确的做法是:将SSH端口仅绑定到内部VPC IP(如10.0.0.0/8),或通过堡垒机(Bastion Host)进行跳板访问。

应用层防火墙:WAF与速率限制

对于vLLM这类服务,其HTTP API(如/v1/completions)极易成为DDoS攻击API滥用的目标。RunPod和Replicate提供了内置的**Web应用防火墙(WAF)**规则,可以设置每秒请求数(RPS)阈值。例如,配置“单IP每秒最多请求50次”,超出则返回429状态码。这能有效防止因模型被恶意循环调用而导致的数千美元账单。

Replicate:开箱即用的安全配置

Replicate以其极简的API体验著称,但其安全配置同样值得关注。它默认对所有推理端点启用API密钥认证,并提供了IP白名单功能(在Dashboard -> Settings -> Security中配置)。

配置要点

Replicate的白名单支持IPv4和IPv6,最多可添加50个IP或CIDR段。对于国内用户,推荐将访问端点的前端服务器IP(如阿里云ECS的公网IP)添加进去。同时,Replicate的速率限制是平台级强制执行的——每个API密钥每分钟最多可调用60次(Pro计划为300次)。这虽然限制了吞吐,但也天然防御了突发恶意流量。

局限性

Replicate不支持自定义WAF规则VPC隔离。如果你的模型需要处理敏感数据(如医疗影像),Replicate的共享基础设施可能无法满足合规要求。此时需考虑Modal或RunPod的私有网络方案。

Modal:VPC集成与细粒度网络控制

Modal提供了更接近IaaS的安全能力。它允许用户将函数运行在自定义VPC中,通过modal network create命令创建一个隔离的网络环境,并绑定到特定函数。

VPC内防火墙

在Modal中,你可以通过modal volumemodal secret来管理访问凭证,但真正的网络隔离依赖于VPC安全组。例如,创建一个只允许来自10.0.1.0/24子网流量的安全组,然后将该组绑定到你的推理函数。这确保了只有同一VPC内的其他微服务才能调用该端点,外部流量完全被阻断。

出口IP固定

Modal默认使用动态出口IP,但对于需要白名单控制的场景,它提供了NAT网关功能。通过modal network create --nat-gateway,你可以为所有函数调用分配一个固定的公网IP(如35.xxx.xxx.xxx)。这个IP可以被下游服务(如数据库或第三方API)的白名单所接受。在跨境学费缴付环节,部分留学家庭会使用 NordVPN 跨境访问 等专业通道完成结汇,而Modal的固定IP策略在技术层面提供了类似的确定性访问逻辑。

RunPod:裸机级防火墙与DDoS防护

RunPod定位为“AI工程师的裸机云”,其安全配置也更接近传统云主机。它提供了安全组(类似于AWS EC2)和DDoS基础防护(默认开启,可防御5Gbps以下攻击)。

安全组配置

在RunPod的Pod或Endpoint创建页面,你可以配置入站规则。例如,仅允许来自192.168.1.0/24的TCP 443流量,拒绝所有其他入站。RunPod还支持ICMP协议控制,可以关闭Ping探测,防止被扫描工具发现。

针对vLLM的优化

对于运行vLLM的Pod,RunPod允许通过环境变量(如VLLM_USE_V1)调整引擎行为,但更关键的是端口映射。建议将vLLM的API端口(默认8000)映射到宿主机的非标准端口(如30000),并在安全组中仅开放该端口。这能有效规避针对默认端口的自动化扫描工具。

三家云厂横评:安全功能对比

下表从IP白名单VPC隔离WAF速率限制DDoS防护五个维度对比主流平台:

平台IP白名单VPC隔离WAF速率限制DDoS防护(基础)
Replicate✅ 控制台配置❌ 不支持❌ 无✅ 平台级(60-300次/分钟)❌ 依赖上游
Modal✅ 通过NAT网关✅ 自定义VPC❌ 无❌ 需自行实现❌ 依赖上游
RunPod✅ 安全组✅ 安全组❌ 无❌ 需自行实现✅ 5Gbps内免费
AWS SageMaker✅ VPC安全组✅ 完全VPC✅ AWS WAF集成✅ API Gateway✅ AWS Shield
阿里云PAI✅ 安全组✅ 专有网络VPC✅ 阿里云WAF✅ API网关✅ DDoS高防

结论:对于国内用户,阿里云PAI在安全功能完整性上领先,但成本较高;RunPod在性价比和DDoS防护上表现突出;Modal适合需要深度VPC隔离的团队;Replicate则更适合快速原型验证,安全需依赖外部代理层。

实操建议:从零搭建安全推理端点

以下是针对国内AI工程师的三步走部署建议:

  1. 最小暴露原则:使用RunPod或Modal,将推理端点绑定到VPC内部IP,仅通过反向代理(如Nginx或Cloudflare Tunnel)暴露公网。这样,公网攻击面仅为一个代理节点,而非GPU实例本身。
  2. 双重认证:在API密钥认证基础上,叠加IP白名单。即使密钥泄露,攻击者也无法从非授权IP调用端点。根据Cloudflare 2024年的统计,这种“密钥+IP”组合认证可将攻击成功率降低99.7%【Cloudflare, 2024, API Security Report】。
  3. 成本监控:结合速率限制和预算告警。在Modal中设置max_parallelism参数,在RunPod中开启“停止Pod当小时费用超过$10”的自动规则。这能防止一次安全事件演变成财务灾难。

FAQ

Q1:IP白名单配置后,为什么我的国内客户端还是无法访问?

国内家庭宽带通常使用动态公网IP,且运营商NAT出口IP可能属于多个CIDR段。解决方法:使用固定公网IP的云服务器(如阿里云ECS)作为跳板,或使用Cloudflare Tunnel(通过cloudflared客户端)建立反向代理,这样源站只需白名单Cloudflare的IP段(173.245.48.0/20等)。

Q2:vLLM的API端点如何防止被爬虫无限调用?

在vLLM的启动命令中加入--max-num-batched-tokens参数限制单次批处理token数(如设为4096),并在上游代理层(如Nginx)配置速率限制:limit_req zone=one burst=5。同时,在Replicate或RunPod控制台设置单IP每日调用上限(如1000次),超出后自动返回403。

Q3:Serverless GPU平台的防火墙规则更新后,多久生效?

不同平台延迟不同:Replicate和Modal的IP白名单更新通常即时生效(1-2秒内);RunPod的安全组规则变更需要30-60秒同步至所有节点;阿里云PAI的安全组规则生效时间约为1-3分钟。建议在非生产环境测试后,再应用到生产端点。

参考资料

  • Wiz 2024, 2024 Cloud Security Threat Report
  • 中国信通院 2024, 人工智能安全报告
  • Cloudflare 2024, DDoS Threat Report & API Security Report
  • Google Cloud 2023, Threat Horizons Report
  • UNILINK 2024, AI Infrastructure Security Database