云应用设计:架构师视角
1. 云数据库多租户设计
1.1 共享数据库与共享架构
采用共享数据库和共享架构的方式,成本可降至最低,但应用的复杂度会大幅提高。这种模式适合对成本敏感的客户。不过,恢复客户数据较为复杂,因为需要恢复属于特定租户的特定行,此操作可能会影响使用该共享数据库的其他租户。
1.2 多租户设计的关键因素
在云架构中设计多租户时,主要需考虑安全性、可扩展性和伸缩性。此外,从 DevOps 的角度来看,多租户会带来额外的复杂性,我们需要确保能够有效管理升级、排查故障、维护高服务水平和运营效率。
1.3 数据安全
数据安全需考虑两个层面:租户级别(通常是一个组织)和最终用户级别(租户的成员或员工)。
- 租户级安全 :为实现安全模型,需在租户级别创建数据库访问账户,该账户可使用 ACL 指定特定租户可访问的数据库对象。同时,可使用安全令牌服务实现租户级别的访问控制。
- 应用级安全 :在应用层面,可防止用户访问他们无权访问的数据。若数据库表在租户间共享,则需按租户过滤数据访问。可通过在每条记录中添加存储租户 ID 的列来实现,典型的 SQL 语句会包含基于租户 ID 等于用户账户安全 ID 的 where 子句。
- 数据加密 :除数据库级安全外,组织政策或法规要求可能强制对静态数据进行加密。云服务提供商和第三方供应商提供多种加密选项,从客户端手动实现到全自动解决方案。加密敏感数据字段是良好实践,但要注意避免对索引列进行加密,以免导致全表扫描,影响性能。应仔
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



