优化我的服务器使用我感动的图像(〜500),并呈现HTML
文件SEO
(〜1000)S3
存储&它工作得很好,不过,我很担心有DDoS
最终,这会让我花费很多钱,因为亚马逊会收取每个GET
的请求。设置CORS配置为AWS S3
我做了一些研究,如何防止,发现S3
有一个CORS
配置选项。
我试过了,但不幸的是,它似乎没有工作。仍然可以从任何URL
访问文件,我在做什么错?
UPDATE:
也试过设置桶政策:
优化我的服务器使用我感动的图像(〜500),并呈现HTML
文件SEO
(〜1000)S3
存储&它工作得很好,不过,我很担心有DDoS
最终,这会让我花费很多钱,因为亚马逊会收取每个GET
的请求。设置CORS配置为AWS S3
我做了一些研究,如何防止,发现S3
有一个CORS
配置选项。
我试过了,但不幸的是,它似乎没有工作。仍然可以从任何URL
访问文件,我在做什么错?
UPDATE:
也试过设置桶政策:
CORS配置允许跨域请求。这不是限制访问文件的方法。
默认情况下,浏览器将不允许跨域请求。例如,浏览器将不允许从example1.com
提供的页面访问example2.com
的内容。这样做是为了保护您的个人信息,例如试图向Facebook打开iframe以访问您的个人Facebook内容的人。
但是,如果example2.com
愿意允许此跨域请求,那么它可以添加一个交叉原始资源共享(CORS)策略,该策略规定允许example1.com
以跨域方式访问内容。然后网络浏览器将允许访问。
总结:它是您的网络浏览器控制CORS。 CORS策略只是告诉网络浏览器允许它。
参见:Cross-Origin Resource Sharing (CORS)
限制由介绍人
您的特殊要求,不过,似乎是你愿意从Amazon S3服务的内容,但只有当它出现在特定网页上。例如,如果由example.com
提供服务的页面请求,则仅显示来自images.example.com
的图像。您可以通过在Amazon S3存储桶政策中指定推荐人来实现此目的。
从Restricting Access to a Specific HTTP Referrer:
{
"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",
"Resource":"arn:aws:s3:::examplebucket/*",
"Condition":{
"StringLike":{"aws:Referer":["http://www.example.com/*","http://example.com/*"]}
}
}
]
}
这是比较容易伪造引荐,但这通常应该给你你正在寻找的东西。
加载它,我做了你的建议,但它仍然没有限制它。检查 –
问题的更新请尝试此操作:删除存储桶策略并检查对象是否可访问。如果它们仍然可以访问,那么其他内容就是授予访问权限(例如,对象本身的权限,IAM用户策略),并且必须删除该对象以使其再次变为私有。然后,添加上述政策,它应该工作正常。 –
如果我没有设置公共访问权限,我甚至无法从原始网站 –