Amazon web services AWS EC2实例,可访问S3存储桶以流式传输视频

Amazon web services AWS EC2实例,可访问S3存储桶以流式传输视频,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我非常熟悉EC2实例、IAM(用户、角色、组)、S3存储桶和策略,希望社区能在这里帮助我 假设我有一个运行Web服务器的EC2实例。这个EC2实例承载一个web视频播放器(video js、JWPlayer等)。理想情况下,我希望在S3存储桶上托管MP4,而不公开S3存储桶 我最初的想法是,我可以创建一个对S3 bucket具有完全访问权限的角色,或者为该bucket分配一个允许实例访问的策略 我尝试过许多政策和角色,但似乎都不起作用。现在我想知道这是否可能 我知道这种架构并不完美,您可能会使

我非常熟悉EC2实例、IAM(用户、角色、组)、S3存储桶和策略,希望社区能在这里帮助我

假设我有一个运行Web服务器的EC2实例。这个EC2实例承载一个web视频播放器(video js、JWPlayer等)。理想情况下,我希望在S3存储桶上托管MP4,而不公开S3存储桶

我最初的想法是,我可以创建一个对S3 bucket具有完全访问权限的角色,或者为该bucket分配一个允许实例访问的策略

我尝试过许多政策和角色,但似乎都不起作用。现在我想知道这是否可能


我知道这种架构并不完美,您可能会使用cloudfront来为视频服务。然而,这只是一个概念证明…如果可能的话。谢谢大家

这是AmazonS3的完美用例,它提供对私有对象的时间限制访问。它将流量完全卸载到S3,使其在服务内容方面具有高度可扩展性

基本上:

  • 该对象是保密的
  • 应用程序确定用户是否有权访问该文件
  • 应用程序生成预先签名的URL,时间限制为(比如)5分钟
  • 应用程序在标准HTML页面中包含URL(例如,如果是图像,请使用
是的,用户可以与其他人共享链接,但该链接在给定的时间段后过期


您也可以,这对于许多媒体播放器来说效果更好,因为它可以。

一个简单的IAM角色,允许s3:GetObject访问bucket(或其中的某个子集),将允许EC2实例读取MP4文件(假设您使用该IAM角色启动实例)。这假设您实际上希望web服务器读取MP4并将其代理给客户端,而不是直接到S3获取MP4的客户端。您所说的“两者似乎都不起作用”是什么意思?可以满足您的需要吗?@jarmod您提出了一个有趣的问题。EC2实例必须使用IAM角色启动/创建,还是我可以在以后分配角色?我之所以这样问,是因为看起来您可以将角色分配给正在运行的EC2实例(也可能会产生误导)@stdunbar是的,预签名的URL也可以。我肯定会尝试一下。不过,我确实喜欢通过cloudfront提供私人内容的方法(以下作者:John Rotenstein)