Ant*_*ter 4 authorization amazon-s3 amazon-web-services
我是 S3 的新手,我想知道现实世界的 Web 应用程序通常如何与其交互,特别是如何处理用户访问权限。
举例来说,我设计了一个基本的项目管理 Web 应用程序,除其他功能外,它允许用户将项目文件上传到其他项目成员可以访问的共享空间。
因此,用户文件上传/读取访问权限将由项目成员以及项目角色决定。
使用 S3,是否可以简单地为整个应用程序创建一个具有所有权限的单个 S3 用户的存储桶,并将用户权限的处理留给应用程序?或者我错过了什么?我在网上找不到很多真实世界 S3 使用的例子,特别是在访问权限方面。
典型的架构是保持 Amazon S3 存储桶完全私有。
当您的应用程序确定允许用户上传或下载文件时,它可以生成Presigned URL。这是一个有时间限制的 URL,允许上传或下载对象。
上传时,还可以创建 POST 策略以对上传实施一些限制,例如其长度、类型和存储位置。如果上传符合要求,文件将被接受。
您应该维护一个数据库,用于标识已上传的所有对象并将其映射到“所有者”、权限组、共享等。所有这些都是特定于应用程序的。稍后,当用户请求下载特定对象时,您的应用程序可以生成一个预先签名的 URL,允许用户下载该对象,即使它是私有对象。
始终让您的应用程序确定访问对象的权限。不要将应用程序用户定义为 IAM 用户。
如果存在直接的权限模型(例如,一个用户的所有文件都位于 S3 存储桶内的一个路径/文件夹中),您可以使用AWS Security Token Service生成临时凭证,该服务授予对给定路径的 List 和 Get 权限。这对于可以直接调用 Amazon S3 API 来检索对象的移动应用程序非常有用。但是,它不适合基于 Web 的应用程序。
| 归档时间: |
|
| 查看次数: |
1633 次 |
| 最近记录: |