【发布时间】:2023-02-15 06:48:22
【问题描述】:
这个问题几个月来一直在我脑海里萦绕。简单来说,几乎所有运行 B2B 的 SaaS 都需要在租户之间隔离用户生成的文件(PDF、图像、文档)。如果“A 公司”的用户将 PDF 上传到 SaaS,则只有“A 公司”的成员才能阅读/查看此文件。看起来很基本。
但是,我似乎找不到任何关于如何在较高的架构级别上设计这样的系统的信息。无需深入了解云提供商的具体细节,我的理解是 IAM 规则通常适用于提供服务的组织成员(即销售 SaaS 的公司),而不适用于他们的最终用户。另一种选择,预签名 URL,似乎并不真正安全,因为共享链接将授予任何人访问权限,即使不是“公司 A”的一部分。
我知道有一项服务可以授权存储桶访问单个对象,这就是 Google 的 Firestore(存储规则)。他们是如何做到的呢?!?是否有反向代理检查有效身份验证并在“回传”响应之前查找用户已被授予的访问权限?
TLDR: 在系统设计层面,Firebase 的 Storage Rules 如何实现对象的对象级授权?它是对用户进行身份验证、检查对所请求文件的权限并通过代理发回数据的私有存储桶的反向代理吗?这似乎需要强大的代理来服务所有传入的请求。
【问题讨论】:
标签: firebase amazon-s3 proxy google-cloud-storage reverse-proxy