(57)【要約】【課題】  セキュリティと利便性向上を両立させる。【解決手段】  複数のファイルサーバを備えるシステムにおけるファイルサーバクラスタの構成方法において、ファイルサーバは、クライアントに対してエクスポートするファイルシステムと、ファイルシステムに格納される秘密情報と、クライアント毎に秘密情報へのアクセスの許可または禁止を示すポリシと、を備え、システムは、ポリシに基づいて、秘密情報を格納するファイルシステムを決定し、ポリシに基づいて、クライアントがアクセスを禁止されている秘密情報を格納するファイルシステムにはマウントされず、かつ、クライアントがアクセスを許可されている秘密情報を格納するファイルシステムにマウントされるように、ファイルシステムを階層的に構成する。【選択図】図１
2011103096.tif 000002
【特許請求の範囲】
【請求項１】
複数のファイルサーバを備えるシステムにおけるファイルサーバクラスタの構成方法において、
前記ファイルサーバは、クライアントに対してエクスポートするファイルシステムと、前記ファイルシステムに格納される秘密情報と、前記クライアント毎に前記秘密情報へのアクセスの許可または禁止を示すポリシと、を備え、
前記システムは、前記ポリシに基づいて、前記秘密情報を格納するファイルシステムを決定し、
前記システムは、前記ポリシに基づいて、前記クライアントがアクセスを禁止されている秘密情報を格納するファイルシステムにはマウントされず、かつ、前記クライアントがアクセスを許可されている秘密情報を格納するファイルシステムにマウントされるように、前記ファイルシステムを階層的に構成し、
前記クライアントが前記クライアントのファイルシステムがマウントするファイルシステムを起点として、前記起点となるファイルシステムから階層的にマウントされるファイルシステムへアクセス可能であることとを特徴とするファイルサーバクラスタの構成方法。
【請求項２】
請求項１に記載のファイルサーバクラスタの構成方法において、
前記起点となるファイルシステムにマウントされるファイルシステムに対しては前記クライアントのアクセスを許可し、
前記起点となるファイルシステムにマウントされないファイルシステムに対しては前記クライアントのアクセスを禁止することを特徴とするファイルサーバクラスタの構成方法。
【請求項３】
請求項１または２に記載のファイルサーバクラスタの構成方法において、
前記ポリシに基づいて秘密情報が格納されるファイルシステムおよび階層的に構成されるファイルシステムは、形式概念分析により決定されることを特徴とするファイルサーバクラスタの構成方法。
【請求項４】
請求項１から３の何れかに記載のファイルサーバクラスタの構成方法により構成されたファイルサーバクラスタ。
【請求項５】
請求項４に記載のファイルサーバクラスタを構成するファイルサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルサーバクラスタの構成方法、ファイルサーバクラスタ及びファイルサーバに関する。
【背景技術】
【０００２】
Unix（登録商標）をはじめとする多くのＯＳでは、ファイルをディレクトリとファイルからなる階層構造であるファイルシステムとして管理している。ファイルが複数のボリュームやパーティションからなるとき、その各々をファイルシステムと呼ぶことがある。そのようなファイルシステムを増設する場合、新しいファイルシステムを元のファイルシステムの一ディレクトリ（マウントポイント）にマウント（ｍｏｕｎｔ）することにより、一つの大きなファイルシステムを構成することができる。
【０００３】
ＮＦＳ（ネットワークファイルシステム）をはじめとする多くの分散ファイルシステムにおけるクライアントは、ファイルサーバが持っているファイルシステムをクライアントのファイルシステムに（リモート）マウントして利用する。ファイルサーバは、リモートマウントさせるファイルシステムのそれぞれについて、各クライアントに対する「読み出しのみ可」 や「読み書き可」 、あるいはマウントさせない（エクスポートしない）などのアクセス制御を設定することができる。ファイルサーバが複数あるとき、あるいはファイルシステムが複数あるとき、クライアントは使用するファイルシステム全てをマウントする。ファイルサーバでは、ファイルシステム毎に、クライアントに対するアクセス制御を設定する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】NFS Version 3  Protocol Specification RFC (Request for Comment) 1813、Callaghan et al、Sun Microsystems , Inc.、1995年6月
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ファイルシステムごとにクライアントがマウントし、その各々についてアクセス制御を設定すると、クライアントやファイルシステムの数が増えるに従い、インタフェース数が増え、構造が複雑になる。そのため、アクセス制御の設定作業が煩雑になり、脆弱性が発生しやすくなり、設定内容の確認、セキュリティの保証といった、セキュリティの管理が困難になる、という問題がある。
【０００６】
図２はこの状況を例示している。図２にはファイルサーバがエクスポートする６つのファイルシステム１０１、１０２、１０３、１０４、１０５、および１０６が描かれており、全体でフラット型のファイルサーバクラスタ２００をなしている。このうちファイルシステム３（１０３）、４（１０４）、５（１０５）にはそれぞれ秘密情報ｃ、a、および b が格納されているため、クライアントＸ（１７１）、Ｙ（１７３）、Ｚ（１７７）に対するアクセス制御が必要となっている。
【０００７】
クライアントＸのファイルシステムｘ（１９１）には、ファイルシステム１０４と１０６をマウントする。実線矢印１８１は、クライアントのファイルシステム１９１がファイルシステム１０４を「読み書き可」のマウントすることを表している。破線矢印２８２は、クライアントXのファイルシステム１９１がファイルシステム１０６を「読み出しのみ可」のマウントすることを表している。同様にクライアントYのファイルシステムｙ（１９３）は、ファイルシステム１０２を「読み書き可」の マウント（１８３）し、ファイルシステム１０４、１０５、１０６を「読み出しのみ可」のマウント（２８４、２８５、２８６）するものとする。また、クライアントZのファイルシステムｚ（１９７）は、ファイルシステム１０３を「読み書き可」の マウント（１８７）し、ファイルシステム１０５、１０６を「読み出しのみ可」のマウント（２８８、２８９）するものとする。
【０００８】
さらに、矢印のないところはマウントをしてはならないことを表しており、クライアントXのファイルシステム１９１はファイルシステム１０１、１０２、１０３、１０５をマウントしてはならず、１９３は１０１、１０３をマウントしてはならず、１９７は１０１、１０２、１０４をマウントしてはならない。これらの構成の結果、ファイルシステム１０４にある秘密情報aは、クライアントＸ（１７１）、Ｙ（１７３)からは参照できるが、クライアントＺ（１７７）からは参照できないようになっており、同様に、ファイルシステム１０５にある秘密情報ｂはクライアントＸ（１７１）からはアクセスできず、ファイルシステム１０３にある秘密情報ｃにアクセスできるのはクライアントZ（１７７）だけである。
【０００９】
このような構成を実現するためには、全体で９個のマウントを行い、そのうち６個のマウントは「読み出しのみ可」のマウントでなければならない。また、禁じられたマウント９個が実際にも存在しないことを、確認ないし保証する必要がある。
【００１０】
クライアントのマウントの制限は、各ファイルシステムに対するアクセス制御パラメータを設定することにより実現することができる。図４はＮＦＳにおける /etc/exports ファイルに対する設定例である。例えば、パラメータ４０４はファイルシステム１０４に対して設定するパラメータである。これによると、クライアントＸ（１７１）には 「読み書き可」の マウントを許し、クライアントＹ（１７３）には「読み出しのみ可」の マウントに制限し、クライアントＺ（１７７）にはマウントを許していない。このように、システム管理者は、パラメータを明記しないことも含めて、（ファイルシステム数×クライアント数）分のパラメータを管理しなければならないため、管理のための労力が非常に煩わしい。特に、クライアント数が多数存在する大規模なシステムになればなるほどこの課題は顕在化する。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明は以下の構成を備える。即ち、複数のファイルサーバを備えるシステムにおけるファイルサーバクラスタの構成方法において、ファイルサーバは、クライアントに対してエクスポートするファイルシステムと、ファイルシステムに格納される秘密情報と、クライアント毎に秘密情報へのアクセスの許可または禁止を示すポリシと、を備える。システムは、ポリシに基づいて、秘密情報を格納するファイルシステムを決定し、ポリシに基づいて、クライアントがアクセスを禁止されている秘密情報を格納するファイルシステムにはマウントされず、かつ、クライアントがアクセスを許可されている秘密情報を格納するファイルシステムにマウントされるように、ファイルシステムを階層的に構成し、クライアントが前記クライアントのファイルシステムがマウントするファイルシステムを起点として、起点となるファイルシステムから階層的にマウントされるファイルシステムへアクセス可能である。
【発明の効果】
【００１２】
本発明によれば、セキュリティと利便性向上を両立させることが可能となる。
【図面の簡単な説明】
【００１３】
【図１】階層型ファイルサーバクラスタの構成を示す図である。
【図２】フラット形ファイルシステムクラスタの構成を示す図である。
【図３】階層型ファイルサーバクラスタで設定するパラメータを示す図である。
【図４】フラット形ファイルシステムクラスタで設定するパラメータを示す図である。
【図５】ファイルサーバのシステムの構成を示す図である。
【図６】クライアントのシステムの構成を示す図である。
【図７】セキュリティポリシとその分析を示す図である。
【図８】セキュリティポリシを形式概念分析して得られる概念束を示す図である。
【図９】ファイルサーバによるマウント要求を制限する設定パラメータを示す図である。
【図１０】クライアントによるマウント要求を制限する設定パラメータを示す図である。
【図１１】ファイルサーバによるマウントを制御するパラメータを示す図である。
【図１２】クライアントによるマウントを制御するパラメータを示す図である。
【図１３】セキュリティポリシから設定パラメータを得る手順を示すフローチャートである。
【図１４】ポリシサーバのシステムの構成を示す図である。
【図１５】ファイルサーバがマウントしたファイルサーバをエクスポートするための構成を示す図である。
【発明を実施するための形態】
【００１４】
本発明の実施形態の概要としては次の通りである。即ち、複数のファイルサーバと、これらを利用するクライアントとからなり、秘密情報と、どの秘密情報をどのクライアントに開示してよいかを定めるセキュリティポリシを備えるシステムを考え、さらにポリシサーバを導入する。ファイルサーバは、他のファイルサーバをマウントすると、マウントしたファイルサーバのファイルをクライアントにエクスポートできるものと仮定する。但し、「ファイルサーバをマウントする」とは、正確には「ファイルサーバがエクスポートしているファイルシステムを自分のファイルシステムにマウントする」ということを簡略に表現したものであり、以下同様である。上記のシステムにおいて、ポリシサーバは、ポリシに基づいて、各秘密情報についてそれを格納するファイルサーバを決定し、各ファイルサーバがどのファイルサーバをマウントするかを決定し、各クライアントがマウントする一つのファイルサーバを決定する。ファイルサーバの全体は、他のファイルサーバをマウントすることにより、一つの合成されたファイルシステムを構成する。クライアントは、合成されたファイルシステムにおいて、仮定により、マウントしたファイルサーバ以下のファイルにアクセスできる。ポリシサーバによる上記の決定を適切に行えば、各クライアントは、セキュリティポリシによってアクセスが禁止されている秘密情報にはアクセスできず、アクセスが許可されている秘密情報にはアクセスできるようにすることができる。以上により、ファイルサーバ側の設定だけでアクセス制御が適切に実現でき、同時にクライアント側の設定を最少にすることができる。
【００１５】
本明細書では、一つのファイルサーバに作られた一つのファイルシステムをエクスポートするものとする。そのため、ファイルシステムとファイルサーバを、同一のものとして説明する場合がある。以下、実施形態の詳細を説明する。
【００１６】
はじめに、実施形態の概要を図１から図３を用いて説明する。まず、ファイルサーバのファイルシステムに、別のファイルサーバのファイルシステムを「読み出しのみ可」のマウントすることにより、階層型ファイルサーバクラスタを作る。クライアントはいずれか一つのファイルシステムをマウントする。すると、そのファイルシステムには読み書きが可能であり、そのファイルシステムにマウントしたファイルシステムには読み出しが可能だが書込み禁止であり、直接または間接のマウントで到達できないファイルシステムにはアクセスが禁止となる。そこで、そのクライアントに対して読み書きを許す情報は、クライアントから直接マウントしたファイルシステムに配置し、読み出しを許す情報はこのファイルシステムに直接ないし間接にマウントしたファイルシステムに配置し、アクセスを禁じる情報は、これら以外のファイルシステムに配置することにより、アクセス制御ポリシを実現する。アクセス制御ポリシを形式概念分析（FCA）によって分析して、全ての秘匿情報と、全てのクライアントについて、アクセス制御ポリシが実現するように、ファイルシステム、秘匿情報の配置、マウントの構造、クライアントのマウントポイント、などを決定する。
【００１７】
上記の構成例を図１に示す。図１では、ファイルサーバのファイルシステム１０１、１０２、１０３、１０４、１０５、および１０６は、適宜マウントすることにより、階層型のファイルサーバクラスタ１００を構成している。図中の太実線の矢印はファイルサーバのファイルシステム同士のマウントを表している。例えばファイルシステム１０１はファイルシステム１０３をマウント（１３１）し、同時にファイルシステム１０２をもマウント（１２１）している。また、ファイルシステム１０５はファイルシステム１０３からマウント（１５３）され、同時にファイルシステム１０２からもマウント（１５２）されている。また、ファイルシステム１０４は、ファイルシステム１０２からマウント（１４２）されている。また、ファイルシステム１０６は、ファイルシステム１０４からマウント（１６４）され、同時にファイルシステム１０５からもマウント（１６５）されている。以上の構造は、ポリシーサーバ１１０によって管理されている。
【００１８】
クライアントX（１７１）はファイルシステムｘ（１９１）にファイルシステム１０４をマウント（１８１）する。すると、上記の通り、ファイルシステム１０４はファイルシステム１０６をマウント（１６４）しているため、ファイルシステム１９１にファイルシステム１０６を直接マウントしなくても、クライアントX（１７１）はファイルシステム１０６の内容を参照することができる。マウント１６４を「読み出しのみ可」としておくと、クライアントX（１７１）のファイルシステム１０６に対するアクセスも「読み出しのみ可」となる。またファイルシステム１０１、１０２、１０３、１０５については、ファイルシステム１０４を経由してアクセスすることはできないため、クライアントＸ（１７１）はこれらのファイルシステムにアクセスすることはできない。以上により、図１では、クライアントＸ（１７１）に対して、図２のクライアントＸ（１７１）に対して課せられるアクセス制御の全てを実現している。また、同じ構成の階層型ファイルサーバクラスタ１００に対し、クライアントＹ（１７３）にはファイルシステム１０２をマウント（１８３）させると、クライアントＹ（１９３）は、ファイルシステム１０２、１０４、１０５、１０６にアクセス可能であるが、ファイルシステム１０１、１０３にはアクセスできない。同様にクライアントＺ（１７７）には、この階層型ファイルサーバクラスタ１００のファイルシステム１０３をマウントさせれば、やはり、図２においてクライアントＺ（１９７）に課せられるアクセス制御を実現することができる。
【００１９】
図３に、ＮＦＳにおいて、図１の構造を強制するために /etc/exports ファイルに設定するパラメータの例を示す。例えばパラメータ３０２は、ファイルシステム１０２に対するパラメータである。これによるとクライアントＹによる「読み書き可」の マウント、およびサーバ１による 「読み出しのみ可」のマウントが許されており、他のクライアントやファイルサーバはマウントすることができない。
【００２０】
全体として、パラメータの構成は図４と比較してはるかに単純である。まず、クライアントに関するパラメータは、クライントあたり１パラメータのみである。そのため、図２や図４のフラット構造のファイルサーバクラスタでは、設定しないパラメータについても注意を払う必要があったが、図１や図３の階層型ファイルサーバクラスタでは設定しないパラメータが存在しないことは自明である。また、ファイルサーバに関するパラメータは、全てのクライアントについて同時にアクセス制御の用件を満たしており、クライアントごとに構成を変える必要はない。したがって、階層型ファイルサーバクラスタは、フラット型ファイルサーバクラスタよりも、クライアント数に対するセキュリティ管理のスケーラビリティが高い、ということがいえる。
【００２１】
以上をまとめれば次のようになる。ファイルサーバは、クライアントに対してエクスポートするファイルシステムと、ファイルシステムに格納される秘密情報と、クライアント毎に秘密情報へのアクセスの許可または禁止を示すポリシと、を備える。システムは、ポリシに基づいて、秘密情報を格納するファイルシステムを決定し、ポリシに基づいて、クライアントがアクセスを禁止されている秘密情報を格納するファイルシステムにはマウントされず、かつ、クライアントがアクセスを許可されている秘密情報を格納するファイルシステムにマウントされるように、ファイルシステムを階層的に構成し、クライアントがクライアントのファイルシステムがマウントするファイルシステムを起点として、起点となるファイルシステムから階層的にマウントされるファイルシステムへアクセス可能となるように構成される。
【００２２】
以下、各図面を用いて実施形態の各構成と各処理動作を説明する。
【００２３】
図５は本実施形態を実現するファイルサーバのシステム構成を示している。ファイルサーバ５００はプロセッサ５１０、メモリ５２０を備え、ＯＳあるいはＶＭＭ（仮想計算機モニタ）などのソフトウエアの制御のもとで、ファイルサーバ制御プログラム５４０を稼動させている。ファイルサーバプログラムは制御用データを使用するほか、磁気ディスク等の外部記憶装置５６０、５７０や、ネットワークインタフェース５９０などを使用する。外部記憶装置５６０はファイルシステム５６１として構成されており、ファイルサーバ制御プログラム５４０そのものや、同プログラムを制御するデータ５６５が格納されている。ＮＦＳの場合、そのような制御データに  /etc/exports ファイルがある。また、外部記憶装置５７０はこのファイルサーバ５００がエクスポートするファイルシステム５７１が構成されており、さらに。外部記憶装置５６０にあるファイルシステム５６１にマウントされ、ファイル制御プログラム５４０によるアクセスが可能となっている。
【００２４】
図６は本実施形態によるファイルサーバクラスタを利用するクライアントにおけるシステム構成を示している。クライアント６００はプロセッサ６１０、およびメモリ６２０を備え、ＯＳ／ＶＭＭ６３０などの制御のもとに、アプリケーションプログラム６４０、６４１を実行している。クライアントはまた外部記憶装置６６０やネットワークインタフェース６９０のような周辺装置を持っている、外部記憶装置６６０にはファイルシステム６６１が構成されており、アプリケーションプログラムやそれらが使うデータの他、マウントするファイルシステムを記述したデータ６６５を格納している。これには例えば /etc/fstab ファイルがあり、ＯＳがマウントするファイルシステムに関する情報が記述されている。
【００２５】
ここで本実施形態の適用対象として例示する組織には、システム内の秘密情報ａ、ｂ、ｃがあるとする。秘密情報であるから、あるメンバには開示できる一方、開示できないメンバ（アクセスしてはいけないメンバ）も存在する。すなわち、組織内に秘密情報が１つあると、組織はその情報にアクセスを許されるものと、許されないものに分かれる。セキュリティポリシは誰がアクセスでき、誰がアクセスできないかを決定できなければならないはずである。
【００２６】
図７はそのようなセキュリティポリシ７００を表しており、クライアントＸ、Ｙ、Ｚの秘密情報ａ、ｂ、ｃに対するアクセスの可否を示したものである。図中の番号は表の行（エントリの横の並び）と列（エントリの縦の並び）に付けられている。例えば、図７に７１２という番号は明記されていないが、エントリ７１２と 表記した場合、それは行７１０、列７０２にあるエントリを特定するものとする。
【００２７】
行７２０にはクライアントＸに対する情報が集められている。同様に行７３０にはクライアントＹに関する情報、行７４０にはクライアントＺに関する情報が集められている。一方、列７０２には秘密情報ａに関する情報、列７０３には秘密情報bに関する情報、列７０４には秘密情報ｃに関する情報が集められている。
【００２８】
エントリ７２２の「○」は、クライアントＸが秘密情報ａにアクセス可能であることを示している。エントリ７２３の空欄は、クライアントＸは秘密情報ｂ、およびｃにはアクセス不可であることを示している。同様に、エントリ７３２、７３３、７３４から、クライアントＹは、秘密情報ａ、ｂにはアクセスできるが、秘密情報ｃにはアクセスできないことがわかる。同様にクライアントＺは秘密情報ｂ、ｃにのみアクセスできる。
【００２９】
図１４は本実施形態を実現するポリシサーバ１１０のシステム構成を示している。ポリシサーバ１１０はプロセッサ１４１０、メモリ１４２０を備え、ＯＳあるいはＶＭＭ（仮想計算機モニタ）などのソフトウエア１４３０の制御のもとで、ポリシサーバ制御プログラム１４４０を稼動させている。ポリシサーバプログラムは制御用データ１４５０を使用するほか、磁気ディスク等の外部記憶装置１４６０、ネットワークインタフェース１４９０などを使用する。外部記憶装置１４６０はファイルシステム１４６１として構成されており、ポリシ７００を格納している。ポリシサーバ制御プログラム１４４０は、ポリシ７００を分析して、ファイルサーバクラスタ１００を構成する。
【００３０】
図１３は、図１のファイルサーバクラスタシステム（図１）を構成するための手順を示したフローチャートである。ファイルサーバクラスタの構成処理１３００は、図７のセキュリティポリシ７００を入力とする。
【００３１】
ステップ１３１０では、図7のセキュリティポリシから図8に示す構造（概念束と呼ぶ）を導出する。その手順を、図７を用いて説明する。
【００３２】
列７０５の2行目のエントリ、すなわちエントリ７２５は、クライアントＸがアクセスできる秘密情報の集合｛ａ｝を表している。同じく３行目のエントリ７３５はクライアントＹがアクセスできる秘密情報の集合｛ａ、ｂ｝を表している。図には簡単のために｛ａ、ｂ｝を「ａｂ」と略記している。同じく４行目のエントリ７４５はクライアントＺがアクセスできる秘密情報の集合｛ｂ、ｃ｝を表しており、図には「ｂｃ」と略記している。
【００３３】
列７０６の2行目から４行目のエントリを結合したエントリには、エントリ７２５、７３５、７４５に現れた集合のあらゆる組み合わせでの共通部分を書き出している。エントリ７３５の｛ａ、ｂ｝と７４５の｛ｂ、ｃ｝の共通部分は｛ｂ｝である。またエントリ７２５の｛ａ｝とエントリ７４５の｛ｂ、ｃ｝の共通部分は空集合である。またこれらの全体である｛ａ、ｂ、ｃ｝を加えておく。これら、φ、｛ｂ｝｛ａｂｃ｝が列７０６のエントリに記入してある。
【００３４】
以上によって秘密情報を元とする集合が６個作られた：ａｂｃ、ａｂ、ｂｃ、ａ、ｂ、φ。これらを包含関係に従って並べたものが、図８の８７１、８７２、８７３、８７４、８７５、８７６である。この構造は包含関係により束（ｌａｔｔｉｃｅ）をなす。図８は束のＨａｓｓｅ図による表現になっており、矢印８２１、８３１、８４２、８５２、８５３、８６４、８６５はこれらの集合の隣り合う包含関係を表している。例えば、矢印８５２：「ｂ→ａｂ」は「ｂ⊆ａｂ」であり、かつｂとａｂの間に入るｂとａｂ以外の集合は存在しないことを表している。また、例えば「ａ⊆ａｂｃ」なる包含関係はあるが、これは「ａ⊆ａｂ⊆ａｂｃ」のように、aとａｂｃの間に入るもの（ａｂ）が存在するため、「ａ→ａｂｃ」なる矢印は描かれていない。
【００３５】
同時に各秘密情報について同様のことを行う。まず、行７５０、および７６０のエントリを作る。すなわち、エントリ７５２には秘密情報ａにアクセスできるクライアントの集合｛Ｘ、Ｙ｝を記入する。図には「ＸＹ」と略記してある。同様にエントリ７５３には秘密情報ｂにアクセスできるクライアントの集合｛Ｙ、Ｚ｝を記入し、エントリ７５４には秘密情報ｃにアクセスできるクライアントの集合｛Ｚ｝を記入する。さらに、これらの集合の共通部分を行７６０に書き出す。エントリ７５２の｛Ｘ、Ｙ｝とエントリ７５３の｛Ｙ、Ｚ｝の共通部分｛Ｙ｝、エントリ７５２の｛Ｘ、Ｙ｝とエントリ７５４の｛Ｚ｝の共通部分は空集合である。ここでは列７０６の「φ」と区別するため、「Φ」で表している。さらに全てを集めた｛Ｘ、Ｙ、Ｚ｝を加える。
【００３６】
以上によってクライアントを元とする集合が６個得られた：Φ、Ｙ、Ｚ、ＸＹ、ＹＺ、ＸＹＺ。これらを包含関係に従って並べると図８の８８１、８８２、８８３、８８４、８８５、８８６になる。矢印８２１、８３１、８４２、８５２、８５３、８６４、８６５はこれらの集合の隣り合う包含関係を表している。ただし、上記と違い、矢印８５２：「ＹＺ→Ｙ」は「Ｙ⊆ＹＺ」を表している。つまり、上記とは包含関係は逆向きである。この順序構造は束（ｌａｔｔｉｃｅ）構造をなす。
【００３７】
以上、秘密情報を元とする集合による束構造と、クライアントを元とする集合による２つの束構造が得られる。これらは図８に示すように、包含関係を逆にすると完全に一致する。二つの構造の対応は、例えば、集合ｂｃ（８７３）に対しては、ｂとｃの両方にアクセスできるクライアントの集合を対応させる。この場合は集合Ｚ（８８３）となる。逆に、例えば集合ＹＺ（８８５）に対しては、ＹとＺが共通にアクセスできる秘密情報の集合を対応させる。この場合は秘密情報ｂだけが該当し、集合ｂ（８７５）となる。図８では、このようにして対応するもの同士を１つの円の上と下に示している。この円、すなわち秘密情報の集合とクライアントの集合のペアをノードと呼ぶことにする。ノードにはラベルを付け、ノードの参照はラベルの番号で行うことにする。（ａｂｃ、Φ）のペアにラベル「１」（８９１）を付与する。ペア（ａｂ、Ｙ）にラベル「２」（８９２）を、ペア（ｂｃ、Ｚ）にラベル「３」（８９３）を、ペア（ａ、ＸＹ）、（ｂ、ＹＺ）、（φ、ＸＹＺ）にそれぞれラベル「４」（８９４）、「５」（８９５）、「６」（８９６）を付与することにする。 
【００３８】
以上の、図７から図８の導出手順は、図７のセキュリティポリシをコンテキストとして形式概念分析（Formal Concept Analysis: ＦＣＡ）を実行し、図８の概念束を得たことに相当する。ノードはＦＣＡではコンセプトと呼ばれる。ＦＣＡについては、文献「鈴木・室伏：形式概念分析  ―入門・支援ソフト・応用―、知能と情報（日本知能情報ファジィ学会誌）Ｖｏｌ。１９、Ｎｏ。２、ｐｐ。１０３−１４２（２００７）」、「Ｄａｖｅｙ、Ｐｒｉｅｓｔｌｅｙ:Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｌａｔｔｉｃｅｓ  ａｎｄ  Ｏｒｄｅｒ  Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ  Ｃｈａｐｔｅｒ  ３、Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ（２００２）」、あるいは「Ｇａｎｔｅｒ、Ｓｔｕｍｍｅ、Ｗｉｌｌｅ：Ｆｏｒｍａｌ  Ｃｏｎｃｅｐｔ  Ａｎａｌｙｓｉｓ  Ｆｏｕｎｄａｔｉｏｎｓ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ、Ｓｐｒｉｎｇｅｒ、Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ  ３６２６（２００５）」などに記載されている。
【００３９】
以上によりステップ１３１０の説明を終わる。
【００４０】
以下では、図８の概念束から、ファイルサーバクラスタ、クライアントのマウント先の選択、秘密情報の配置場所を導き、図１に示した構造を構成する。
【００４１】
基本的な考え方は、図８はノード間の情報フロー制御ポリシを表している、ということである。各ノードの秘密情報の集合は、その集合の元である秘密情報がそのノードにあることを表す。また各ノードのクライアントの集合は、その集合の元であるクライアントがそのノードの情報にアクセスすることを表す。ノード間の矢印は、矢印の根元側のノードの情報が先側のノードに流れても良いこと、および逆方向に流れてはいけないこと、を表している。例えば矢印８５２は、次の事情に対応している。ノード８９５にある秘密情報がｂだけであり（８７５）、ノード８９２にアクセスするクライアントがＹだけであり（８８２）、図７セキュリティポリシによるとクライアントＹは秘密情報ｂにアクセスできるので、ノード８９５からノード８９２への情報フローが許される。逆にノード８９２には秘密情報ａがあり（８７２）、ノード８９２にはクライアントＺがアクセスする（８８５）が、セキュリティポリシによれば、クライアントＺは秘密情報ａにアクセスできないので、ノード８９２からノード８９５への情報フローは禁止される。
【００４２】
ステップ１３２０では、図８の各ノードについてファイルサーバを用意する。ノード８９１に対応するファイルサーバは図１のファイルシステム１０１をエクスポートする。図１にファイルサーバは明示的に図示していないが、ファイルシステムと同一視してファイルサーバ１０１として参照するものとする。同様にノード８９２について、ファイルサーバ（ファイルシステム）１０２を用意する。同様にノード８９３、８９４、８９５、８９６に対応するファイルサーバ（ファイルシステム）１０３、１０４、１０５、１０６を用意する。
【００４３】
尚、ファイルサーバはそれぞれ予め用意した単独の実計算機に対して割り当てても良いが、これらの実計算機上の仮想化サーバによる仮想計算機として用意しても良い。本実施形態では、複数のファイルサーバを利用する。場合によっては、ファイルサーバ間の負荷やファイル容量などがアンバランスになることがありうる。仮想計算機を利用することにより、そのような条件下でも、柔軟にシステムを構成することができる。
【００４４】
次に、ステップ１３３０では、秘密情報ａ、ｂ、ｃをこれらのファイルシステムのうちどこに配置するかを決定する。例えば秘密情報ｂについて説明する。秘密情報ｂは図８のノードのうち、ノード８９１（８７１）、８９２（８７２）、８９３（８７３）、８９５（８７５）に現れている、このとき、秘密情報ｂを配置すべきノードは、これらのノードのうち一番下にあるノード、すなわちノード８９５に対応するファイルシステム１０５である。同様に、秘密情報ａが現れるのは、ノード８９１（８７１）、８９２（８７２）、８９４（８７４）であり、そのうち一番下にあるのはノード８９４であるから、対応するファイルシステム１０４に秘密情報ａを格納する。秘密情報ｃについては、それが現れる一番下のノードはノード８９３（８７３）であるから、対応するファイルシステム１０３に格納する。一般に、図８の順序構造は束をなしており、したがって、ノードの集合を任意に与えると、それらの下限（最大下界）が一意的に決まる。上記では、「下限」を「一番下にあるノード」として表現した。
【００４５】
秘密情報は、１ファイルとは限らない。あるディレクトリの下にまとめられたファイル群であることもよくあることである。分散していることもありうるであろうが、秘密情報が分散しているのは好ましいことではない。配置を決定したファイルシステムに集約する、といった運用が推奨される。
【００４６】
次に、ステップ１３４０では、ファイルサーバ間のマウント関係、すなわちどのファイルシステムをどのファイルシステムにマウントするかを決定する。図８の矢印８２１、８３１、８４２、８５２、８５３、８６４、８６５がファイルサーバ間で実施しておくべきマウントに対応する。例えば矢印８５２に対して、ファイルシステム１０５をファイルシステム１０２にマウント（１５２）する。こうすると、ファイルシステム１０５にあるデータはファイルサーバからアクセスすることができる。特にファイルシステム１０５からファイルシステム２への情報フローが発生しうるようになる。またこれだけでは、ファイルシステム１０２からファイルシステム１０５への情報フローは発生しない。同様に、矢印８２１に対して、ファイルシステム１０２をファイルシステム１０１にマウント（１２１）する。その他の矢印８３１、８４２、８５３、８６４、８６５に対して、マウント１３１、１４２、１５３、１６４、１６５が対応する。
【００４７】
ポリシサーバは以上の決定を、各ファイルサーバに対する設定情報データ９００、および１１００として、外部記憶装置１４６０などに格納保存する。ファイルサーバクラスタ稼動時には、これらの内容を各ファイルサーバの制御ファイル/etc/exportsに、予め反映しておく。反映の手段としては、結果をそれぞれのファイルサーバに手動で設定してもよいし、ポリシサーバが各ファイルサーバ上のエージェントに指令して自動的に設定しても良い。
【００４８】
次に、ステップ１３５０では、クライアントＸ（１７１）、Ｙ（１７３）、Ｚ（１７７）がマウントするファイルシステムを決定する。例として、クライアントＹ（１７３）について説明する。図８において、クライアントＹが現れているノードはノード８９２（８８２）、８９４（８８４）、８９５（８８５）、８９６（８８６）である。このうち、一番上にあるノード８９２に対応するファイルシステム１０２が、クライアントＹがマウントすべきファイルシステムである。同様にして、クライアントＸ（１７１）は、ノード８９４に対応するファイルシステム１０４をマウントし、クライアントＺ（１７７）は、ノード８９３に対応するファイルシステム１０３をマウントするようにする。秘密情報の場合とは逆に、クライアントがマウントするのは、そのクライアントが現れるノードのうち上限（最大）のノードに対応するファイルシステムである。図８の構造が束であるから上限は必ず唯一つ存在するので、上記の手続きにより、マウントするファイルシステムが一意に定まる。
【００４９】
ポリシサーバは以上の決定を、各ファイルサーバに対する設定情報データ１０００、および１２００として、外部記憶装置１４６０などに格納保存する。ファイルサーバクラスタ稼動時には、データ１０００の内容を各ファイルサーバの制御ファイル/etc/fstabに、予め反映しておく。反映の手段としては、結果をそれぞれのファイルサーバに手動で設定してもよいし、ポリシサーバが各ファイルサーバ上のエージェントに指令して自動的に設定しても良い。また、データ１２００の内容を各クライアントの制御ファイル/etc/fstabに、予め反映しておく。反映の手段としては、結果をそれぞれのクライアントに手動で設定してもよいし、ポリシサーバが各クライアント上のエージェントに指令して自動的に設定しても良い。  以上により、図８から、図１のシステムを構成することができるようになった（１３９０）。既に説明したように、図１にはファイルサーバ（ファイルシステム）１０１、・・・、１０６が一体となったファイルサーバクラスタが描かれている。また、クライアントＸ（１７１）、Ｙ（１７３）、Ｚ（１７７）がマウントするファイルシステムも明示されている。さらに図８で各ノードに与えたラベル「１」、・・・、「６」が明示されている。さらに秘密情報ａ、ｂ、ｃが、その格納先のファイルシステムに書き込まれている。
【００５０】
ここでこのシステムのセキュリティについて考察すると、クライアントＹ（１７３）は秘密情報ａをファイルシステム１０４から読み出すことができる。さらに読み出した秘密情報ａのコピーを、ファイルシステム１０６に書くことができたとする。するとクライアントＺ（１７７）は、ファイルシステム１０６にアクセスして、クライアントＹがファイルシステム１０６に書き込んだ秘密情報ｂのコピーを読むことができる。これはクライアントＺ（１７７）が秘密情報ａにはアクセスできないというセキュリティポリシ（エントリ７５２）に反する。このようなポリシ違反を避けるため、ファイルサーバ間のマウントは 「読み出しのみ可」の マウントとする。これにより、図８の束においてマウントしたノードよりも下にあるノードのファイルシステムには書き込みができなくなる。これは、いわゆるＢｅｌｌ−ＬａＰａｄｕｌａモデルにおける＊−プロパティ（スター・プロパティ、Ｎｏ  Ｗｒｉｔｅ  Ｄｏｗｎ）ルールを実現していることになる。
【００５１】
ファイルサーバによるファイルサーバのマウントに関し、以上に述べたもの以外のマウントを禁止し、また上記の「読み出しのみ可」のマウントを強制するように、各ファイルサーバのアクセス制御パラメータを設定する。例えば、ＮＦＳでは、/etc/exports ファイルが、エクスポートするファイルシステムアクセス制御パラメータとなっている。
【００５２】
図９は、ファイルサーバ間のファイルシステムのマウントの制御に関するパラメータ９００を示している。上記のようにファイルサーバ間のマウントは図８の矢印に対応している。列９４１には図８の矢印の番号が列記されている。列９４２にはマウントする側のファイルサーバ、すなわち矢印の終点側のノードのラベルが記入されている。列９４３には、マウントされる側、すなわち矢印の起点側のファイルシステムのラベルが記入されている。列９４４がマウントされる側のファイルサーバの exports ファイルに設定するパラメータ（の一部）である。
【００５３】
例えば、行９２１は矢印８６５に対する情報が記入されており、マウントするファイルサーバのラベルは５、マウントされるファイルシステムのラベルは６である。ラベルが「ｎ」のファイルサーバの名称はｓｅｒｖｅｒ＿ｎ、エクスポートするファイルシステムは／ｅｘｐｏｒｔ＿ｎとする。行９２１の列９４４のパラメータは、マウントされるファイルサーバ１０６の/etc/exports ファイルに設定されるもので、エクスポートするファイルシステム１０６の名称／ｅｘｐｏｒｔ＿６をｓｅｒｖｅｒ＿５（１０５）が 「読み出しのみ可」 でマウントすることを許可している。行９２２、９２３、９２４、９２５、９２６、９２７についても同様である。
【００５４】
図１０は、クライアントによるマウントの制御に関するパラメータ１０００を示している。列１０４２には関係するクライアントが列記されている。行１０２１はクライアントＸに関する情報が記入されている。前記の通り、クライアントＸはファイルシステム１０４をマウントし、それ以外のファイルシステムはマウントしない。この行のエントリ１０４３にはクライアントがマウントするファイルシステムのラベル「４」が記入してあるのはそのことを表している。エントリ１０４４にはファイルサーバ１０４の /etc/exports に設定するパラメータが示されており、ファイルシステム／ｅｘｐｏｒｔ＿４（１０４）を「読み書き可」のマウントすることが指定されている。同様に、行１０２２のエントリ１０４４にはクライアントＹに関するパラメータ、行１０２３のエントリ１０４４にはクライアントＺに関するパラメータが示されている。
【００５５】
図９と図１０の情報をあわせると、実際に設定するパラメータとなる。これは図３に示した通りである。
【００５６】
以上では、想定通りのマウントを強制するための、マウントされる側のパラメータ設定を説明した。実際にシステムを構成するためには、実際にマウント処理を実行しなければならない。各サーバ、各クライアントでｍｏｕｎｔコマンドを実行する、あるいは、システム起動時の自動マウント機能などによって実行する、これらは、マウントする側で行う。
【００５７】
図１１は自動マウントを制御するパラメータ/etc/fstab ファイルにおける、マウントするファイルシステムの記述１１００である。図８の矢印ごとにマウントが行われるので、列１１４１には矢印の番号が記入されている。列１１４２にはマウントするファイルサーバのラベル、列１１４３にはマウントされるファイルシステムのラベルが示されている。列１１４４に、設定するパラメータが例示されている。行１１２１は矢印８６５に対応するマウント（１６５）に関する情報である。マウントするファイルサーバは１０５であり、マウントされるファイルシステムは１０６である。設定するパラメータ（１１４４）はマウントするファイルサーバ１０５の/etc/fstab ファイルに設定する。パラメータは、ｓｅｒｖｅｒ＿６のファイルシステム／ｅｘｐｏｒｔ＿６を／ｍｎｔ６ ディレクトリにＮＦＳのファイルとして、「読み出しのみ可」でマウントする、という内容である。
【００５８】
図１２は各クライアントの、自動マウントを制御するパラメータ/etc/fstab ファイルにおける、マウントするファイルシステムの記述１２００である。図１のクライアントX、Y、Zからの各矢印についてマウントが行われるので、列１２４１にはクライアントの名前が記入されている。列１２４３にはクライアントがマウントするファイルシステムのラベルが示されている。列１２４４には設定するパラメータが例示されている。行１２２１は矢印１８１に対応するマウントに関する情報である。クライアントXがマウントするファイルサーバは１０４である。設定するパラメータ（１２４４）はクライアントXの/etc/fstab ファイルに設定する。パラメータは、ｓｅｒｖｅｒ＿４のファイルシステム／ｅｘｐｏｒｔ＿４をクライアントXの／ｍｎｔ ディレクトリにＮＦＳのファイルとして、「読み出し、書き込み可能」オプションでマウントする、という内容である。同様に、行１２２２、行１２２３はそれぞれ矢印１８３、１８７に対応するマウントに関する情報であり、それぞれクライアントY、Zの/etc/fstab ファイルに設定する。クライアントがマウントするファイルサーバは、それぞれｓｅｒｖｅｒ＿２、ｓｅｒｖｅｒ＿３である。
【００５９】
以上によって得られた階層型ファイルサーバクラスタは次のような特徴を持っている。
【００６０】
アクセス制御の方式にＤＡＣ（任意アクセス制御）とＭＡＣ（強制アクセス制御）がある。ＤＡＣは各ファイルについて、ファイルの所有者の概念を導入し、所有者がアクセス制御の設定を行う、というものである。ＭＡＣは組織のセキュリティポリシを元に、システムがアクセス制御の設定を行い、所有者のアクセス制御設定権限を制限する、というものである。これによって、コピーによる情報漏洩の問題を解決する。しかし、ＭＡＣの実装では、ファイルのメタデータにセキュリティラベルと呼ばれるセキュリティ属性を付け、それによってポリシを記述し、システムによるアクセス制御設定とアクセス制御を実現しなければならない。しかし、ファイルにセキュリティラベルを付与してこれを使用するのは通常の運用形態ではない。また、ネットワーク環境でのＭＡＣの運用は難しい。
【００６１】
本実施形態による階層型ファイルサーバクラスタでは、ファイルがどのファイルサーバに格納されているかによって、上記に言うセキュリティラベル付けが実質的にできている。クライアントのファイルに対するアクセス権は、そのファイルがどのファイルサーバにあるかによって決まり、ファイルのパス名に依存しない。下位のファイルシステムへの書き込みが制限されるため、セキュリティラベルの付け替え、すなわちコピーのアクセス制御の設定の変更ができない。以上はセキュリティラベルの特性そのものであり、ＭＡＣが実現できていると考えられる。
【００６２】
本実施形態の階層型ファイルサーバクラスタによるアクセス制御メカニズムは、クライアントに対するアクセス制御を行い、個々のユーザに対するアクセス制御では必ずしもない。しかし、これは、ロールベースアクセス制御（Ｒｏｌe−Ｂａｓｅｄ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ、ＲＢＡＣ）の考えを導入すると有効に解決することができる。例えば、運用によって、クライアントは、あるロールの仕事を遂行するための専用マシンとする。クライアントをロールに対応させることで、クライアントに対するアクセス制御はロールに対するアクセス制御と考えることができる。これは階層型ファイルサーバクラスタによって実現できる。一方、ユーザがこのマシンにログインするということは、そのマシンで実行すべきロールのセッションを開くことに相当する。
【００６３】
本実施形態による階層型ファイルサーバクラスタのセキュリティの前提条件の一つにクライアントの認証がある。これはファイルサーバとクライアントの間の認証プロトコル、あるいはクライアントの厳重な管理などにより、担保する必要がある。
【００６４】
本発明では、ファイルサーバは、他のファイルサーバをマウントすると、マウントしたファイルサーバのファイルをクライアントにエクスポートできるものと仮定している。これは全ての分散ファイルシステムにおいて実現しているわけではない。そこで、一つの実現方式を説明する。
【００６５】
図１５は、第一のファイルサーバ１５０１が第二のファイルサーバ１５０２をマウントし、第一のファイルサーバ１５０１をマウントするクライアント１５００に第二のファイルサーバのファイルシステム１５６２をエクスポートするための構成を示している。実線矢印に従って、リクエストが伝達されるので、これを説明する。
【００６６】
クライアント１５００のアプリケーション１５１０がこのファイルに対するアクセスリクエストを出すと、クライアント１５００のファイルサービス１５２０がこれを受け付ける。ファイルサービス１５２０は仮想ファイルシステム１５３０を経由して、実際のファイルアクセスを行うファイルシステムを決定する。図１５ではローカルファイルシステム１５４０ではなく、遠隔ファイルクライアント１５５０が選択されている。
【００６７】
遠隔ファイルクライアント１５５０はファイルサーバ１５０１にある遠隔ファイルサーバ１５７１にアクセスリクエストを転送する。遠隔ファイルサーバ１５７１はファイルサーバ１５０１内の仮想ファイルシステム１５３１を経由して実際のファイルシステムを選択する。図１５ではフィルシステムスイッチ１５８１が選ばれている。
【００６８】
ファイルシステムスイッチ１５８１はユーザ空間ファイルアシスト１５９１にリクエストを転送する。ユーザ空間ファイルアシスト１５９１はアクセスリクエストをアプリケーションプログラム１５１０と同様にアクセスリクエストを出す。ファイルサーバ１５０１のファイルサービス１５２１がこれを受け取り、仮想ファイルシステムを経由して、今度は遠隔ファイルクライアント１５５１が選ばれる。遠隔ファイルクライアント１５５１は第二のファイルサーバ１５０２の遠隔ファイルサーバ１５７２にリクエストを転送する。
【００６９】
遠隔ファイルサーバ１５７２は仮想ファイルシステム１５３２を経由して、実際のファイルシステムを選択するが、今度は第二のファイルサーバ１５０２のローカルファイルシステム１５４２が選択される。ローカルファイルシステム１５４２は第二のファイルサーバ上にある物理デバイス１５６２に対して要求されたファイルアクセスを実行する。
【００７０】
例えば、アプリケーション１５１０のリクエストがファイルの読み出しであれば、物理デバイス１５６２からファイルが読み出され、以上の説明とは逆の経路をたどって、クライアント１５１０にその内容が送達される。
【００７１】
以上の構成で、ユーザ空間ファイルアシスト１５９１はアプリケーション１５１０と同様のメカニズムを利用することにより、実装を容易にすることを意図して導入したものである。ファイルシステムスイッチ１５８１とユーザ空間ファイルアシスト１５９１を合体させ、直接、遠隔ファイルクライアントを呼び出すようにすれば、よりオーバヘッドの少ない実装が可能となる。
【００７２】
本実施形態では、図７から図８を得て、これを図１のファイルサーバクラスタに対応させたが、図７のポリシの意味や実体への対応のさせ方はこの限りではない。例えば、図７がサービスのライセンスをクライアントが持っているか否かを表し、ノードをサーバに、矢印をサーバ間のサービスの提供が可能であることを表すとすると、ライセンスを持っていないクライアントには間接的にもサービスを与えないようにすることができる。
【符号の説明】
【００７３】
１００：階層型ファイルサーバクラスタ、１０１〜１０６：ファイルシステム、ないしファイルサーバ、１７１、１７３、１７７：クライアント、１２１、１３１、１４２、１５２、１５３、１６４、１６５：ファイルサーバのマウント、１８１、１８３、１８７：クライアントからのマウント、２００：フラット型ファイルサーバクラスタ、３０１〜３０６、４０１〜４０６：/etc/exports の設定パラメータ、８９１〜８９６：概念束のノード、１１４４、１２４４：/etc/fstab の設定パラメータ、１３００：ファイルサーバクラスタの構成。
【図１】
2011103096.tif 000003
【図２】
2011103096.tif 000004
【図３】
2011103096.tif 000005
【図４】
2011103096.tif 000006
【図５】
2011103096.tif 000007
【図６】
2011103096.tif 000008
【図７】
2011103096.tif 000009
【図８】
2011103096.tif 000010
【図９】
2011103096.tif 000011
【図１０】
2011103096.tif 000012
【図１１】
2011103096.tif 000013
【図１２】
2011103096.tif 000014
【図１３】
2011103096.tif 000015
【図１４】
2011103096.tif 000016
【図１５】
2011103096.tif 000017