限制S3对象访问来自特定域的请求

时间:2013-01-23 02:51:30

标签: video amazon-web-services amazon-s3 video-streaming

我在S3中有视频文件和一个通过src属性加载文件的简单播放器。

我希望只能通过我的网站查看视频,而不是直接通过S3网址查看(可能在页面的源代码中可以看到,也可以通过右键单击访问)

通过AWS文档查看似乎我通过HTTP执行此操作的唯一方法是在查询中附加签名和到期日期,但这还不够。 其他访问限制是指AWS用户。

我如何解决这个问题或实施此服务器/客户端?

1 个答案:

答案 0 :(得分:11)

我认为您可以从管理界面设置的存储桶策略将执行此操作。语法有一些变化(您可以围绕拒绝允许条件构建策略)并过滤特定文件名,但我更喜欢拆分媒体类型进入离散桶

{
"Version": "2008-10-17",
"Id": "Restrict based on HTTP referrer policy",
"Statement": [
    {
        "Sid": "1",
        "Effect": "Deny",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::mybucket/myprefix/*",
        "Condition": {
            "StringNotLike": {
                "aws:Referer": [
                    "http://www.mydomain.com/*",
                    "http://www.subdomain.mydomain.com/*"
                ]
            }
        }
    }
]
}