如何防止AWS Medialive生成的m3u8直播流通过Cloudfront被盗链?
Cloudfront 针对Medialive直播流的防盗链方案
核心配置策略
1. 签名URL/签名Cookie
这是适配持续直播场景的核心防盗链手段,能精准控制访问权限:
- 签名URL:用户登录后,后端服务(如Lambda)为其生成带有效期的m3u8链接,有效期可设为15分钟左右,过期自动失效,避免链接长期泄露。
- 签名Cookie:若不想频繁生成新URL,可在用户登录后由后端设置带有效期的签名Cookie,Cloudfront验证Cookie合法后才允许访问,适配长时长直播场景。
- 配置要点:在Cloudfront分发中开启Restrict Viewer Access,选择对应签名类型(URL或Cookie),关联AWS KMS密钥或Cloudfront密钥对。
2. Referrer 访问限制
在Cloudfront行为的Origin Request Policy中添加Referer校验规则:
- 仅允许你的网站域名作为Referer(如
https://your-domain.com/*),阻断其他网站直接嵌入链接的盗链行为。 - 注意:Referer可被伪造,建议和签名机制配合,作为第二层防护。
3. Lambda@Edge 自定义校验
针对直播流的m3u8和ts分片做细粒度权限校验:
- Viewer Request 阶段:校验用户登录状态(如检查自定义Cookie,与后端用户服务交互验证),非法请求直接返回403。
- Origin Request 阶段:动态校验请求合法性,确保只有授权请求能拉取直播流,适配24×7不间断直播的低延迟需求。
4. 屏蔽源站直接访问
确保Medialive的输出(如推送到MediaStore或S3的直播流)仅对Cloudfront开放:
- 若用MediaStore:配置容器访问策略,仅允许Cloudfront服务角色访问。
- 若用S3:设置桶策略,拒绝除Cloudfront OAI(Origin Access Identity)外的所有访问,防止绕过Cloudfront直接获取源流。
额外优化建议
- 直播流的m3u8、ts分片使用随机命名,避免固定路径被猜测。
- 定期轮换Cloudfront签名密钥,降低密钥泄露风险。
- 监控Cloudfront访问日志,排查陌生IP的异常请求,及时调整防护策略。
内容的提问来源于stack exchange,提问作者Charles
相关产品推荐
相关产品推荐

