试图了解 S3...如何限制对上传到 S3 的文件的访问?例如,在 Web 应用程序中,每个用户都有可以上传的文件,但您如何限制访问权限,以便只有该用户可以访问该文件?似乎查询字符串身份验证需要一个到期日期,这对我不起作用,还有其他方法可以做到这一点吗?
问问题
4298 次
4 回答
14
有多种方法可以控制对 S3 对象的访问:
使用查询字符串 auth - 但正如您所指出的,这确实需要一个到期日期。你可以在未来走得更远,这对我所做的大多数事情来说已经足够好了。
使用 S3 ACLS - 但这需要用户拥有 AWS 账户并通过 AWS 进行身份验证才能访问 S3 对象。这可能不是您想要的。
您通过实现访问控制逻辑的应用程序代理对 S3 对象的访问。这将通过您的盒子带来所有带宽。
您可以使用代理逻辑设置 EC2 实例 - 这可以使带宽更接近 S3,并且可以减少某些情况下的延迟。这和#3之间的差异可能很小,但取决于您的具体情况。
于 2009-04-20T12:28:03.960 回答
8
- 让用户访问您的服务器
- 服务器是否设置了一个有效期较短的查询字符串身份验证(分钟、小时?)
- 让您的服务器重定向到 #2
于 2009-04-20T12:43:17.013 回答
1
您必须在应用程序中构建对 S3 的整个访问逻辑
于 2009-04-19T20:24:55.570 回答
0
我也一直在处理这个问题。Don 编写了我正在使用的S3 PHP类,他指出您可以在存储桶中使用 dirs。因此,您可以将文件放在带有随机字符串的目录中,然后重定向到该目录。mybucket.amazon.net/wef49kfe4j409jf4f4f9jdfd/myfile.zip 虽然根本不安全,但您可以根据需要通过更改权限或创建和删除它(将原始文件安全地保存在不同的存储桶中)来控制对它的访问。
于 2009-05-02T12:00:20.247 回答