如何为许多用户限制S3存储桶

时间:2018-12-22 19:39:55

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

我正在尝试实施一种解决方案,以保护具有不同角色和不同权限的许多用户之间共享的S3存储桶。

这是我的用例:

  • 通过Cognito用户池管理用户
  • 已创建3个组:管理员,专业人员,客户
  • 客户只能访问其项目的文件夹(即:project-123 / *)
  • 项目由专业人士管理
  • 专业人士可以有许多项目
  • 专业人士可以访问其客户项目的文件夹
  • 管理员具有对S3存储桶的完全访问权限
  • 我们需要在s3存储桶中跟踪每个对象(获取,删除,放置)的动作的身份

我尝试过:

  • s3SignedUrl:之所以合适,是因为我的安全策略不接受时间窗口,并且我们无法在s3操作中跟踪用户的身份
  • 按项目划分的角色:使用Cognito联合身份时,似乎受到限制,因为它仅使用一个角色,并且Cognito默认情况下限制为300个组

我没有尝试:

  • Authorization@Edge:在访问S3之前先对cloudfront + lambda @ edge进行身份验证。我不确定使用cloudfront将对象放入s3中是否优化,并且如果此技术仅用于获取对象,我不确定。

  • 伪动态S3存储桶策略,通过为每个文件夹/项目添加每个用户的身份来实现,但这似乎非常困难且限制非常低(该策略为20kb)。

0 个答案:

没有答案