亚马逊s3:如何设置文件查看权限

时间:2015-06-01 07:07:33

标签: amazon-s3

我正在开发一个使用Amazon S3作为文件服务器的Web系统。文件直接上传到S3,相应的URL写入HTML页面。例如,我在S3有一个文件,其位置是:

https://myAccount.amazonaws.com/files/abc.png

在我刚才提到的HTML中:

<img src="https://myAccount.amazonaws.com/files/abc.png">

图像将在浏览器中正确显示。但是,为此,我必须将S3上的权限设置为everyone viewable,这意味着该文件对公众开放。

如何将文件查看权限仅限于我网站的成员,而不是公众?

1 个答案:

答案 0 :(得分:1)

有多种方法可以授予对Amazon S3对象的访问权限:

    每个单独对象
  • 访问控制列表(ACL)
  • 特定存储桶上的存储桶策略
  • 特定用户/组的IAM政策(身份和访问管理)
  • 签名网址(已签名,有时间限制的网址)

然而,第一个问题是如何定义“我的网站的成员,而不是公众”。我将假设您的意思是“我希望允许访问我的应用程序的人,而不是其他人”,并且您的应用程序知道这些用户,但它们未在IAM中定义。 (IAM仅用于存储将访问您的AWS环境的用户。它不应用于跟踪应用程序的用户。)

对于这种情况,我建议使用签名网址。他们的工作方式是:

  • 该对象保密(无公开访问)
  • 您的应用构建了一个签名网址,用于向对象授予临时访问权限
  • 向用户发送HTML时,请通过签名网址查看对象(例如图片,可下载的文档)

因此,您的应用程序将负责确定是否应允许某人访问S3内容,如果允许,将允许通过签名URL进行访问。

有关构建签名URL的详细信息,请参阅:

基本上,它使用与 可以访问某个对象的IAM用户相关联的权限,然后使用该IAM用户的密钥的哈希来“签署”该请求。

相关问题