允许多个用户使用IAM角色访问私有S3文件夹

时间:2019-02-22 04:49:29

标签: amazon-web-services amazon-s3 amazon-iam

我要执行以下操作:

  • 有一个水桶
  • 让多个用户能够添加/读取/访问具有特定项目文件夹前缀的对象
  • 不允许其他用户访问他们不属于的对象

例如,如果您有一个ID为1的项目,则多个用户可以在其下创建对象:

  

user_1创建了1/image_1.jpg

     

user_2读了1/image_1.jpg

     

user_2创建了1/image_2.jpg

但是,不属于“项目”的用户不能:

  

不允许 user_3读过1/image_1.jpg

我发现,网上的所有信息都围绕着每个用户拥有自己的文件夹,方法是创建一个IAM角色,该角色仅允许访问以该用户ID为前缀的对象。这种方法会创建用户文件夹,我想要项目文件夹

1 个答案:

答案 0 :(得分:1)

典型的体系结构是:

  • 当应用程序要显示私有对象或提供指向私有对象的链接时,它将生成一个Pre-signed URL
  • 此预签名URL提供对私有对象的限时访问
  • 用户可以使用链接查看/下载对象。例如,可以在<img>标签中使用它来显示图片,或者在<a>标签中使用它来提供链接。

  • 当用户要上传对象时,可以Upload Objects Using Presigned URLs。这样可以控制对象的上传位置,文件类型,最大大小等。

通过这种方式,应用程序可以完全控制用户上传/下载哪些对象,与必须为用户,项目,文件夹,对象等。预签名的URL可用于直接访问S3,但仅用于执行应用程序授权的操作。