2017-07-12 77 views
0

优化我的服务器使用我感动的图像(〜500),并呈现HTML文件SEO(〜1000)S3存储&它工作得很好,不过,我很担心有DDoS最终,这会让我花费很多钱,因为亚马逊会收取每个GET的请求。设置CORS配置为AWS S3

我做了一些研究,如何防止,发现S3有一个CORS配置选项。

我试过了,但不幸的是,它似乎没有工作。仍然可以从任何URL

enter image description here enter image description here

访问文件,我在做什么错?

UPDATE:

也试过设置桶政策:

enter image description here

+0

如果我没有设置公共访问权限,我甚至无法从原始网站 –

回答

2

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/*"]} 
     } 
    } 
    ] 
} 

这是比较容易伪造引荐,但这通常应该给你你正在寻找的东西。

+0

加载它,我做了你的建议,但它仍然没有限制它。检查 –

+0

问题的更新请尝试此操作:删除存储桶策略并检查对象是否可访问。如果它们仍然可以访问,那么其他内容就是授予访问权限(例如,对象本身的权限,IAM用户策略),并且必须删除该对象以使其再次变为私有。然后,添加上述政策,它应该工作正常。 –