我们希望从少数可用的AWS区域提供大量视频文件。目标受众来自全球多个地点。连接速度无法保证。因此绝对需要CDN(最好是CloudFront)。
视频需要受到保护,因此只有在用户通过身份验证并有权查看这些视频后才能播放这些视频。显然,谁可以看到什么和什么时候是应用程序的一部分的逻辑。从原点流式传输视频会慢得令人无法接受。将视频公开并可缓存也不是一种选择。
人们如何解决这类问题?
答案 0 :(得分:11)
Amazon CloudFront还提供Serving Private Content through CloudFront来解决您的使用案例:
许多通过互联网分发内容的公司都希望如此 限制对文档,业务数据,媒体流或内容的访问 适用于选定用户,例如付费用户 收费。要使用CloudFront安全地提供此私人内容,您就可以了 可以:
要求您的用户使用特殊的CloudFront签名网址来访问您的内容,而不是标准的CloudFront公共网址。
要求您的用户使用CloudFront网址而不是Amazon S3网址访问您的Amazon S3内容。
由应用程序来生成和分发所需的Signed URLs,但是,给定谁可以看到什么以及何时是应用程序逻辑的一部分的逻辑你似乎为那部分做好充分准备。
请注意,您需要确保Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content,以便用户无法泄漏/猜测S3网址,并且确实需要通过CloudFront。
如果您想使用CloudFront签名URL来访问Amazon S3存储桶中的对象,您可能还希望阻止用户使用Amazon S3 URL访问您的Amazon S3对象。如果用户访问您的对象直接在Amazon S3中,它们绕过CloudFront签名URL提供的控制,包括控制URL何时到期以及控制可用于访问对象的IP地址。 [...]
您可以通过创建原始访问标识来限制对Amazon S3内容的访问,这是一个特殊的CloudFront用户。您更改Amazon S3权限以授予原始访问身份访问对象的权限,并从其他所有人中删除权限。 [...]
[强调我的]