Amazon S3实施访问控制

时间:2010-05-10 22:14:16

标签: php ruby-on-rails amazon-s3

我在Amazon S3中存储了几个PDF文件。每个文件都与用户相关联,只有文件所有者才能访问该文件。我在下载页面中强制执行此操作。但实际的PDF链接指向Amazon S3网址,任何人都可以访问。

如何为此网址强制执行访问控制规则?(不使我的服务器成为所有PDF下载链接的代理)

2 个答案:

答案 0 :(得分:8)

我建议使用具有过期日期的Amazon S3 authenticated REST URLs。它们允许对非公共S3对象进行临时,过期访问。

那就是说,如果他们要分享网址,是什么阻止他们共享文件?

答案 1 :(得分:6)

S3帐户中的每个文件都可以具有特殊访问权限(ACL)。您应该将所有PDF ACL设置为private。然后没人能够访问它们。

S3有一个API,允许您“临时”授予读取权限。例如,Amazon's S3 PHP Library具有getAuthenticatedURL (string $bucket, string $uri, integer $lifetime, [boolean $hostBucket = false], [boolean $https = false])函数。

这将使您能够在规定的时间内(例如5分钟)访问PDF - 如果您立即将用户重定向到S3,这就足够了。