【问题标题】:AWS S3 how to allow acces only from specific domain?AWS S3 如何只允许来自特定域的访问?
【发布时间】:2021-12-25 09:51:46
【问题描述】:
我会提供视频,但只能来自我自己的域。您认为可以使用 AWS S3 进行设置吗?或者无论如何,这种知识产权保护是不可能的。如果网站上有资源,人们无论如何都可以下载它,对吧?!
如果是这种情况,我应该阻止列出存储桶并将盐放在文件名中吗?
【问题讨论】:
-
请注意,这种类型的安全性(使用aws:Referer)安全性很差。 referer 很容易伪造,因此它不应该用于您认为机密的任何数据。最好通过登录身份验证实现安全性,然后仅通过Amazon S3 pre-signed URL 提供对文件的访问,这是一个提供对私有对象的临时访问的限时 URL。
标签:
javascript
amazon-web-services
amazon-s3
【解决方案1】:
为此,您需要一个自定义策略。
{
"Version":"2021-11-13",
"Id":"White list a specific http-referrer",
"Statement":[
{
"Sid":"Allow get requests originating from www.giuseppemandato.com",
"Effect":"Allow",
"Principal":"*",
"Action":"s3:GetObject",
"Resource":"arn:aws:s3:::BUCKET_NAME/*",
"Condition":{
"StringLike":{"aws:Referer":["http://www.giuseppemandato.com/*","http://giuseppemandato.com/*"]}
}
}
]
}
您可以通过最终声明 Effect: Deny 来翻转它,并忽略来自给定域的任何请求。