在AWS上限制对S3存储桶的访问

时间:2014-11-17 11:39:52

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

我将文件存储在S3存储桶中。我希望限制对文件的访问。

目前,拥有该文件URL的任何人都可以访问该文件。

我想要一种仅在通过我的应用程序访问文件时访问文件的行为。该应用程序托管在EC2上。

以下是我可以找到的两种可能方式。

  1. 在存储桶策略中使用“referer”键。

  2. 在CORS配置中更改“允许的来源”

  3. 鉴于“referer”可能在请求标头中被欺骗,应该使用上述哪2个。

    云端还可以在这里发挥作用吗?

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