我将文件存储在S3存储桶中。我希望限制对文件的访问。
目前,拥有该文件URL的任何人都可以访问该文件。
我想要一种仅在通过我的应用程序访问文件时访问文件的行为。该应用程序托管在EC2上。
以下是我可以找到的两种可能方式。
在存储桶策略中使用“referer”键。
在CORS配置中更改“允许的来源”
鉴于“referer”可能在请求标头中被欺骗,应该使用上述哪2个。
云端还可以在这里发挥作用吗?
答案 0 :(得分:0)
在处理私有S3存储桶时,您希望使用适合您用例的AWS SDK。
这里有许多不同语言的SDK:http://aws.amazon.com/tools/
在每个SDK中,您都可以找到对S3的示例调用。
如果您尝试通过浏览器端JavaScript进行私人通话,则can use CORS。
答案 1 :(得分:0)
我建议使用预签名网址,以允许访问存储在Amazon S3上的私有对象。它是一种保持对象安全的方法,同时授予对特定对象的临时访问权。
它是通过基于对象路径,到期时间和属于具有访问Amazon S3对象权限的帐户的共享秘密访问密钥的哈希计算创建的。 结果是一个限时访问权限的URL 。到期时间过后,URL不会返回对象。
首先删除授予对这些对象的访问权限的现有权限。然后生成预签名URL以基于每个对象授予对私有内容的访问权限,每次引用S3对象时计算。 (别担心,这样做很快!)
请参阅文档:Sample code in Java