亚马逊s3视频文件只能从我的域/服务器访问?

Mat*_*att 6 amazon-s3

现在,我知道我无法阻止某人下载我的视频和共享,但我更愿意这样做,以便人们不会将粘贴链接直接复制到我的存储桶中.因此,有没有办法让我的存储桶只能从我的服务器/域发出请求?

如果它有帮助,我正在使用jwplayer从一个包含所有链接的xml播放列表加载.这个播放列表绝对可以在任何地方打开和查看,是我希望轻松复制和粘贴的地方.

我不想掩盖网址,因为这意味着我的存储桶对每个人都可读.可能有人有机会找到我的桶的URL和文件的名称并将所有内容连接在一起......

Ste*_*pel 7

这可以通过使用存储桶策略来实现,该存储策略允许您定义Amazon S3资源的访问权限 - 有几个示例功能的Amazon S3存储桶策略示例,其中您将找到限制访问特定的示例IP地址:

此语句向任何用户授予对指定存储桶中的对象执行任何S3操作的权限.但是,请求必须源自条件中指定的IP地址范围.

根据您的用例的具体情况,针对此的存储桶策略可能如下所示:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "*" 
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::bucket/*",
            "Condition" : {
                "IpAddress" : {
                    "aws:SourceIp": "192.168.143.0/24" 
                },
                "NotIpAddress" : {
                    "aws:SourceIp": "192.168.143.188/32" 
                } 
            } 
        } 
    ]
}
Run Code Online (Sandbox Code Playgroud)

如图所示,aws:sourceIp对于参数值IPAddress,并NotIpAddress在表示CIDR符号,使各自的灵活性用于构成所期望的范围.

最后,您可能需要查看推荐的AWS策略生成器,选择类型S3存储桶策略并探索可用的操作条件,最终为您的用例组成更具针对性的策略 - 条件文档详细说明了这一点.


aru*_*net 6

如果您的服务器要访问您的存储桶,IP地址将有所帮助.但JWPlayer来自客户端.所以请求直接从jwplayer(浏览器)到s3 bucket url,而不是通过你的服务器.在这种情况下,"推荐人桶政策"将帮助您.

{
"Version": "2008-10-17",
"Statement": [
  {
    "Sid": "1",
    "Effect": "Deny",
    "Principal": {
      "AWS": "*"
    },
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::yourbucketname/*",
    "Condition": {
      "StringNotLike": {
        "aws:Referer": [
          "http://yoursitename.com/*",
          "http://*.yoursitename.com/*"
        ]
      }
    }
  }
]
}
Run Code Online (Sandbox Code Playgroud)

所以现在s3将允许该请求仅来自您的网站.