IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立ヴァンタラ株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-29
(45)【発行日】2024-12-09
(54)【発明の名称】マルチテナント管理システムおよび方法
(51)【国際特許分類】
   G06F 21/62 20130101AFI20241202BHJP
   G06F 21/31 20130101ALI20241202BHJP
【FI】
G06F21/62 318
G06F21/31
【請求項の数】 10
(21)【出願番号】P 2023006837
(22)【出願日】2023-01-19
(65)【公開番号】P2024102743
(43)【公開日】2024-07-31
【審査請求日】2024-03-13
(73)【特許権者】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】在塚 俊之
(72)【発明者】
【氏名】中村 隆喜
(72)【発明者】
【氏名】平井 達哉
(72)【発明者】
【氏名】篠原 智寛
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2013-182295(JP,A)
【文献】特開2009-237671(JP,A)
【文献】特表2013-509657(JP,A)
【文献】特開2015-125510(JP,A)
【文献】米国特許第10009337(US,B1)
【文献】米国特許出願公開第2014/0007178(US,A1)
【文献】米国特許出願公開第2017/0329957(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/31-21/64
(57)【特許請求の範囲】
【請求項1】
ユーザに関する情報であるユーザ情報と、テナントに関する情報であるテナント情報と、複数のリソースのうちのアクセス先のリソースを指定したリソースアクセス要求とをユーザ端末から受け付けるインタフェース装置と、
テナント毎の名前空間を含む複数の名前空間の各々について、当該名前空間に対応のテナントに関連付けられたユーザに関する情報を含んだユーザ管理情報を記憶した記憶装置と、
前記インタフェース装置および前記記憶装置に接続されたプロセッサと
を備え、
各名前空間について、前記ユーザ管理情報は、1または2以上のテナントの各々についてのリソースアクセス範囲のラベルであるテナントスコープを表す情報を含み、
前記記憶装置は、全てのテナントスコープの各々について当該テナントスコープに対応のリソースアクセス範囲を表す情報である全体スコープ管理情報を記憶し、
前記プロセッサは、
受け付けられた前記テナント情報が表すテナントに対応した名前空間を選択し、
受け付けられた前記ユーザ情報が選択された名前空間のユーザ管理情報が有する情報に適合するかの判定である認証判定を行い、
前記認証判定の結果が真の場合、受け付けられた前記リソースアクセス要求に従うアクセス先のリソースが、前記選択された名前空間のユーザ管理情報が表すいずれかのテナントスコープに対応し前記全体スコープ管理情報から特定されるリソースアクセス範囲に属するか否かの判定である認可判定を行い、
前記認可判定の結果が真の場合、受け付けられた前記リソースアクセス要求を実行させる、
マルチテナント管理システム。
【請求項2】
前記複数の名前空間は、不特定テナントに対応の名前空間としてのシステム管理用の名前空間を含み、
前記システム管理用の名前空間に関連付けられた1または2以上のテナントスコープは、全体のリソースの範囲が対応付けられたシステムスコープを含む、
請求項1に記載のマルチテナント管理システム。
【請求項3】
前記システム管理用の名前空間のユーザ管理情報が、前記システム管理用の名前空間とは別の名前空間に対応のテナントのためのテナントスコープを表し、
受け付けられた前記テナント情報から前記システム管理用の名前空間が選択され、前記システム管理用の名前空間のユーザ管理情報を用いて前記認証判定の結果が真となった場合、前記プロセッサは、前記認可判定において、前記リソースアクセス要求を基に、前記システム管理用の名前空間に関連付けられている、前記別の名前空間に対応のテナントのためのテナントスコープを特定し、当該テナントスコープに対応のリソースアクセス範囲を前記全体スコープ管理情報から特定する、
請求項2に記載のマルチテナント管理システム。
【請求項4】
前記各名前空間について、前記ユーザ管理情報は、ユーザのグループ毎に、当該グループに関連付けられた1または2以上のテナントスコープを表す情報を含む、
請求項1に記載のマルチテナント管理システム。
【請求項5】
前記複数のリソースは、ストレージシステムのリソースである、
請求項1に記載のマルチテナント管理システム。
【請求項6】
第1のテナントの第1のユーザに関する情報と第2のテナントの第2のユーザに関する情報とが単一の名前空間のユーザ管理情報に含まれている場合、前記プロセッサは、
前記第2のテナントに対応の名前空間を生成し、
生成した当該名前空間のユーザ管理情報に、前記第2のテナントの前記第2のユーザに関する情報を移す、
請求項1に記載のマルチテナント管理システム。
【請求項7】
前記複数の名前空間のうちの或る名前空間のユーザ管理情報が、当該或る名前空間と異なる1以上の名前空間のユーザ管理情報に登録されている1以上のユーザに関する情報を含む、
請求項1に記載のマルチテナント管理システム。
【請求項8】
前記或る名前空間のユーザ管理情報は、前記1以上のユーザの各々について、当該ユーザに関する情報が登録されている名前空間を表す情報を含み、
前記プロセッサは、
前記或る名前空間のユーザ管理情報から、前記ユーザ情報が表すユーザに対応の名前空間を特定し、
特定された当該名前空間のユーザ管理情報と前記ユーザ情報とを基に前記認証判定を行う、
請求項7に記載のマルチテナント管理システム。
【請求項9】
前記記憶装置が、ユーザ毎に当該ユーザが登録されている名前空間を表す情報であるユーザ所属情報を記憶し、
前記プロセッサは、
前記ユーザ所属情報から、前記ユーザ情報が表すユーザに対応の名前空間を特定し、
特定された当該名前空間のユーザ管理情報と前記ユーザ情報とを基に前記認証判定を行う、
請求項1に記載のマルチテナント管理システム。
【請求項10】
コンピュータが、ユーザに関する情報であるユーザ情報と、テナントに関する情報であるテナント情報と、複数のリソースのうちのアクセス先のリソースを指定したリソースアクセス要求とをユーザ端末から受け付け、
コンピュータが、受け付けられた前記テナント情報が表すテナントに対応した名前空間を選択し、
コンピュータが、受け付けられた前記ユーザ情報が選択された名前空間のユーザ管理情報が有する情報に適合するかの判定である認証判定を行い、
テナント毎の名前空間を含む複数の名前空間の各々について、ユーザ管理情報が、当該名前空間に対応のテナントに関連付けられたユーザに関する情報と、1または2以上のテナントの各々についてのリソースアクセス範囲のラベルであるテナントスコープを表す情報とを含み、
前記認証判定の結果が真の場合、コンピュータが、受け付けられた前記リソースアクセス要求に従うアクセス先のリソースが、前記選択された名前空間のユーザ管理情報が表すいずれかのテナントスコープに対応し全体スコープ管理情報から特定されるリソースアクセス範囲に属するか否かの判定である認可判定を行い、
前記全体スコープ管理情報は、全てのテナントスコープの各々について当該テナントスコープに対応のリソースアクセス範囲を表す情報であり、
前記認可判定の結果が真の場合、コンピュータが、受け付けられた前記リソースアクセス要求を実行させる、
マルチテナント管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、マルチテナントで利用されるシステムにおけるリソースへのユーザアクセスに関する。
【背景技術】
【0002】
ストレージシステム等のシステムにおけるリソースへのアクセスを、許可されたユーザからのアクセス且つ許可された操作のためのアクセスに制限することにより、不正アクセスを防止し、セキュリティ性を高めることが知られている。アクセス制御方式の1つであるRBAC(Role Based Access Control)では、リソースにアクセスするユーザに、業務等に応じてアクセス権を付与したロールが割り当てられ、ユーザに割り当てられたロールに基づいてリソースへのアクセス可否が判定される。これにより、想定外のリソース操作や誤操作等の意図しないリソースアクセスを防止し、ユーザの管理負荷を軽減することができる。
【0003】
異なる複数の組織や異なる複数の部署を複数の「テナント」としたマルチテナント管理システムが知られている。「テナント」は、当該テナントとしての組織や部署に属するユーザのグループでよい。マルチテナント管理システムでは、テナント毎に、リソースが対応付けられる。マルチテナント管理システムでは、テナント間の独立性を担保するために、テナント毎にユーザを独立に管理したり、特定のリソースへのアクセス権を、当該リソースが対応付けられたテナントに限定したり、といったテナント単位でのアクセス制御が必要になる。一方で、複数のテナントにリソースを提供するシステム管理者には、テナントに対応付けられたリソースにアクセスして状態を監視する等の特定の操作を実行する権限が必要になることがある。システム管理者に対して予め任意のテナントに対応付けられたリソースへのアクセス権限を付与しておくことも考えられるが、テナント管理の独立性の観点や、システム管理者の管理負荷低減の観点から、システム管理者に対しても、必要以上に広い権限を付与することは望ましくない。
【0004】
例えば、マルチテナント管理に関する技術を開示する先行技術文献として、特許文献1および特許文献2がある。
【先行技術文献】
【特許文献】
【0005】
【文献】WO2015/200379
【文献】特開2013-8229号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
各テナントに名前空間を割り当て、テナント毎に独立にユーザを管理し、テナントに所属するユーザにロールを割り当てることが考えられる。ユーザは、名前空間に対し認証が成功した場合に、当該名前空間に割り当てられたテナントに対応付けられたリソースにアクセスすることができる。しかし、システム管理者が、複数のテナントそれぞれに対応付けられたリソースへのアクセスが必要な場合は、システム管理者が、テナント別に、当該テナントに対応の名前空間について認証がされる必要がある。このように、テナントの数だけ認証が必要となり、管理が煩雑である。
【0007】
この問題の解決の方法として、複数のテナントを単一の名前空間に割り当て、システム管理者を同じ名前空間に登録することが考えられる。しかし、複数のテナントを単一の名前空間で管理するため、テナント間の独立性を担保することができない。例えば、テナントAのユーザAが先に名前空間に登録されていて、テナントBにユーザAと氏名が同じユーザBが存在する場合、テナントが異なっているがユーザAと氏名が同じためユーザBを名前空間に登録することができない。
【課題を解決するための手段】
【0008】
本開示の代表的な例は、マルチテナント管理システム(以下、この段落において「システム」)が、ユーザに関する情報であるユーザ情報と、テナントに関する情報であるテナント情報と、複数のリソースのうちのアクセス先のリソースを指定したリソースアクセス要求とをユーザ端末から受け付ける。システムが、受け付けられたテナント情報が表すテナントに対応した名前空間を選択する。システムが、受け付けられたユーザ情報が選択された名前空間のユーザ管理情報が有する情報に適合するかの判定である認証判定を行う。テナント毎の名前空間を含む複数の名前空間の各々について、ユーザ管理情報が、当該名前空間に対応のテナントに関連付けられたユーザに関する情報と、1または2以上のテナントの各々についてのリソースアクセス範囲のラベルであるテナントスコープを表す情報とを含む。認証判定の結果が真の場合、システムが、受け付けられたリソースアクセス要求に従うアクセス先のリソースが、選択された名前空間のユーザ管理情報が表すいずれかのテナントスコープに対応し全体スコープ管理情報から特定されるリソースアクセス範囲に属するか否かの判定である認可判定を行う。全体スコープ管理情報は、全てのテナントスコープの各々について当該テナントスコープに対応のリソースアクセス範囲を表す情報である。認可判定の結果が真の場合、システムが、受け付けられたリソースアクセス要求を実行させる。
【発明の効果】
【0009】
本発明の代表的な一例によれば、テナント間の独立性を担保しつつ、ユーザが名前空間毎の認証無しに複数のテナントのリソースにアクセスすることができる。前述した以外の課題、構成および効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
図1】実施形態に係る計算機システムの構成例を示す。
図2】比較例に係る計算機システムの論理構成例を示す。
図3】実施形態に係るリソースアクセスコマンドの例を示す。
図4】実施形態に係るユーザ管理テーブルの例を示す。
図5】実施形態に係るポリシ管理テーブルの例を示す。
図6】比較例に係るスコープ管理テーブルの例を示す。
図7】比較例に係るマルチテナント管理の例を示す。
図8】比較例に係るマルチテナント管理の別の例を示す。
図9】実施形態に係る計算機システムの論理構成例を示す。
図10】実施形態に係る全体スコープ管理テーブルの例を示す。
図11】実施形態に係るユーザ管理テーブルの例を示す。
図12】実施形態に係るスコープ管理部の論理構成例を示す。
図13】実施形態に係るマルチテナント管理の例を示す。
図14】実施形態に係るマルチテナント管理の一変形例を示す。
図15】実施形態に係るユーザ作成および権限設定のフローの例を示す。
図16】実施形態に係るシステム管理者に関する認証および認可フローを示す。
図17】実施形態に係るテナント1管理者に関する認証および認可フローを示す。
図18】実施形態に係るテナント2管理者に関する認証および認可フローを示す。
図19】実施形態に係るマルチテナント管理移行の例を示す。
図20】実施形態に係るマルチテナント管理の別の例を示す。
図21】実施形態に係るマルチテナント管理のまた別の例を示す。
図22】実施形態に係るマルチテナント管理のまた別の例を示す。
図23】実施形態に係るマルチテナント管理のまた別の例を示す。
図24】実施形態に係るユーザ所属テーブルの例を示す。
【発明を実施するための形態】
【0011】
以下の説明では、「インタフェース装置」は、1以上のインタフェースデバイスでよい。当該1以上のインタフェースデバイスは、下記のうちの少なくとも1つでよい。
・1以上のI/O(Input/Output)インタフェースデバイス。I/O(Input/Output)インタフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも1つに対するインタフェースデバイスである。表示用計算機に対するI/Oインタフェースデバイスは、通信インタフェースデバイスでよい。少なくとも1つのI/Oデバイスは、ユーザインタフェースデバイス、例えば、キーボードおよびポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・1以上の通信インタフェースデバイス。1以上の通信インタフェースデバイスは、1以上の同種の通信インタフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2つ以上の異種の通信インタフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0012】
また、以下の説明では、「メモリ」は、1以上の記憶デバイスの一例である1以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも1つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【0013】
また、以下の説明では、「永続記憶装置」は、1以上の記憶デバイスの一例である1以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVME(Non-Volatile Memory Express)ドライブ、または、SCM(Storage Class Memory)でよい。
【0014】
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
【0015】
また、以下の説明では、「プロセッサ」は、1以上のプロセッサデバイスでよい。少なくとも1つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも1つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも1つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも1つのプロセッサデバイスは、処理の一部または全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)またはASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
【0016】
また、以下の説明では、「xxxテーブル」といったテーブル現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし(例えば、構造化データでもよいし非構造化データでもよいし)、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代テーブルされるような学習モデルでもよい。したがって、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2つ以上のテーブルに分割されてもよいし、2つ以上のテーブルの全部または一部が1つの表であってもよい。
【0017】
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、1以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、1以上のハードウェア回路(例えばFPGAまたはASIC)によって実現されてもよいし、それらの組合せによって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置および/またはインタフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機または計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が1つの機能にまとめられたり、1つの機能が複数の機能に分割されたりしてもよい。
【0018】
また、以下の説明では、要素の識別情報の一例としてIDが採用されるが、識別情報は、名前等、要素を識別可能な情報であればよい。
【0019】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別して説明する場合には、参照符号を使用することがある。
【0020】
以下、図面に基づいて、本発明の実施の形態を説明する。なお、以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされており、本発明は、他の種々の形態でも実施する事が可能であり、特に限定しない限り、各構成要素は単数でも複数でも構わない。
【0021】
また、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、実施例の中で説明されている要素の組み合わせの全てが、発明の解決手段に必須であるとは限らない。
【0022】
以下において、本発明の一実施形態に係るマルチテナント管理を説明する。
【0023】
本実施形態に係るストレージシステム(マルチテナント管理システムの一例)は、個別テナントやテナント以外のシステム管理用にそれぞれ別々の名前空間を割り当て、名前空間毎にテナントユーザやシステム管理者ユーザの認証、および特定リソース種別に対するアクセス権限と特定操作の実行権限を設定し、名前空間毎に当該権限の認可判定処理を行う。さらに、ストレージシステムは、テナントやシステムに対応付けたリソース範囲を名前空間を限定せずに管理することにより、ある名前空間に登録したユーザが、別の名前空間に対応付けたリソース範囲を指定してアクセスおよび操作を実行できるようにする。本開示は、ストレージシステムと異なる対象システムへのリソースアクセス制御に適用されてもよい。アクセス実行権限は、例えばユーザのロールに応じて与えられてもよく、他の条件項目を基準に与えれてもよい。
【0024】
図1は、本実施形態に係る計算機システムの構成例を示す。
【0025】
計算機システムは、ユーザ端末100、ホストサーバ110、管理サーバ120およびストレージシステム130、を含む。これらは、ネットワーク160を介して通信可能である。ストレージシステム130は、分散型構成を取ることも可能である。例えば、複数のストレージノード140で構成されたストレージシステム130が採用されてもよい。なお、ストレージノードの数は限定されるものではなく、必要に応じて追加または削減する。分散型ストレージシステムは、既存の技術を用いて構成することが可能である。なお、これら構成要素それぞれの数は任意である。また、ユーザ端末100が、ホストサーバ110、および/または管理サーバ120の機能を含んでもよい。
【0026】
ネットワーク160は、例えば、LAN(Local Area Network)やSAN(Storage Area Network)であってもよい。ホストサーバ110と管理サーバ120は、異なるネットワークを介してストレージシステム130にアクセスしてもよく、ユーザ端末100は、ネットワーク160と異なるネットワークを介して、ホストサーバ110または管理サーバ120にアクセスしてもよい。
【0027】
ユーザ端末100は、ユーザから計算機システムへのアクセスを可能とする装置である。ユーザ端末100は、例えば一般的な計算機構成を有することができ、例えば、インタフェース装置、記憶装置およびそれらに接続されたプロセッサを含む。ユーザ端末100は、特定処理専用のハードウェアを含んでもよい。ユーザ端末100は、I/Oデバイス(例えば、キーボード、ポインティングおよび表示デバイス)を有してよい。
【0028】
ホストサーバ110は、ユーザアプリケーション等が動作するホストマシンである。ホストサーバ110は、例えば一般的な計算機構成を有することができ、インタフェース装置、記憶装置およびそれらに接続されたプロセッサを含む。ホストサーバ110は、特定処理専用のハードウェアを含んでもよい。ホストサーバ110は、様々なソフトウェアプログラムを実行することができ、例えば、データベースやWebサービスを実行し、それらにより作られたデータを、ネットワーク160を介してストレージシステム130にライトおよびリードする。ホストサーバ110は、後述するリソース利用アプリケーションを実行してもよい。
【0029】
管理サーバ120は、ストレージシステム130を管理する。管理サーバ120は、例えば一般的な計算機構成を有することができ、インタフェース装置、記憶装置およびそれらに接続されたプロセッサを含む。管理サーバ120は、特定処理専用のハードウェアを含んでもよい。管理サーバ120は、後述する認証および認可システムを管理するソフトウェアプログラムを実行してもよい。
【0030】
計算機システムは、後述する認証および認可システムを含む。
【0031】
ストレージシステム130は、コントローラ131およびドライブボックス137を含む。コントローラ131は、ホストインタフェース132、管理インタフェース133、ドライブインタフェース134、メモリ136、およびそれらに接続されたプロセッサ135、を含む。これら構成要素の数は任意である。
【0032】
ホストインタフェース132は、ホストサーバ110との通信のためのインタフェース装置である。管理インタフェース133は、管理サーバ120との通信のためのインタフェース装置である。ドライブインタフェース134は、ドライブボックス137との通信のためのインタフェース装置である。
【0033】
ドライブボックス137は、ホストサーバ110のアプリケーションプログラムが使用する各種データを格納する1以上の不揮発性または揮発性の記憶ドライブを収容する。ドライブボックス137は、コントローラ131のドライブインタフェース134に接続される。図1の構成例において、ドライブボックス137は、複数のハードディスクドライブ(HDD)138および複数のソリッドステートドライブ(SSD)139を含む。複数の記憶ドライブ138、139は、RAID(Redundant Arrays of Independent Disks)等のデータ冗長化のためのグループを構成してもよい。
【0034】
コントローラ131は、ストレージシステム130の制御を行う。コントローラ131は、ホストサーバ210のデータを格納するためのボリュームを、ホストサーバ210に提供する。コントローラ131は、記憶ドライブ138および139の物理的な記憶領域をボリュームに割り当てて、データを記憶ドライブ138および139に格納する。コントローラ131は、ホストサーバ110にストレージとしての機能を提供する。
【0035】
プロセッサ135は、ホストサーバ110からのリードコマンドやライトコマンドに応じて、対応するドライブボックス137に格納されたデータを転送指示する。コントローラ131のメモリ136は、例えば、SDRAM(Synchronous Dynamic Random Access Memory)等の半導体メモリで構成される。メモリは、揮発メモリと不揮発メモリと組み合わせて構成してもよい。
【0036】
プロセッサ135は、ストレージシステム130の制御、ホストサーバ110、管理サーバ120およびドライブボックス137との通信のための処理を実行する。メモリ136は、プロセッサ135の主記憶として、制御や通信のためのプログラムおよび各種データを格納する。メモリ136は、後述する認証および認可システムを実現するソフトウェアプログラムを格納する。また、メモリ136は、コントローラ131のディスクキャッシュ(キャッシュメモリ)としても使用される。プロセッサ135は、メモリ136に格納されている、命令コードを含むプログラムを実行することで所定の機能を実現する。
【0037】
複数のコントローラ131が冗長化のために実装されていてもよい。複数のコントローラ131は、ストレージシステム130内のネットワークを介して通信する。コントローラ131は、ストレージシステム130内のネットワークを介して、ライトデータの2重化やメタデータの共有等を行う。一方のコントローラ131が保守や障害等で閉塞しても、もう一方のコントローラ131により、ストレージ処理を継続可能となる。なお、ストレージシステム130は、一般的なサーバ計算機を用いて構成してもよく、また、特定処理専用のハードウェアを含んでもよい。また、前述したように、例えば構成要素130、140、150をストレージノードとし、これらを連携して1つのストレージシステムを構成してもよい。なお、ストレージノードの数は限定されるものではなく、必要に応じて追加または削減する。分散型ストレージシステムは、既存の技術を用いて構成することが可能である。
【0038】
なお、計算機システムは、ここで示したもの以外も含んでよい。例えば、ネットワークには、スイッチやルーター等のネットワーク機器が間に接続されてもよい。また、パブリッククラウド上のストレージサービスに外部ネットワークを経由して接続する構成でもよい。
【0039】
図2は、比較例に係る計算機システムの論理構成例を示す。また、図では、名前空間を「NS」と略記する。
【0040】
計算機システムは、リソース利用アプリケーション220、認証基盤230、認可基盤240、およびリソース管理基盤250を含む。これらは、計算機システムに実装されるソフトウェア構成要素または例えばプロセッサにより実現される機能構成要素である。
【0041】
リソース利用アプリケーション220は、例えば、ホストサーバ110に含まれる。認証基盤230、認可基盤240、リソース管理基盤250、および名前空間管理基盤260は、例えば、ストレージシステム130に含まれる。各機能がいずれのハードウェア装置に実装されるかは、計算機システムの設計に依存する。例えば、IDaaS(Identity as a Service)等の共通認証および認可サーバとして提供されているサービスが、認証基盤230、認可基盤240、および/または名前空間管理基盤260として用いられてもよい。
【0042】
図2に示すように、ユーザ200は、ユーザ端末100を使用して、計算機システムのソフトウェアリソースまたはハードウェアリソースにアクセスする。ユーザ端末100は、ユーザからの入力に応じて、リソース利用アプリケーション220にアクセスする。ユーザは、ユーザ端末100を介してリソース利用アプリケーション220に対し、対象リソース、リソースに対する操作、および操作パラメータを指定したコマンドを発行することにより、リソースアクセスを要求する。
【0043】
ユーザ端末100は、ユーザインタフェース(I/F)211、ユーザ取得部212、コマンド取得部213、およびテナント取得部214を含む。ユーザインタフェース211は、ユーザ200がユーザ端末100を用いてリソース操作の実行を要求するためのユーザインタフェースであり、例えば、Webブラウザを利用することができる。
【0044】
ユーザ取得部212は、ユーザ200が入力したユーザ名、アカウント名、ログインID、パスワード等のユーザ情報を取得する。コマンド取得部213は、ユーザがユーザインタフェース211を介して入力したリソースアクセスコマンドを取得し、リソースアクセスコマンドを、認可基盤240のポリシ判定部242、およびリソース利用アプリケーション220のリソースアクセス実行部223に送信する。テナント取得部214は、ユーザ200が入力した、自身が所属するテナントや、ユーザがアクセスを要求するリソースを対応付けたテナント等のテナントのテナント情報を取得し、取得したテナント情報を、認証基盤230の名前空間選択部231、および認可基盤の名前空間選択部241に送信する。
【0045】
リソース利用アプリケーション220は、ストレージリソース、コンピュートリソース(ベアマシン、VM(Virtual Machine)、コンテナを含む)、ネットワークリソース等のリソースにアクセスして処理を実行する。リソース利用アプリケーション220は、認証要否判定部221、アクセス権判定部222、リソースアクセス実行部223およびリソース利用実行部224を含む。
【0046】
認証要否判定部221は、ユーザ200がリソースアクセス要求を行った際に(リソースアクセスコマンドを送信した際に)、該ユーザを識別する情報、例えばアカウント名をユーザ端末100のユーザ取得部212から取得し、認証が必要かまたはすでに認証済ユーザかを判定する。認証が必要かつ未認証だった場合、認証要否判定部221は、認証基盤230に認証を要求する。ユーザ200が認証済み、あるいは認証基盤230によって認証が完了した通知を受信した場合に、認証要否判定部221は、認可基盤240に、リソースアクセス要求(リソースアクセスコマンド)の認可判定を要求する。
【0047】
リソースアクセス実行部223は、ユーザ端末100のコマンド取得部213からリソースアクセスコマンドを取得する。なお、リソースアクセス実行部223によるリソースアクセスコマンド取得は、認可基盤240のポリシ判定部242による判定の結果、当該リソースへのアクセスおよび操作の実行が認可されてからでもよい。
【0048】
アクセス権判定部222は、ユーザ200が要求したリソースアクセスが認可されているかを判定する。認可済の場合、アクセス権判定部222は、リソースアクセスコマンドの実行を、リソースアクセス実行部223に許可する。
【0049】
リソースアクセス実行部223は、リソースアクセスコマンドをリソース管理基盤250に発行する。リソース利用実行部224は、リソースアクセスに基づいて所定の処理を実行する。
【0050】
認証基盤230は、リソース利用アプリケーション220の認証要否判定部221から認証要求を受けた場合に、ユーザ認証を実行する。認証基盤230は、名前空間選択部231およびユーザ認証部232を含む。名前空間選択部231は、ユーザ端末100のテナント取得部214から取得したテナント情報に基づいて、テナントに割り当てられた名前空間を選択する。ユーザ認証部232は、ユーザ200からのサインインを処理する。具体的には、ユーザ認証部232は、例えば、ユーザ200からユーザ端末100を介して入力されたパスワードおよび/または指紋や顔の生体情報等を用いて、ユーザ200が計算機システムに予め登録されたユーザ本人であることを認証する。
【0051】
名前空間管理基盤260は、1以上の名前空間261、および、名前空間セレクタ262および264を含む。名前空間261は、ユーザ管理テーブル(TBL)263、ポリシ管理テーブル265、およびスコープ管理テーブル266を含む。
【0052】
名前空間管理基盤260は、認証基盤230のユーザ認証部232がユーザ管理テーブル263へのアクセスを要求した際に、名前空間選択部231が選択した名前空間に基づいて、名前空間セレクタ262により選択したいずれかの名前空間261のユーザ管理テーブル263をユーザ認証部232に連結する。
【0053】
ユーザ管理テーブル263は、認証対象として登録されたユーザの情報、例えば、ユーザ名、役職、E-mailアドレス、パスワード、生体情報を照合するための情報、所属グループ、アクセス日時、割り当てたロール、アクセス対象リソース種別のアクセス範囲を示すスコープ等を格納する。いずれかの名前空間261のスコープ管理テーブル266に含まれるスコープがユーザに割り当てられる。ユーザ認証部232は、ユーザ200がサインイン時に入力したユーザ情報と、名前空間管理基盤260のユーザ管理テーブル263に格納されている情報とを照合することにより、ユーザ認証を行う。
【0054】
ユーザ認証部232によって認証が成功した場合は、ユーザ認証部232は、当該ユーザに割り当てられたロールおよびスコープを含むユーザ情報を、認可基盤240のポリシ判定部242に送信する。
【0055】
なお、最初にユーザ認証を実行した際に取得されたユーザ情報は、対象ユーザの認証が有効な間(有効セッション中)、リソース利用アプリケーション220、認証基盤230および認可基盤240のいずれか、またはその全てに保持されてよい。同一ユーザによるリソースアクセス要求が発行された場合には、保持されたユーザ情報を用いてポリシ判定が行われてもよい。保持されたユーザ情報は、セッション有効期間終了と共に破棄されてもよい。
【0056】
認可基盤240は、認証基盤230において認証されたユーザ200に対し、該ユーザ200がアクセス要求したリソースへのアクセス権およびリソースに対する操作の実行権を有するかを判定する。ユーザ200が、アクセス権および操作の実行権を有する場合、認可基盤240は実行を認可する。ユーザ200がアクセス権または操作の実行権を有しない場合は、認可基盤240は実行を認可しない。
【0057】
認可基盤240は、名前空間選択部241、ポリシ判定部242、およびアクセス認可部243を含む。
【0058】
名前空間選択部241は、ユーザ端末100のテナント取得部214から取得したテナント情報に基づいて、テナントに割り当てられた名前空間を選択する。名前空間管理基盤260は、認可基盤240のポリシ判定部242がポリシ管理テーブル265およびスコープ管理テーブル266へのアクセスを要求した際に、名前空間選択部241が選択した名前空間に基づいて、名前空間セレクタ264により選択したいずれかの名前空間261のポリシ管理テーブル265およびスコープ管理テーブル266をポリシ判定部242に連結する。
【0059】
ポリシ判定部242は、ユーザ認証部232から、認証済ユーザについて、ロールおよびスコープを含むユーザ情報を取得する。また、ポリシ判定部242は、要求されたリソースアクセスコマンドが対象とするリソースおよび当該リソースに対する操作の情報を、ユーザ端末100のコマンド取得部213から取得する。
【0060】
ポリシ判定部242は、取得されたそれらの情報を、名前空間管理基盤260のいずれかの名前空間261に対応付けられた、ポリシ管理テーブル265に格納されたアクセスポリシの情報(ポリシ情報)、およびスコープ管理テーブル266に格納されたアクセス範囲の情報(スコープ情報)と照合し、該ユーザ200が、要求したリソース種別のリソース範囲へのアクセス権および操作実行権を有するかを判定する。
【0061】
ポリシ管理テーブル265は、ポリシ判定部242で使用するポリシ情報を格納する。ポリシ情報には、例えば、ロール、ロールに付与された権限、権限がアクセスを許可するリソース、および該リソースに対し許可する操作を対応付けた判定ルールが含まれる。ポリシ判定部242は、ポリシ管理テーブル265を参照し、ユーザ認証部232で認証されたユーザ200に割り当てられているロールに、要求されたリソースアクセスおよびリソースに対する操作を実行する権限が付与されているかを判定する。また、ポリシ判定部242は、スコープ管理テーブル266を参照し、ユーザ認証部232で認証されたユーザ200に割り当てられているスコープに、要求されたリソース範囲へのアクセス権限が付与されているかを判定する。
【0062】
アクセス認可部243は、ポリシ判定部242によって判定した結果、ユーザ200が、要求したリソース種別のリソース範囲へのアクセス権および要求操作の実行権を有する場合に、当該リソースへのアクセスおよび操作を認可する。アクセス認可部243は、認可コードをリソース利用アプリケーション220に送信する。
【0063】
リソース利用アプリケーション220、認証基盤230および認可基盤240のいずれか、またはその全てに保持されているロールおよびスコープ割り当て情報は、セッション有効期間が終了した際に、セッション情報と共に破棄されてもよい。
【0064】
他の例において、保持されているユーザ情報は、必要なタイミングで、ユーザにロールおよびスコープを割り当てる通常の手段等を用いて更新された際に、認証基盤230のユーザ管理テーブル263のロールおよびスコープ割り当て情報と同期させ、新たなセッションを開始した時に使用されてもよい。これにより、セッション有効期間終了後に、同一ユーザによって新たなリソースアクセスが要求された際には、既存のロールおよびスコープ割り当て情報に基づいてポリシ判定を実行することができる。
【0065】
リソース管理基盤250は、ストレージリソース(ボリューム、プール、ファイルディレクトリ等)や、コンピュートリソース(VM、コンテナ等)、ネットワークリソース(ドメイン、ポート、チャネル、プロトコル等)等のリソースを管理する。リソース管理基盤250は、1または複数のリソース25を含む。
【0066】
例えば、リソース25Aは、データストレージのボリュームである。リソース25Bは、データストレージのファイルディレクトリである。リソース25Cは、VMである。リソース25Dは、コンテナである。リソース25Eは、ネットワークリソースのドメインである。リソースF25Fは、ネットワークリソースのポートである。
【0067】
図2は、比較例に係る認証、認可およびリソースアクセス処理の流れの例を示す。認証および認可プロトコルは、例えば、OAuth2、OpenID Connect、SAML等の規格に基づいて実行され得る。認証および認可に必要な情報を含有するデータ(例えば種々のトークン)が、ユーザ端末100、リソース利用アプリケーション220、認証基盤230、および認可基盤240の間でやり取りされ、セキュリティを保全しながら認証および認可処理が実行され得る。上述のように、ユーザ200は、ユーザ端末100を利用して、リソースアクセスコマンドを送信する。
【0068】
図3は、ユーザ端末100のコマンド取得部213が発行するリソースアクセスコマンドの例を示す。
【0069】
リソースアクセスコマンドは、コマンドの項目311および項目毎の指定312といった情報を有する。項目311は、項目を表す。指定312は、項目についての具体的な値を表す。リソースアクセス実行部223がリソース管理基盤250にこのようなリソースアクセスコマンドを発行する。
【0070】
リソースアクセスコマンドは、対象のリソース、リソースに対する操作、および操作におけるパラメータ等を指定する。例えば、REST APIのようなアプリケーションプログラミングインタフェースを用いてストレージリソースアクセスを実行することができる。アクセス対象のリソースは、例えば、プールやボリューム等のストレージシステムのデータ格納領域である。上述のように、アクセスおよび操作されるリソースは、ストレージリソースに限定されない。
【0071】
アクセス対象のリソースURI(Universal Resource Identifier)301は、リソース(本例ではボリューム)を同定する。リソースURI301で指定したリソースに対し、リソースアクセスコマンドは、ボリューム容量を変更する操作302を定義する。操作302のために指定されるパラメータは、ストレージボリュームID303、ボリュームタイプ304、ボリューム容量305、を含む。操作302例は、他にボリューム作成、ボリューム削除、ボリューム情報取得等を含む。
【0072】
他のリソースアクセスの例は、コンピュートリソースにアクセスし、仮想マシン(VM)や、Docker Containerの生成、削除、変更等を行う。他のリソースアクセスの例は、ネットワークリソースにアクセスし、特定ドメインの情報を取得または特定ネットワークポートを作成する。
【0073】
ユーザ200が、ユーザ端末100を介してリソースアクセスを要求した際、リソース利用アプリケーション220内の認証要否判定部221は、ユーザ200がすでに認証済みかを判定する。まだ認証されていないユーザ200の場合に、認証基盤230のユーザ認証部232に、ユーザ認証を要求する。
【0074】
ユーザ認証部232は、単独の認証タイプまたは複数の認証タイプの組み合わせを用いて、ユーザ認証を実行し、正当なユーザであるかを判定する。認証方法は、種々の認証システムで用いられている公知の方法を用いることができる。また、外部の認証システムに認証処理を委託することも可能である。
【0075】
図4は、ユーザ管理テーブル263の例を示す。
【0076】
図4に例示のユーザ管理テーブル263は、テナント1を管理する名前空間に割り当てたユーザ情報を格納する。ユーザ情報には、例えばユーザ名、所属グループ、役職、E-mailアドレス、パスワード、生体情報を照合するための情報、アクセス日時、割り当てたロールおよびスコープ等を格納する。図4には、ユーザ情報に含まれる情報の例として、ユーザID401、ユーザ名402、所属グループ名403、ロール名404、およびスコープ405がある。ユーザID401は、ユーザIDを表す。ユーザ名402は、ユーザの名前を表す。所属グループ名403は、ユーザが所属するユーザグループの名前を表す。ロール名404は、ユーザグループに属するユーザのロールの名前を表す。スコープ405は、アクセス対象リソースの範囲のラベルを表す。
【0077】
図4が示す例によれば、ID1のユーザに対し、ユーザ1、グループS1、ロール2、ロール4、ロール10、ロール12、およびテナント1スコープが設定されている。ロール名404およびスコープ405は、アクセス制御対象テナントを管理する名前空間にユーザを登録した際等に割り当てる。例えば、ユーザ1はグループ1に所属し、ロール2、ロール4、ロール10、ロール12、およびテナント1スコープが割り当てられている。また、ユーザ2はグループT1に所属し、ロール3、ロール4、ロール11、ロール12、およびテナント1スコープが割り当てられている。ユーザ3およびユーザ4はグループT1-2に所属し、ロール4、ロール12、およびテナント1スコープが割り当てられている。
【0078】
図5は、ポリシ情報を格納するポリシ管理テーブル265の例を示す。
【0079】
ロールそれぞれに対し、実行権限を付与する操作と対象リソース種別が対応づけられている。具体的には、図5に例示のポリシ管理テーブル265は、ロール毎に、ロールID501、ロール名502、およびポリシ503といった情報を有する。ロールID501は、ロールのIDを表す。ロール名502は、ロールの名前を表す。ポリシ503は、ロールに対応付けられているリソース種別504およびリソースに対する操作505といった情報を含む。
【0080】
例として、ロール1には、対象リソース種別として、ボリューム(/Obj/Volume)、LUN(/Obj/LUN)、プール(/Obj/Pool)、ドライブ(/Obj/Drive)、性能(/Obj/Performance)、コンピュートノード(/Obj/Compute_node)が、それらのリソース種別に対する操作として、情報取得(GET)権限が、付与されている。
【0081】
また、ロール2には、ボリュームリソース種別(/Obj/Volume)に対し、作成(POST)操作権限が、ロール3には、ボリュームリソース種別(/Obj/Volume)に対し、更新(PATCH)操作権限が、ロール4には、ボリュームリソース種別(/Obj/Volume)に対し、参照(GET)操作権限が付与されている。これに基づいて、例えばロール1を割り当てたユーザには、ボリューム、LUN、プール、性能、コンピュートノードリソース種別に対する情報取得権限が付与される。またロール2を割り当てたユーザには、ボリュームリソース種別の作成権限が、ロール3を割り当てたユーザには、ボリュームリソース種別の更新権願がそれぞれ付与される。なお、ポリシ管理テーブルは、名前空間毎に独立に定義してもよいし、システム全体で共通のポリシ管理テーブルを用いてもよい。
【0082】
図6は、比較例に係るスコープ管理テーブル266の例を示す。
【0083】
図6に例示のスコープ管理テーブル266は、テナント1のスコープ情報を格納する。スコープ情報は、例えばスコープ名、リソース種別、リソース種別に対するアクセス範囲等の情報を含む。図6が示す例によれば、例えば、スコープ管理テーブル266は、スコープID601、スコープ名602、リソース種別603、およびアクセス範囲604といった情報を含む。スコープID601は、スコープのIDを表す。スコープ名602は、スコープの名前を表す。リソース種別603は、リソースの種別を表す。アクセス範囲604は、リソースの範囲を表す。
【0084】
図6が示す例によれば、テナント1スコープの対象リソース種別として、ボリューム(/Obj/Volume)、コンピュートノード(/Obj/Compute_node)が指定され、ボリュームリソース種別のアクセス範囲としてVolume_ID=1~9が割り当てられ、コンピュートノードリソース種別のアクセス範囲としてCompute_node_ID=1~5が割り当てられる。これにより、テナント1スコープを割り当てたユーザは、ボリュームリソース種別のVolume_ID=1~9、およびコンピュートノードリソース種別のCompute_node_ID=1~5のアクセス範囲へのアクセスが可能になる。図4が示す例では、ユーザ1にテナント1スコープが割り当てられている。したがって、ユーザ1は、テナント1スコープとして規定したリソース種別のアクセス範囲へのアクセスが可能である。
【0085】
例えば、テナント1を管理する名前空間に登録されたユーザ1が、テナント2のリソースにもアクセスしたい場合は、テナント2を管理する名前空間に、テナント2スコープを割り当てたユーザ登録を行う。この場合は、テナント1に対応付けたリソースにアクセスする場合と、テナント2に対応付けたリソースにアクセスする場合のそれぞれにおいて、ユーザ1は、独立にユーザ認証およびアクセス認可を行う必要がある。
【0086】
図7は、比較例に係るマルチテナント管理の例を示す。
【0087】
図7が示す例では、テナント管理対象外のシステムリソースも、本論理構成により、システム用名前空間を用いて管理される。名前空間261の一例であるシステム用名前空間261-1には、システム管理者が、ユーザとして登録され、グループS0に所属される。グループS0には、システム編集ロールとシステムスコープが割り当てられている。「システムリソース」は、システム管理者による管理対象のリソースであって、ストレージシステム130における全てのリソース種別のリソース(例えば、プール、ポート、ドライブ、ストレージノード等)である。「システム編集ロール」は、システムリソースに属するリソースに対する作成、削除、設定変更、更新等の編集操作を許可するロール(例えば図5に例示の“ロール5”や“ロール6”等)である。「システムスコープ」は、システムリソースをアクセス範囲として規定する。グループS0に所属するユーザは、システムスコープが規定するリソースアクセス範囲に対し、システム編集ロールが規定する操作を実行する権限を有する。システム管理者は、グループS0に所属するため、システムリソースに対し、システム編集ロールが許可する操作を実行することができる。
【0088】
名前空間261の他の一例であるテナント1用名前空間261-2には、システム管理者およびテナント1管理者がユーザとして登録される。システム管理者はグループS1に所属され、テナント1管理者がグループT1に所属される。グループS1にはリソース作成ロールとテナント1スコープが割り当てられている。また、グループT1にはリソース更新ロールとテナント1スコープが割り当てられている。「テナント1リソース」は、ボリュームやコンピュートノード等のリソースのうち、テナント1に対応付けたアクセス範囲のリソースである。「リソース作成ロール」は、テナント1リソースに属するリソースに対する作成操作(例えば図5に例示の“ロール2”や“ロール10”)を許可するロールである。また、「リソース更新ロール」は、テナント1リソースに属するリソースに対する設定変更等の更新操作(例えば図5に例示の“ロール3”や“ロール11”)を許可するロールである。「テナント1スコープ」は、テナント1リソースをアクセス範囲として規定する。グループS1に所属するユーザは、テナント1スコープが規定するテナント1リソースに対し、リソース作成ロールが規定する操作を実行する権限を有する。また、グループT1に所属するユーザは、テナント1スコープが規定するテナント1リソースに対し、リソース更新ロールが規定する操作を実行する権限を有する。
【0089】
テナント1名前空間261-2に登録されたシステム管理者は、グループS1に所属するため、テナント1リソースに対し、リソース作成ロールが許可する操作を実行することができる。また、テナント1名前空間261-2に登録されたテナント1管理者は、グループT1に所属するため、テナント1リソースに対し、リソース更新ロールが許可する操作を実行することができる。
【0090】
名前空間261のさらに他の一例であるテナント2用名前空間261-3についても、テナント1用名前空間261-2と同様のユーザ管理を行うことができる。さらに別のテナントを管理する場合には、テナント用名前空間を追加して同様の管理を行う。例えば、1人のシステム管理者が、システムリソース、テナント1スコープ、テナント2スコープのように、別々の名前空間に対応付けたリソースアクセス範囲に対し、必要な操作を行うためには、各名前空間へのユーザ登録および管理が必要となるため、1人のユーザが複数のアカウント情報を扱うことになり管理が煩雑である。
【0091】
このようにテナント毎に独立に認証および認可を行う煩雑さを避ける方法として、図8に例示の方法がある。
【0092】
図8は、比較例に係るマルチテナント管理の別の例を示している。
【0093】
図8が示す例によれば、複数のテナントが単一の名前空間で管理される。例えば、システム用名前空間261-1に、システム管理者、テナント1管理者、およびテナント2管理者がユーザとして登録される。システム管理者はグループSに、テナント1管理者はグループT1に、テナント1管理者はグループT2に所属される。グループSにはシステム編集ロールおよびリソース作成ロール、システムスコープ、テナント1スコープおよびテナント2スコープが割り当てられている。また、グループT1にはリソース更新ロールとテナント1スコープが割り当てられている。さらに、グループT2にはリソース更新ロールとテナント2スコープが割り当てられている。各ロール、スコープ、およびリソース定義については、図7と同様であるため説明を省略する。
【0094】
グループSに所属するユーザは、システムスコープが規定するシステムリソースに対し、システム編集ロールが規定する操作を実行する権限を有するとともに、テナント1スコープが規定するテナント1リソース、およびテナント2スコープが規定するテナント2リソースに対し、リソース作成ロールが規定する操作を実行する権限を有する。また、グループT1に所属するユーザは、テナント1スコープが規定するテナント1リソースに対し、リソース更新ロールが規定する操作を実行する権限を有する。さらに、グループT2に所属するユーザは、テナント2スコープが規定するテナント2リソースに対し、リソース更新ロールが規定する操作を実行する権限を有する。
【0095】
システム管理者は、グループSに所属するため、システムリソースに対するシステム編集ロールが規定する操作、テナント1リソースに対するリソース作成ロールが許可する操作、およびテナント2リソースに対するリソース作成ロールが許可する操作を実行することができる。さらに別のテナントを管理する場合には、テナント管理者を登録して同様の管理を行う。このように単一名前空間に登録したユーザは、システムリソースを含む複数のテナントリソースへのアクセスおよび操作を実行することができる。ただし、この場合は、名前空間内でユーザやグループ等のRBAC等で定義される構成要素は一意に登録する必要があるため、例えば、同じ名前空間で管理するユーザは、テナントが異なっても同一ユーザ名のユーザを登録することができない。つまり、テナント間の独立性を担保することができない。
【0096】
そこで、図7に例示のマルチテナント管理に関する課題と図8に例示のマルチテナント管理に関する課題の両方を解決するマルチテナント管理(図9以降を参照して説明するマルチテナント管理)が構築される。
【0097】
図9は、本実施形態に係る計算機システムの論理構成例を示す。図9を参照して、図2に例示の計算機システムとの相違点を主に説明する。
【0098】
名前空間管理基盤910は、図2で説明した名前空間管理基盤260と異なり、名前空間毎にスコープ管理テーブルを割り当てない。スコープ情報は、名前空間管理基盤910内の全体スコープ管理テーブル912に格納されまとめて管理される。全体スコープ管理テーブル912はスコープ管理部913が管理する。ユーザ管理テーブル914に格納した情報に対応のユーザに割り当てるスコープは、全体スコープ管理テーブル912から選択される。したがって、ユーザには、当該ユーザ自らが所属するテナント以外に対応付けたリソースのアクセス範囲を規定するスコープを割り当てることが可能である。これにより、システムを管理する名前空間に登録されたユーザや、特定テナントを管理する名前空間に登録されたユーザが、当該ユーザ自らが所属する名前空間においてのみユーザ認証し、同名前空間で規定したユーザ情報、およびポリシ情報に基づく認可を行うことにより、当該ユーザ自らが所属する名前空間のみならず、当該ユーザ自らが所属しない名前空間に対応付けたアクセス範囲のリソースにアクセスすることができる。
【0099】
図10は、全体スコープ管理テーブル912の例を示す。
【0100】
全体スコープ管理テーブル912は、複数のテナント管理用名前空間に対応付けた、リソース種別毎のアクセス範囲を規定するスコープ情報を格納する。スコープ情報は、スコープ毎に、図6に示したのと同様の構成要素であるスコープID1001、スコープ名1002、リソース種別1003、およびアクセス範囲1004を含む。また、スコープ情報は、スコープ毎に、スコープを指定することが可能な名前空間の情報である指定可能名前空間1005を含む。図10が示す例では、例えば、システムスコープの対象リソース種別として、プール(/Obj/Pool)、ポート(/Obj/Port)、ドライブ(/Obj/Drive)、ストレージノード(/Obj/Storage_node)が指定され、各リソース種別のアクセス範囲としてシステム全体が割り当てられる。また、テナント1スコープの対象リソース種別として、ボリューム(/Obj/Volume)、コンピュートノード(/Obj/Compute_node)が指定され、ボリュームリソース種別のアクセス範囲としてVolume_ID=1~9、コンピュートノードリソース種別のアクセス範囲としてCompute_node_ID=1~5が割り当てられる。これにより、テナント1スコープを割り当てたユーザは、ボリュームリソース種別のVolume_ID=1~9、およびコンピュートノードリソース種別のCompute_node_ID=1~5のアクセス範囲へのアクセスが可能になる。また、テナント1スコープをアクセス対象として指定可能な名前空間は、システム管理用名前空間、およびテナント1管理用名前空間である。同様に、テナント2スコープ、テナント3スコープ等、ユーザがアクセスするテナントに対応付けたリソース範囲を既定するスコープが登録される。
【0101】
図11は、ユーザ管理テーブル914の例を示す。
【0102】
ユーザ管理テーブル914は、システム管理用名前空間で管理するユーザ管理テーブルの例である。ユーザ管理テーブル914は、図4に例示のテーブル263と同様に、ユーザ情報に含まれる情報として、例えば、ユーザID1101、ユーザ名1102、所属グループ名1103、ロール名1104、およびスコープ1105を有する。情報1101~1105は、図4に例示の情報401~405と同様である。システム管理者であるユーザ1には、ロール1、ロール5、ロール6、およびシステムスコープが割り当てられている。したがって、ユーザ1は、システムスコープが規定したシステムリソースへのアクセス、およびシステムリソースに対するロール1、ロール5、ロール6が規定する操作が可能である。また、別のシステム管理者であるユーザ2には、ロール1、ロール2、ロール5、ロール6、ロール10、システムスコープおよびテナント1スコープが割り当てられている。したがって、ユーザ1は、システムスコープが規定したシステムリソースに対するロール1、ロール5、ロール6が規定する操作と、テナント1スコープが規定したテナント1リソースに対するロール2、ロール10が規定する操作が可能である。
【0103】
テナント1の管理は、図4に示したテナント1管理用名前空間のユーザ管理テーブル263を用いて行われる。このため、システム管理用名前空間のユーザ、ユーザグループ等のRBACで定義される構成要素は、例えばテナント1管理用名前空間において重複して登録することが可能である。他のテナント管理についても同様である。
【0104】
図12は、スコープ管理部913の論理構成例を示す。
【0105】
システム全体を管理する管理者等のユーザは、図10に例示したスコープ情報の設定値を、スコープ設定I/F(インタフェース)1201を用いて、例えばテナント作成時やテナント管理情報更新時等のタイミングで設定する。スコープ設定I/F1201は、専用ソフトウェアおよび/またはハードウェアを用いて構成してもよいし、例えばストレージ管理インタフェース等のストレージシステムを管理するGUI(Graphical User Interface)やCLI(Command Line Interface)等のユーザインタフェース機能の一部として構成してもよい。このとき設定するスコープ情報には、リソースアクセス範囲としてスコープを割り当てることを許可する名前空間の指定を含む。スコープ管理部913のスコープ設定値登録部1202は、スコープ設定I/F1201を介してシステム管理者等のユーザが設定したスコープ設定値を、全体スコープ管理テーブル912に格納する。この時、設定対象スコープが参照するリソース種別や、アクセス範囲、指定可能な名前空間等の設定値の設定範囲に予め制限を設けておき、スコープ設定I/F1201あるいはスコープ設定値登録部1202の中に、ユーザが設定可能なスコープ情報設定値の範囲を限定する機能を設け、スコープ設定I/F1201において、設定可能な設定値のみをユーザに提示するか、あるいはスコープ設定値登録部1202において、ユーザが入力した設定値が制限範囲以外であった場合に設定を拒否する等により、設定値を制限範囲に限定してもよい。
【0106】
図13は、本実施形態に係るマルチテナント管理の例を示す。
【0107】
図13の例では、名前空間911の1例であるシステム管理用名前空間911-1には、システム管理者1が、ユーザとして登録され、グループS1に所属される。グループS1にはシステム編集ロールとシステムスコープが割り当てられている。グループS1に所属するユーザは、システムスコープが規定するリソースアクセス範囲に対し、システム編集ロールが規定する操作を実行する権限を有する。システム管理者1は、グループS1に所属するため、システムスコープが規定するシステムリソースに対し、システム編集ロールが許可する操作を実行することができる。
【0108】
また、システム管理者2が、ユーザとして登録され、グループS2に所属される。グループS2には、システム編集ロールおよびリソース作成ロールと、システムスコープ、テナント1スコープ、およびテナント2スコープとが割り当てられている。グループS2に所属するユーザは、システムスコープが規定するシステムリソースに対し、システム編集ロールが規定する操作を実行する権限を有する。また、グループS2に所属するユーザは、テナント1スコープが規定するテナント1リソースに対し、リソース作成ロールが規定する操作を実行する権限を有する。さらに、グループS2に所属するユーザは、テナント2スコープが規定するテナント2リソースに対し、リソース作成ロールが規定する操作を実行する権限を有する。システム管理者2は、グループS2に所属するため、システムリソースに対し、システム編集ロールが規定する操作を実行することができる。また、システム管理者2は、テナント1リソースおよびテナント2リソースに対し、リソース作成ロールが規定する操作を実行することができる。
【0109】
なお、図13の例では、システム管理者2がグループS2に所属され、グループS2にシステム編集ロールおよびリソース作成ロールと、システムスコープ、テナント1スコープ、およびテナント2スコープとが割り当てられているが、例えば、図14に示すように、グループS2-1にシステム編集ロールおよびシステムスコープが割り当てられ、グループS2-2にシステムリソース作成ロールおよびテナント1スコープが割り当てられ、システム管理者2が、グループS2-1およびグループS2-2に所属されても、同様の権限設定を行うことが可能である。
【0110】
図13に例示のテナント1用名前空間911-2には、テナント1管理者が、ユーザとして登録され、グループT1に所属される。グループT1にはリソース更新ロールとテナント1スコープが割り当てられている。グループT1に所属するユーザは、テナント1スコープが規定するテナント1リソースに対し、リソース更新ロールが規定する操作を実行する権限を有する。テナント1名前空間に登録されたテナント1管理者は、グループT1に所属するため、テナント1リソースに対し、リソース更新ロールが許可する操作を実行することができる。名前空間261のさらに他の1例であるテナント2用名前空間911-3についても、テナント1用名前空間と同様のユーザ管理を行うことができる。さらに別のテナントを管理する場合には、テナント用名前空間が追加されて同様の管理が行われる。
【0111】
なお、システム管理用名前空間に登録されたシステム管理者2が、他の名前空間であるテナント1管理用名前空間に対応付けたテナント1リソースにアクセスする際に許可する操作と、テナント1管理用名前空間に登録したテナント1管理者が、自らが登録されている名前空間であるテナント1管理用名前空間に対応付けたテナント1リソースにアクセスする際に許可する操作が異なってもよい。図13の例では、システム管理者2がテナント1リソースにアクセスする場合に許可される操作は、リソース作成ロールによって権限付与された操作であり、テナント1管理者がテナント1リソースにアクセスする場合に許可される操作は、リソース更新ロールによって権限付与された操作としている。これにより、特定リソースへのアクセス権限を、ユーザの所属の違いによって変えることができる。
【0112】
本実施形態によれば、例えば、1人のシステム管理者が、システムリソース、テナント1スコープ、テナント2スコープのように、別々の名前空間に対応付けたリソースアクセス範囲に対し、システム管理用名前空間へのユーザ登録および管理で(他の名前空間へのユーザ登録および管理不要に)、システムリソースを含む複数のテナントリソースへのアクセスおよび操作を実行することができる。また、システム管理者とテナント管理者は別々の名前空間で管理するため、RBAC等で定義される構成要素を独立に登録することができ、したがって、例えば名前空間毎に重複するユーザ名等を登録することができる。
【0113】
なお、図13に例示の構成は、図7に示したマルチテナント管理や図8に示したマルチテナント管理を組み合わせて用いることを妨げるものではないため、比較例に係るマルチテナント管理からの移行時等、必要に応じて本実施形態に係るマルチテナント管理と、比較例に係るマルチテナント管理を併用することも可能である。
【0114】
図15は、本実施形態に係るマルチテナント管理においてユーザ作成および権限設定を行うフローの一例を示す。
【0115】
図15の例では、システム管理者(システムリソース、および、テナントに対応付けたリソースの管理を行うユーザ)、および、システム管理者が所属するグループSが、システム管理用名前空間911-1に作成されて登録される。また、テナント1に対応付けたリソースの管理を行うテナント1管理者、および、テナント1管理者が所属するグループT1が、テナント1管理用名前空間911-2に作成されて登録される。さらに、テナント2に対応付けたリソースの管理を行うテナント2管理者、および、テナント2管理者が所属するグループT2が、テナント2管理用名前空間911-3に作成されて登録される。
【0116】
図16は、本実施形態に係るマルチテナント管理においてシステム管理者の認証および認可を行うフローの一例を示す。
【0117】
システム管理者2がリソースにアクセスして操作を行う際は、システム管理者2が、まずシステム(ストレージシステム130)にログインする。図9に示した認証基盤230は、ログインした者がシステム管理用名前空間911-1に登録された正当なユーザであるかを判定する。システム管理者2は、正当なユーザとして認証許可(OK)となった後、リソース操作コマンドの実行を要求する。
【0118】
例えば、システム管理者2がシステムリソースの編集コマンドの実行を要求した場合は、図9に示した認可基盤240が、当該ユーザに設定されたユーザ情報、およびポリシ情報に基づいて、要求されたコマンドの実行権限を判定する。認可が許可(OK)された場合に、図9に示したリソース利用アプリケーション220を介してリソース管理基盤250に対しシステムリソースの編集コマンドが実行される。
【0119】
また、システム管理者2がテナント1のリソースを作成するコマンドの実行を要求した場合は、図9に示した認可基盤240が、当該ユーザに設定されたユーザ情報、およびポリシ情報に基づいて要求されたコマンドの実行権限を判定する。認可が許可(OK)された場合に、図9に示したリソース利用アプリケーション220を介してリソース管理基盤250に対しテナント1のリソースを作成するコマンドが実行される。
【0120】
さらに、システム管理者2がテナント2のリソースを作成コマンドの実行を要求した場合は、図9に示した認可基盤240が、当該ユーザに設定されたユーザ情報、およびポリシ情報に基づいて、要求されたコマンドの実行権限を判定する。認可が許可(OK)された場合に、図9に示したリソース利用アプリケーション220を介してリソース管理基盤250に対しテナント2のリソースを作成するコマンドが実行される。この時、システム管理者に対する認証は1回のみでよい。
【0121】
なお、本図(および後の図17および図18)では、認証、および認可処理の結果が不許可であった場合のフローが省略されているが、認証、または認可処理の結果が不許可であった場合は、ユーザ端末等を介してエラー情報をユーザに提示し、処理を停止するか、あるいは認証または認可に必要な情報の再入力を要求する等の、通常の認証および認可手順が実行されてよい。
【0122】
図17は、本実施形態に係るマルチテナント管理においてテナント1管理者の認証および認可を行うフローの一例を示す。
【0123】
テナント1管理者がテナント1に対応付けたリソースにアクセスして操作を行う際は、まずシステム(ストレージシステム)にログインする。図9に示した認証基盤230は、ログインした者がテナント1管理用名前空間に登録された正当なユーザであるかを判定する。テナント1管理者は、正当なユーザとして認証許可(OK)となった後、リソース操作コマンドの実行を要求する。図9に示した認可基盤240は、当該ユーザに設定されたユーザ情報、およびポリシ情報に基づいて、要求されたコマンドの実行権限を判定する。認可が許可(OK)された場合に、図9に示したリソース利用アプリケーション220を介してリソース管理基盤250に対しテナント1のリソースを作成するコマンドが実行される。
【0124】
図18に例示するように、テナント2管理者についても、図17に例示の認証および認可フローと同様のフローが走る。
【0125】
図19は、図8に例示したマルチテナント管理から図13に例示したマルチテナント管理への移行の例を示す。
【0126】
名前空間管理基盤260が、システム管理用名前空間1901に登録され管理されていたテナント1管理者、テナント1管理者が所属するグループT1、およびグループT1に割り当てられたロールおよびスコープを表す情報を、システム管理用名前空間1901で管理するユーザ管理テーブルから抽出し、当該情報を、テナント1管理用名前空間1902が管理するユーザ管理テーブルに格納する。このとき、テナント1管理用名前空間1902が未作成だった場合は、名前空間管理基盤260が、まずテナント1管理用名前空間1902を作成する。テナント1スコープは、全体スコープ管理テーブル912およびスコープ管理部913により、名前空間をまたがって管理されている。このため、テナント1管理者の登録が、システム管理用名前空間1901からテナント1管理用名前空間1902に移動しても、テナント1管理者のグループT1への所属は維持される。このとき、システム管理用名前空間1901に登録されたシステム管理者が所属するグループSに、引き続きテナント1スコープを割り当てておくことにより、システム管理用名前空間1901に登録されたシステム管理者は、テナント1スコープが指定するテナント1リソースへのアクセスおよび操作を実行する権限を有する。
【0127】
図20は、本実施形態に係るマルチテナント管理の別の例を示す。
【0128】
テナント管理者が複数のテナントに対応付けられたリソースにアクセスすることができる。図20の例では、テナント1管理用名前空間911-2に登録されたグループT1_2に、リソース作成ロール、テナント1スコープ、およびテナント2スコープが割り当てられている。テナント1_2管理者がグループT1_2に所属されることにより、テナント1_2管理者は、テナント1リソース、およびテナント2リソースにアクセスすることが可能になる。このためには、図10に示した全体スコープ管理テーブル912のテナント2スコープを指定可能な名前空間として、テナント1管理用名前空間を予め登録しておく必要がある。
【0129】
図21は、本実施形態に係るマルチテナント管理のまた別の例を示す。
【0130】
異なる名前空間に登録されたユーザがマルチテナント管理システム(本実施形態ではストレージシステム130)全体で一意に管理される。ユーザを異なる名前空間で管理する場合、通常は異なる名前空間で同じユーザ名等を作成して登録することが可能である。しかし、同一組織内の異なる部署が異なるテナントである等の場合、組織内で一意なユーザ名で管理を行いたい等の理由により、システム全体でユーザ名の重複を避けたいことがある。このような場合には、テナント管理用名前空間にユーザを登録する際には、例えば、名前空間管理基盤910は、システム管理用名前空間911-1等の単一の名前空間にまずユーザ登録を行う。その後、名前空間管理基盤910は、登録しようとするユーザが既にシステム管理用名前空間911-1に登録済みでないことを確認してから、対象のテナント管理用名前空間に当該ユーザのユーザ登録を行う。もし、登録しようとするユーザが既にシステム管理用名前空間911-1に登録済みであった場合は、名前空間管理基盤910は、当該ユーザのユーザ登録を許可しない。これにより、システム管理用名前空間911-1には、マルチテナント管理システムの全ての名前空間に登録されているユーザが登録されることになり、マルチテナント管理システム内で一意にユーザを管理することが可能である。グループ名等、RBAC等で定義される一意な管理が必要な他の構成要素についても、同様の方法を用いることが可能である。なお、テナント管理用名前空間に登録するユーザに対応する、システム管理用名前空間のユーザについては、ユーザ情報として、ユーザIDおよびユーザ名が含まれていればよく、グループ、ロール、スコープ等の情報については必須ではない。
【0131】
図22は、本実施形態に係るマルチテナント管理のまた別の例を示す。
【0132】
図22が示す例によれば、システム管理用名前空間911-1の、テナント管理用名前空間に登録したユーザに対応するユーザに、当該ユーザを登録している名前空間の情報が対応付けて管理される。名前空間毎に独立にユーザを登録および管理するシステムにおいて、ユーザ認証を行う際に、認証を要求したユーザがどの名前空間に登録されているかを判別する情報が付与されなかった場合は、名前空間管理基盤910は、システム上に存在する全ての名前空間に対し、認証を要求したユーザの、ユーザ名やパスワード、生体情報等のユーザ情報が合致して認証が成功するまで、順番に認証操作を繰り返す必要がある。システム上に名前空間が多数存在する場合等では、認証を要求したユーザが登録されている名前空間に対し認証を実行する順番が下位になるほど、認証を実行するのに要する時間がかかり、ユーザの利便性が損なわれる可能性がある。そこで、テナント管理用名前空間に登録されているユーザに対応付けた、システム管理用名前空間に登録したユーザに、当該ユーザが登録されている名前空間の情報を付与する。ユーザと名前空間の対応付けは、例えば図11に示したユーザ管理テーブル914に追記してもよいし、独立のテーブルを用意してもよい。ユーザが認証を要求した際に、認証基盤230は、最初にシステム管理用名前空間911-1に対して認証を実行してよい。照合したユーザが、他のテナント管理用名前空間に登録されている場合は、認証基盤230は、当該ユーザが登録されている名前空間の情報を上記ユーザと名前空間の対応付け情報に基づいて抽出し、次に、抽出した名前空間に対し認証を実行してよい。これにより、認証に係る時間を短縮することが可能になる。
【0133】
図23は、本実施形態に係るマルチテナント管理のまた別の例を示す。
【0134】
認証対象となる全ての名前空間に登録されている全ユーザと各ユーザが登録されている名前空間とを対応付けた情報を格納したユーザ所属テーブル2301を、名前空間管理基盤910が保持する。システムに対しユーザ認証が要求された際には、まず名前空間管理基盤910が、ユーザ所属テーブル2301を参照し、認証対象ユーザが登録されている名前空間を抽出して、当該名前空間に対し認証を実行する。これにより、ユーザ認証を実行する際に、必ず当該ユーザが登録されている名前空間を選択することができ、認証に係る時間を短縮することが可能になる。
【0135】
図24は、ユーザ所属テーブル2301の例を示す。
【0136】
図24が示す例によれば、システム管理者1は、システム管理用名前空間に対応付けられている。また、テナント1管理者は、テナント1管理用名前空間に対応付けられている。例えば、テナント1管理者ユーザが認証を要求した場合は、ユーザ所属テーブル2301を照合し、テナント1管理者ユーザが登録されている名前空間がテナント1管理用名前空間であることを抽出して、テナント1管理用名前空間に対し認証を実行する。
【0137】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加、削除および/または置換をすることが可能である。
【0138】
また、上記の各構成、機能および処理部等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
【0139】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【0140】
以上の説明を、例えば、下記のように総括することができる。下記の総括は、上述の説明の補足説明や変形例の説明を含んでよい。
【0141】
マルチテナント管理システムは、複数のテナントに使用され得る複数のリソースを有するシステム(例えば、ストレージシステム130)でもよいし、複数のリソースを有するシステムとユーザとの間に介在し、マルチテナント管理システムそれ自体が、複数のテナントに使用され得る複数のリソースを有さないでもよい。また、以下の説明では、「テナント」は、組織または組織内の部署といった要素でもよいし、複数の組織や複数の部署全体を管理する要素(つまり、1または2以上の「テナント」を管理する「テナント」)でもよい。
【0142】
マルチテナント管理システムが、インタフェース装置(例えばホストI/F132)、記憶装置(例えばメモリ136)、および、それらに接続されたプロセッサ(例えばプロセッサ135)を有する。インタフェース装置が、ユーザに関する情報であるユーザ情報と、テナントに関する情報であるテナント情報と、複数のリソースのうちのアクセス先のリソースを指定したリソースアクセス要求とをユーザ端末100から受け付ける。リソースアクセス要求では、ユーザ所望の操作が指定されてもよい。記憶装置が、テナント毎の名前空間を含む複数の名前空間(例えば261または911)の各々について、当該名前空間に対応のテナントに関連付けられたユーザに関する情報を含んだユーザ管理情報(例えばユーザ管理テーブル914または263)と、全てのテナントスコープの各々について当該テナントスコープに対応のリソースアクセス範囲を表す情報である全体スコープ管理情報(例えば全体スコープ管理テーブル912)とを記憶する。各名前空間について、ユーザ管理情報は、1または2以上のテナントの各々についてのリソースアクセス範囲のラベルであるテナントスコープを表す情報を含む。ユーザ管理情報は、1または2以上の操作を表す情報を含んでもよい。
【0143】
プロセッサは、受け付けられたテナント情報が表すテナントに対応した名前空間を選択する。プロセッサは、受け付けられたユーザ情報が選択された名前空間のユーザ管理情報が有する情報に適合するかの判定である認証判定を行う。認証判定の結果が真の場合、プロセッサは、受け付けられたリソースアクセス要求に従うアクセス先のリソースが、選択された名前空間のユーザ管理情報が表すいずれかのテナントスコープに対応し全体スコープ管理情報から特定されるリソースアクセス範囲に属するか否かの判定である認可判定を行う。認可判定は、受け付けられたリソースアクセス要求に従う操作が、選択された名前空間のユーザ管理情報が表す操作に該当するか否かの判定を含んでもよい。認可判定の結果が真の場合、プロセッサは、受け付けられた前記リソースアクセス要求を実行させる。
【0144】
これにより、テナント間の独立性を担保しつつ、ユーザが名前空間毎の認証無しに複数のテナントのリソースにアクセスすることができる。具体的には、名前空間は、分離(独立)が目的の要素であるため、通常、複数の名前空間の共通化はされない。しかし、テナントスコープの管理が、異なる名前空間で共通とされる(異なる名前空間に跨る)。このため、テナント間の独立性を維持した状態で、名前空間別の認証および認可といった煩わしさ(異なるテナントのリソースをユーザが管理するにあたりテナント毎の名前空間について認証および認可が必要になるといった煩わしさ)を解消することができる。
【0145】
複数の名前空間は、不特定テナントに対応の名前空間としてのシステム管理用の名前空間(例えば、名前空間911-1)を含んでよい。システム管理用の名前空間に関連付けられた1または2以上のテナントスコープは、全体のリソースの範囲が対応付けられたシステムスコープを含んでよい。これにより、システム管理用の名前空間での認証を通じて、別の名前空間についての認証無しに、システムスコープに対応のリソースや、テナントスコープに対応のリソースのいずれにもユーザがアクセスすることができる。具体的には、例えば、システム管理用の名前空間のユーザ管理情報が、システム管理用の名前空間とは別の名前空間に対応のテナントのためのテナントスコープを表してよい。受け付けられたテナント情報からシステム管理用の名前空間が選択され、システム管理用の名前空間のユーザ管理情報を用いて認証判定の結果が真となった場合、プロセッサは、認可判定において、リソースアクセス要求を基に、システム管理用の名前空間に関連付けられている、別の名前空間に対応のテナントのためのテナントスコープを特定し、当該テナントスコープに対応のリソースアクセス範囲を前記全体スコープ管理情報から特定してよい。
【0146】
各名前空間について、ユーザ管理情報は、ユーザのグループ毎に、当該グループに関連付けられた1または2以上のテナントスコープを表す情報を含んでよい。つまり、ユーザのグループ単位で、テナントスコープの関連付けが可能である。
【0147】
第1のテナントの第1のユーザに関する情報と第2のテナントの第2のユーザに関する情報とが単一の名前空間(例えば図20の名前空間911-2)のユーザ管理情報に含まれている場合、プロセッサは、第2のテナントに対応の名前空間(例えば図20の名前空間911-3)を生成し、生成した当該名前空間のユーザ管理情報に、第2のテナントの前記第2のユーザに関する情報を移してよい。これにより、単一名前空間での複数のテナントの管理を、テナント間の独立性が担保された管理に移行することができる。
【0148】
複数の名前空間のうちの或る名前空間(例えば図22の名前空間911-1)のユーザ管理情報が、当該或る名前空間と異なる1以上の名前空間のユーザ管理情報に登録されている1以上のユーザに関する情報を含んでよい。或る名前空間のユーザ管理情報は、1以上のユーザの各々について、当該ユーザに関する情報が登録されている名前空間を表す情報を含んでよい。プロセッサは、或る名前空間のユーザ管理情報から、ユーザ情報が表すユーザに対応の名前空間(例えば、テナント2管理者に対応のテナント2名前空間911-3)を特定し、特定された当該名前空間のユーザ管理情報と上記受け付けられたユーザ情報(例えば、テナント2管理者のユーザ情報)とを基に認証判定を行ってよい。これにより、ユーザは、自身が登録されている名前空間を探すために個々の名前空間について認証を試みること無しに、当該ユーザが登録されている名前空間について認証を受けることが期待できる。
【0149】
記憶装置が、ユーザ毎に当該ユーザが登録されている名前空間を表す情報であるユーザ所属情報(例えば図24のユーザ所属テーブル2301)を記憶してよい。プロセッサは、ユーザ所属情報から、ユーザ情報が表すユーザに対応の名前空間を特定し、特定された当該名前空間のユーザ管理情報と上記ユーザ情報とを基に認証判定を行ってよい。これにより、ユーザは、自身が登録されている名前空間を探すために個々の名前空間について認証を試みること無しに、当該ユーザが登録されている名前空間について認証を受けることが期待できる。
【符号の説明】
【0150】
100 ユーザ端末
110 ホストサーバ
120 管理サーバ
130 ストレージシステム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24