Amazon S3权限

10

尝试理解S3...如何限制对上传到S3的文件的访问权限?例如,从Web应用程序中,每个用户都可以上传文件,但如何限制访问权限,以便只有该用户可以访问该文件?似乎查询字符串身份验证需要一个过期日期,这对我来说行不通,是否有其他方法可以实现这一点?

4个回答

14

有多种方法可以控制对S3对象的访问:

  1. 使用查询字符串auth - 但正如您所指出的,这确实需要一个过期日期。您可以将其设置为遥远的未来,对于我所做的大多数事情而言,这已经足够好了。

  2. 使用S3 ACLS - 但这要求用户拥有AWS账户并使用AWS进行身份验证才能访问S3对象。这可能不是您要寻找的。

  3. 通过您的应用程序代理访问S3对象,从而实现您的访问控制逻辑。这将使所有带宽通过您的服务器。

  4. 您可以使用您的代理逻辑设置一个EC2实例 - 这将使带宽更接近S3,并且在某些情况下可以减少延迟。与#3之间的差异可能很小,但这取决于您的具体情况。


8
  1. 让用户访问您的服务器
  2. 让服务器设置一个带有短期过期时间(几分钟,几小时?)的查询字符串身份验证
  3. 让您的服务器重定向到步骤2

1

您需要在应用程序中构建整个访问S3的逻辑


0

我也一直在处理这个问题。编写我正在使用的S3 PHP类的Don指出,您可以在存储桶内部使用目录。因此,您可以将文件放在带有随机字符串的目录中,然后重定向到该目录。mybucket.amazon.net/wef49kfe4j409jf4f4f9jdfd/myfile.zip虽然不安全,但您可以通过更改权限或根据需要创建和删除它(在不同的存储桶中安全地保留原始文件)来控制对其的访问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接