通过CDN提供受保护的资产

13
我们希望能够从少数可用的AWS地区为大量视频文件提供服务。目标受众来自全球多个地点,连接速度不能保证。因此,CDN(最好是CloudFront)是绝对必要的。
这些视频需要得到保护,只有经过身份验证和授权的用户才能播放这些视频。显然,谁可以在什么时候看到什么内容的逻辑是应用程序的一部分。从源头流式传输视频将会非常慢。而将视频公开并缓存也不是选项。
人们如何解决这类问题?
1个回答

15

Amazon CloudFront 还提供通过 CloudFront 提供私有内容来解决您的使用情况:

许多通过互联网分发内容的公司希望限制对文档、业务数据、媒体流或仅面向特定用户(例如支付了费用的用户)的内容的访问。为了安全地使用 CloudFront 提供此类私有内容,您可以:

  • 要求您的用户使用特殊的 CloudFront 签名 URL 来访问您的内容,而不是标准的 CloudFront 公共 URL。

  • 要求您的用户使用 CloudFront URL 而不是 Amazon S3 URL 访问您的 Amazon S3 内容。

生成和分发所需的签名 URL由应用程序完成,然而,考虑到“谁能看到什么以及何时看到”的逻辑是应用程序逻辑的一部分,您似乎已经做好了这部分的准备。

请注意,您需要确保使用使用起源访问身份验证来限制对Amazon S3内容的访问,以便用户无法泄露/猜测S3 URL,并且需要通过CloudFront进行访问。
如果您想要使用CloudFront签名URL来提供对Amazon S3存储桶中对象的访问,则您可能还想防止用户使用Amazon S3 URL访问您的Amazon S3对象。如果用户直接在Amazon S3中访问您的对象,则会绕过CloudFront签名URL提供的控件,包括控制URL何时过期以及哪些IP地址可以用于访问对象。 您可以通过创建起源访问身份验证来限制对Amazon S3内容的访问,这是一个特殊的CloudFront用户。您可以更改Amazon S3权限,使起源访问身份验证有权访问您的对象,并从其他所有人那里删除权限。[...]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接