如果我启用了CORS安全策略,我应该如何配置Amazon S3文件的安全性

时间:2014-07-07 14:04:05

标签: amazon-web-services amazon-s3 amazon

感谢您的光临。

我是Amazon S3的新手,已经设置了一个包含大约100K文件的存储桶。我想限制只从一个域访问这些文件,所以我在存储桶上设置了CORS策略:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>http://www.example.com</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>http://www.example.com/*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

问题

即使有了这个CORs策略,我也可以直接在浏览器中输入单个文件URL并对其进行访问,因此安全性似乎不起作用。

目前,S3中每个文件的安全性设置为“Everyone”以获得读取权限。我原以为CORS文件会覆盖它。如果我从权限中删除“Everyone”,那么我根本无法访问该文件(即使有适当的CORS策略)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

CORS配置将仅用于告知浏览器是否可以向此域发送请求,以及使用哪些标头和方法。它对S3授权没有影响。

您可以为可能更适合应用程序管理安全性的对象生成预签名的临时URL。

有关Java SDK示例,请参阅http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURLJavaSDK.html