分離の考え方 - SaaS レンズ

分離の考え方

テナントリソースを保護して分離する重要性と価値について、概念レベルでは多くの SaaS プロバイダーの意見が一致します。しかし、分離戦略の実装を詳しく掘り下げていくと、多くの場合、SaaS ISV ごとに十分な分離について独自の定義があることがわかります。

さまざまな考え方があるという点を踏まえて、テナントの分離の価値システム全体を理解しやすくする基本的な概念をいくつか説明します。すべての SaaS プロバイダーは、チームが SaaS 環境の分離フットプリントを定義する際に、チームを導く明確な一連の分離要件を確立する必要があります。以下は、一般的に SaaS テナントの分離モデル全体を作成するいくつかの重要な基本的概念です。

分離は任意ではない – 分離は SaaS の基本要素であり、マルチテナントモデルでソリューションを提供するすべてのシステムで、テナントリソースが確実に分離される手段を講じる必要があります。

認証と承認は分離と同じではない – 認証と承認により SaaS 環境へのアクセスを制御できますが、ログイン画面または API のエントリポイントを越えたからといって、分離が実現されたことにはなりません。これは分離パズルの 1 つにすぎず、それだけでは十分ではありません。

分離の実施をサービスデベロッパーに任せるべきではない – デベロッパーが分離に違反する可能性のあるコードを組み込むことはありませんが、テナントの境界を無意識に越えることはないと想定するのは非現実的です。これを軽減するために、分離ルールを適用する共有メカニズムを介してリソースへのアクセス範囲を (デベロッパーの観点外で) 制御する必要があります。

すぐに利用できる分離ソリューションがない場合は自分で構築する必要がある - AWS Identity and Access Management (IAM) など、テナントを分離するパスの簡素化に役立つセキュリティメカニズムがいくつかあります。これらのツールをより広範なセキュリティスキームと組み合わせて分離プロセスを簡素化できます。ただし、対応するツールまたはテクノロジーによって分離モデルが直接処理されないシナリオが存在する場合もあります。独自の何かを構築する場合であっても、明確なソリューションのないことが分離要件を引き下げる機会を表すべきではありません。

分離はリソースレベルの構造ではない – マルチテナンシーと分離の世界では、分離を、明確なインフラストラクチャリソース間に厳密な境界線を引く手法と考える人もいます。これは、多くの場合、テナントごとに個別のデータベース、コンピューティングインスタンス、アカウント、または Virtual Private Cloud (VPC) がある分離モデルという形になります。これらは一般的な分離の形式ですが、テナントを分離する唯一の方法ではありません。リソースが共有されるシナリオでも、特にリソースが共有される環境では分離を実現する方法があります。この共有リソースモデルにおいて、分離は、実行時に適用されるポリシーによって実施される論理構造にすることができます。ここで重要なのは、分離はリソースのサイロ化と同一にすべきではない点です。

ドメインは特定の分離要件を課す場合がある – テナントの分離を実現するアプローチは多数ありますが、ドメインによっては特定の種類の分離が必要になる制限が課される場合があります。例えば、コンプライアンスの厳しい業界ではテナントごとに独自のデータベースが必要になる場合があります。このような場合、共有ポリシーベースのアプローチでは、分離に不十分である可能性があります。