5.2.4.2 SaaS多用戶隔離
對于SaaS服務而言,解決SaaS底層架構的安全問題關鍵在于,在多用戶共享應用的情況下如何解決用戶之間的隔離問題。
解決用戶之間的隔離問題可以在云架構的不同層次實現,即物理層隔離、平臺層隔離和應用層隔離。
(1)物理層隔離
這種方法為每個用戶配置單獨的物理資源,以實現在物理上的隔離。用戶不用去擔心服務器的地理位置和性能,不同的用戶可以申請分配到屬于自己的不同的服務器,那么用戶之間數據就不會發(fā)生沖突,同時也達到了隔離的目的。這種方法是最容易實現,安全性較好,但也是硬件成本最高的,能夠支持的用戶數量也最少。
(2)平臺層隔離
平臺層處于物理層和應用層之間,主要是封裝物理層提供的服務,使用戶能夠更加方便地使用底層服務。要在這一層上實現隔離,需要平臺層能夠響應不同用戶的不同需求,把屬于不同用戶的數據按照映射的方式反饋給不同的用戶,這樣就能夠達到隔離的目的。這種方式平臺層會消耗較多的資源,實現數據和用戶請求的映射,但硬件成本比物理層隔離方案低,能夠支持的用戶數量也比物理層隔離方案多。
(3)應用層隔離
應用層隔離主要包括應用隔離沙箱和共享應用實例方式。前者采用沙箱隔離應用,每個沙箱形成一個應用池,池中應用與其他池中的應用相互隔離,每個池都有一系列后臺進程來處理應用請求。這種方式能夠通過設定池中進程數目達到控制系統(tǒng)最大資源利用率的目的。
后者要求應用本身需要支持多用戶,用戶之間是隔離的,但是成千上萬的用戶可能使用同一個應用實例,用戶可以用配置的方式對應用進行定制。這種方式具有較高的資源利用率和配置靈活性。