Amazon S3实施访问控制

Har*_*tty 2 php ruby-on-rails amazon-s3

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

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

cee*_*yoz 8

我建议使用具有过期日期的Amazon S3经过身份验证的REST URL.它们允许对非公共S3对象进行临时,过期访问.

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

  • 从好的方面来说,他们已经锁定了你可以实际控制的东西.:-) (2认同)

Mar*_*rth 6

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

S3有一个API,允许您"临时"授予读访问权限.例如,亚马逊的S3 PHP库有一个getAuthenticatedURL (string $bucket, string $uri, integer $lifetime, [boolean $hostBucket = false], [boolean $https = false])功能.

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