Guardrails - 在多租户系统中保持客户数据隔离
许多公司都建立在多租户架构之上。这意味着所有客户共享相同的存储和计算资源:数据库、缓存、搜索引擎等。单个工作区的数据在运行时会被隔离并对他人不可见。这是通过使用逻辑安全措施实现的,最常见的是:使用客户的唯一 ID 进行查询时过滤。
工程师是人,大多数工程师都不是安全专家。这意味着有时这些逻辑安全措施会被错误地实现,或者在大型架构更改后变得不正确。
我们通过将客户 ID 融入所有内联和异步工作,并引入一个中间件,当尝试在客户工作区之外执行工作时会引发异常,从而解决了这个问题。我将谈论我们如何实现这一点以及学到的经验教训,同时还会触及我们在此过程中解锁的其他好处。
- 14:15 - 14:45
- 2023 年 10 月 5 日
- 第二会场
演讲人
Miles McGuire
高级工程师,Intercom
我是 Intercom 数据存储团队(拥有包括 Rails 在内的所有核心技术)的一名首席工程师,截至 2023 年 6 月,我在该公司工作了 6 年。在此期间,我看到了许多重大且令人兴奋的变化,并且逐渐成为 Intercom 中 ActiveRecord 方面的专家。最近,我领导了一个项目,通过水平分片和应用程序层的大量底层工作,确保我们 MySQL 数据库的长期可扩展性,并使其对工程师尽可能无缝。