【发布时间】:2010-10-20 10:33:44
【问题描述】:
试图了解 S3...如何限制对上传到 S3 的文件的访问?例如,在 Web 应用程序中,每个用户都有可以上传的文件,但是如何限制访问权限,以便只有该用户可以访问该文件?查询字符串身份验证似乎需要一个到期日期,这对我不起作用,还有其他方法吗?
【问题讨论】:
标签: python django amazon-web-services amazon-s3
试图了解 S3...如何限制对上传到 S3 的文件的访问?例如,在 Web 应用程序中,每个用户都有可以上传的文件,但是如何限制访问权限,以便只有该用户可以访问该文件?查询字符串身份验证似乎需要一个到期日期,这对我不起作用,还有其他方法吗?
【问题讨论】:
标签: python django amazon-web-services amazon-s3
有多种方法可以控制对 S3 对象的访问:
使用查询字符串 auth - 但正如您所指出的,这确实需要一个到期日期。你可以在未来走得更远,这对于我所做的大多数事情来说已经足够了。
使用 S3 ACLS - 但这需要用户拥有 AWS 账户并通过 AWS 进行身份验证才能访问 S3 对象。这可能不是您想要的。
您通过应用程序代理对 S3 对象的访问,该应用程序实现您的访问控制逻辑。这将通过您的盒子带来所有带宽。
您可以使用代理逻辑设置 EC2 实例 - 这可以使带宽更接近 S3,并且可以减少某些情况下的延迟。这与 #3 之间的差异可能很小,但取决于您的具体情况。
【讨论】:
【讨论】:
您必须在应用程序中构建对 S3 的整个访问逻辑
【讨论】:
我也一直在处理这个问题。 Don 编写了我正在使用的 S3 PHP 类,他指出您可以在存储桶中使用 dirs。因此,您可以将文件放在带有随机字符串的目录中,然后重定向到该目录。 mybucket.amazon.net/wef49kfe4j409jf4f4f9jdfd/myfile.zip 虽然根本不安全,但您可以根据需要通过更改权限或创建和删除它(将原始文件安全地保存在不同的存储桶中)来控制对它的访问。
【讨论】: