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



感谢您的关注。

我是Amazon S3的新手,已经设置了一个大约100K文件的bucket。我希望只从一个域限制对这些文件的访问,因此我在桶上设置了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策略)。

任何想法?

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

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

JavaSDK示例见http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURLJavaSDK.html

最新更新