如何使用 AWS 为移动设备保护 HLS 流?
how to secure HLS streaming using AWS for mobile devices?
我们在 S3 存储桶中有一些视频。它们已使用 AWS Elastic Transcoder 转换为 .m3u8 / .ts
我们希望用户能够在网络应用和移动应用上流式传输这些视频。
现在,我们要保护这个流媒体,这样我们的视频就不会被盗版。
所以,我们提出的解决方案如下:
- 阻止 public 访问 S3 存储桶
- 创建一个以存储桶为源的云端分配
- 仅使用预签名 URLs/cookies
启用对此 CDN 的访问
- 对于网络应用程序:使用预签名的 cookie(由我们后端的端点设置,需要身份验证),以便它与 HLS 配合良好(因为应用程序需要每隔几秒获取一个新段)
但现在我们不知道如何使用我们的移动应用程序。我们不能使用预签名的 cookie,因为没有浏览器,我们不能使用预签名的 URLs,因为我们需要为每个需要获取的片段签名 URL。欢迎任何建议和解决方案。
对于我们类似的use-case:
- 我们使用 CloudFront url 而不是 S3 签名 url。因为 S3 签名 URL 在对象级别而不是文件夹级别有效。
- 对于付费视频,安全性和访问权限由 Lambda@Edge 应观众请求管理。
- 虽然我们在那个 lambda 中使用了 OAuth 和数据库,但令人惊讶的是,我们在 Lambda@Edge 上没有遇到任何瓶颈。对于未来的计划,我们考虑在 Lambda@Edge 中使用 Redis 进行无缝访问验证。
我们在 S3 存储桶中有一些视频。它们已使用 AWS Elastic Transcoder 转换为 .m3u8 / .ts 我们希望用户能够在网络应用和移动应用上流式传输这些视频。
现在,我们要保护这个流媒体,这样我们的视频就不会被盗版。
所以,我们提出的解决方案如下:
- 阻止 public 访问 S3 存储桶
- 创建一个以存储桶为源的云端分配
- 仅使用预签名 URLs/cookies 启用对此 CDN 的访问
- 对于网络应用程序:使用预签名的 cookie(由我们后端的端点设置,需要身份验证),以便它与 HLS 配合良好(因为应用程序需要每隔几秒获取一个新段)
但现在我们不知道如何使用我们的移动应用程序。我们不能使用预签名的 cookie,因为没有浏览器,我们不能使用预签名的 URLs,因为我们需要为每个需要获取的片段签名 URL。欢迎任何建议和解决方案。
对于我们类似的use-case:
- 我们使用 CloudFront url 而不是 S3 签名 url。因为 S3 签名 URL 在对象级别而不是文件夹级别有效。
- 对于付费视频,安全性和访问权限由 Lambda@Edge 应观众请求管理。
- 虽然我们在那个 lambda 中使用了 OAuth 和数据库,但令人惊讶的是,我们在 Lambda@Edge 上没有遇到任何瓶颈。对于未来的计划,我们考虑在 Lambda@Edge 中使用 Redis 进行无缝访问验证。