amazon-web-services - 用户的 AWS S3 文件夹权限
问题描述
我的情况如下:
- 我的 Web 应用程序上的每个用户都将 uuid 作为主键。
- 我的网络应用程序用户可以将图像上传到他们自己的文件夹(文件夹名称是他们的 uuid,例如:
clients/0d75db15-07ad-4800-a5de-1fe82a7bf52e/
clients/0faf6315-6ba9-478d-aaa5-3cd2bd3b3b6e/ - 每个用户只能访问自己的文件夹和文件夹下的文件。
我知道 IAM 策略具有权限,但没有文件夹级别或对象级别。
该场景有什么解决方案吗?感谢您的任何建议和答案!
解决方案
鉴于您的应用程序有 1000 多个用户,您不应依赖 IAM 策略或 S3 存储桶策略来管理安全性。
相反,所有对象都应保持私有,应用程序应生成Amazon S3 预签名 URL,授予对存储在 Amazon S3 中的私有对象的限时访问权限。
它会像这样工作:
- 用户登录到您的应用程序
- 当用户请求访问图像时,或者如果应用程序想要向他们发送包含使用
<img src='xxx'>
标签的图像的 HTML 页面,应用程序应该:- 验证用户是否有权访问该对象
- 如果是这样,生成一个预签名的 URL,授予对对象的临时访问权限
- 然后用户的浏览器访问提供的 URL
- Amazon S3 将验证预签名 URL 是否有效,然后提供对对象的访问
推荐阅读
- java - 如何在android studio中制作通话记录器
- python - 解析后我无法将数据写入文件,我不断收到错误字符串索引必须是整数
- delphi - DirectX/DirectCompute CreateBuffer 失败,错误为 0x80070057 (E_INVALIDARG)
- html - 删除图像周围的空白问题
- python - 叠加三等高线图时的颜色条/图例选项
- java - FNRCE0040E: E_NOT_AUTHENTICATED:用户未通过身份验证。消息是:无法找到登录配置
- node.js - redis-server 没有启动
- jquery - 单击箭头时,JQuery 滑块缺少活动状态
- authorization - 获取带有授权标头的 VPC 时,请求被选项拒绝
- html - 如何在其两个孩子之间插入其下一个兄弟元素?