使用Amazon S3保护私人播客的MP3文件有什么好方法?

时间:2012-09-07 08:29:03

标签: security rss amazon-s3 itunes podcast

我正在尝试创建私有播客Feed。我的服务的每个用户都有一个帐户,根据他们支付的费用,他们会收到不同的内容。有些内容很敏感,因此安全性非常重要;如果任何随附的音频文件绕过互联网,那对我们的业务来说可能是灾难性的。

我目前正在对服务进行原型设计,并且MP3存储在S3上并且它们不受保护。是时候保护它们了。根据我的研究,我了解到事实上,我可以通过访问到期时间来保护S3上的文件。但是,因为我有很多用户,用我的“全局”密钥签署请求并且到期可能不是一个好主意,因为

  1. 如果我需要撤销访问权限,我需要为所有人执行此操作
  2. 由于我不知道他们的podcatcher何时会请求该文件,我不知道何时设置到期日。有时,podcatcher会下载Feed XML,但之后只能获取MP3文件,因此URL可能会在客户端有机会获取之前到期(我正在考虑iTunes,但可能还有其他人)。
  3. 我看到它的方式,我有两个选择,我不确定是否可行:

    编辑我认为另一种可能的方法是,如果用户好的话,将会role my own security, and simply redirect转到S3上的MP3短期到期。这似乎是最明智的。

    1. 我可以在Amazon上为所有用户创建用户帐户,并将其链接到我的数据库中的Amazon令牌。从现在开始,每个人的MP3网址都会使用他们的秘密令牌签名并到期。我不喜欢将他们的令牌存储在我的数据库中的想法,我不确定亚马逊ACL是否是为这种情况设计的。这也意味着如果您知道URL,仍然可以共享文件。
    2. 我可以通过我的服务器代理每个请求。这意味着我只有一个亚马逊帐户,我可以扮演自己的安全系统角色。但通过我的服务器代理每个MP3下载听起来既缓慢,浪费又昂贵。
    3. 有关最佳方法的任何想法。

      P.S。我没跟S3结婚。可以考虑其他解决方案。而且我在使用Ruby的Heroku,以防你关心。

1 个答案:

答案 0 :(得分:0)

我将使用重定向解决方案suggested elsewhere。这似乎给了我最大的灵活性和非常低的开销。你绝对应该做的是在你的Feed中直接使用S3链接,因为它们可能会在客户端下载之前到期。