微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何限制对Amazon s3静态网站中单个文件的访问

如何解决如何限制对Amazon s3静态网站中单个文件的访问

最近创建了一个静态网站,该网站托管在s3上,我注意到当用户检查网站来源时,他们可以单击链接,使他们可以在单独的选项卡中访问图像等项目。有没有一种方法可以允许网站访问图像,但可以限制尝试访问源图像的用户

解决方法

遗憾的是,如果没有适当的身份验证,您不能限制下载图像的能力。如果您的用户可以在浏览器中看到图像,则可以下载它们,因为它们已经下载过了。

但是您可以限制用户直接进入您的S3 存储桶。为此,您可以使用CloudFront(CF)来放置S3存储桶。

具体来说,您可以在CF中设置Origin Access Identity,并使您的网站和所有图像只能通过CF访问:

,

仅在选项卡中打开资产的用户就可以了,如果您只是试图阻止访问内容而不是在域中访问,则可以使用Referer头将其锁定为只能通过网站。

这可以在S3中通过bucket policy similar to the one below完成。

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

您始终可以通过结合使用CloudFront distributionAWS WAF来包含由引荐来源屏蔽的规则来增强此功能。

如果您尝试锁定此内容(无论是需要登录才能看到它还是需要付费来获取它),您可以有两种选择。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。