防止音频文件直接下载来自Amazon S3的(Prevent direct download of

2019-07-20 12:22发布

我有存储在亚马逊S3的音频文件被从一个基于Web的音乐播放器应用程序访问,并且还从移动应用。 即使不登录的用户应该能够访问音乐。 但是我不希望人们使用链接下载内容。 可这在S3中实现呢?

谢谢

Answer 1:

您可以根据HTTP参照限制访问。 这不是防弹(推荐人可以是伪造的),但它会停止休闲下载。

您可以使用一个水桶策略来限制对推荐人的可能值。

有这个页面(向下滚动位)的一个例子http://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html

下面是他们的例子:

{
  "Version":"2008-10-17",
  "Id":"http referer policy example",
  "Statement":[
    {
      "Sid":"Allow get requests originated from www.example.com and example.com",
      "Effect":"Allow",
      "Principal":"*",
      "Action":"s3:GetObject",
      "Resource":"arn:aws:s3:::examplebucket/*",
      "Condition":{
        "StringLike":{
          "aws:Referer":[
            "http://www.example.com/*",
            "http://example.com/*"
          ]
        }
      }
    }
  ]
}

你也可以做到这一点到期签署的网址 - 这将阻止人们链接到其他网站的内容。



Answer 2:

一个场景浮现在脑海:

当你的音乐播放器应用程序要玩的东西,它要问你的后端的URL到MP3。 后端可以产生网址“expires”参数[1]设定为10秒的未来。

这样一来,被你的后端返回的URL仅10秒,这应该是绰绰有余的音乐播放器启动从S3下载使用。

当然,如果他/她看到在10秒窗口某种HTTP嗅探器的URL,并开始下载,用户可以下载该文件。

但是,有保护用户从让他/她的手放在自己的设备访问内容没有防弹方式。 如果内容被传递到设备,总是有足够的技术人员,以获得它自己的手中的方式。

PS刚刚抬头,如果你的MP3播放器支持寻求(特别是通过发送另一个HTTP范围请求求),你就必须重新获得与刷新一个新的URL“到期”参数从你的后端。

[1] http://s3.amazonaws.com/doc/s3-developer-guide/RESTAuthentication.html



Answer 3:

我已经遇到这个要求也是一样,对如何实现这一更多更新的答案。

在你的水桶的“权限”选项卡,选中“斗政策”按钮,然后用下面的代码填写:

{
    "Version": "2012-10-17",
    "Id": "Policy1542209806458",
    "Statement": [
        {
            "Sid": "Explicit deny to ensure requests are allowed only from specific referer.",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::your-bucket-arn/*",
            "Condition": {
                "StringNotLike": {
                    "aws:Referer": [
                        "http://yourdomain.com/*"
                    ]
                }
            }
        }
    ]
}

这将允许从您的域的引荐请求。 注意设置你的Resource领域,并更改允许的aws:Referer列表。

这仍然可以欺骗,但它是直接连接你的S3。一个简单的屏障。



文章来源: Prevent direct download of audio files from amazon s3