(57)【特許請求の範囲】
【請求項１】
ネットワークを介してユーザ端末装置とユーザデータを預かるサーバ装置とが接続して構成されるアクセス制御システムにおいて、
前記サーバ装置は、前記ユーザデータを保管するストレージを有し、前記ユーザ端末装置から前記ユーザデータへのアクセス要求を受信すると、アプリケーション層からストレージ層まで階層化された各層のアクセス制御部においてそれぞれ前記ユーザデータへのアクセス制御を行ない、当該アクセス制御結果をストレージ層のアクセス制御部に収集し、当該ストレージ層のアクセス制御部は、前記各層のアクセス制御結果を紐付け、予め記憶済みのアクセス権限の組み合わせと一致するか否かを判定し、一致すると前記ユーザデータへのアクセスを許可することを特徴とするアクセス制御システム。
【請求項２】
更に、前記サーバ装置は、アクセス権限の組み合わせを設定するアクセス設定部を有し、
前記アクセス設定部は、ユーザ端末装置の要求に基づき前記アクセス権限の組み合わせを設定することを特徴とする請求項１に記載のアクセス制御システム。
【請求項３】
更に、前記サーバ装置は、前記アクセス制御結果をアクセス履歴として記憶するアクセス履歴記憶部を有し、
前記ストレージ層のアクセス制御部は、前記アクセス権限の組み合わせによる各層間の関係と過去のアクセス履歴に基づいて動的にアクセス制御をすることを特徴とする請求項１または請求項２の何れか一項に記載のアクセス制御システム。
【請求項４】
更に、前記各層のアクセス制御部は、アクセス制御の結果、アクセス違反を検出すると、当該アクセス違反の原因となる層を論理的に切り離し、切り離した層からのアクセス要求を受けずアクセスを不可とすることを特徴とする請求項１乃至請求項３の何れか一項に記載のアクセス制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネット等のＩＰネットワークを介してサーバへ利用者が預けた利用者データに対するアクセス制御を行なうアクセス制御システムに関する。
【背景技術】
【０００２】
従来、利用者がネットワークを介して利用者のデータをサーバのストレージに保管するデータ保管サービスが提供されている。かかるデータ保管サービスでは、サーバにあるストレージに保管される利用者のデータへのアクセス制御は、アプリケーションプログラムの実行プロセスを扱う層、ＯＳ・仮想マシンの層、ハイパーバイザ（仮想マシンモニタ）の層、物理的なストレージの層のようにサーバの処理効率を反映して階層化された各層で個別に行なわれている。すなわち、各層で個別にシステム側管理者が設定した権限で利用者のデータ等のリソースへのアクセスのアクセス制御を行ない、リソースへのアクセスの正当性が検証の結果アクセスの可否が決定する（特許文献１、特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１０８１７０号公報
【特許文献２】特開２０１０−０５５２２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のアクセス制御方式では、データへのアクセス権の制御が各層で個別に行なわれるため、一貫したアクセス権の制御を行なえない。また、利用者自身がアクセス権を管理したいと考えても、利用者が設定できるのは他の利用者への参照の可否といったアプリケーションプログラムでのアクセス権の管理であり、利用者自身がサーバ内の各層のアクセス権を管理することはできない。
【０００５】
そこで、本発明は、各層を一貫してデータへのアクセス権を管理することができるアクセス制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
かかる課題を解決するために、本発明は、ネットワークを介してユーザ端末装置とユーザデータを預かるサーバ装置とが接続して構成されるアクセス制御システムにおいて、サーバ装置は、ユーザデータを保管するストレージを有し、ユーザ端末装置からユーザデータへのアクセス要求を受信すると、アプリケーション層からストレージ層まで階層化された各層のアクセス制御部においてそれぞれ前記ユーザデータへのアクセス制御を行ない、当該アクセス制御結果をストレージ層のアクセス制御部に収集し、当該ストレージ層のアクセス制御部は、各層のアクセス制御結果を紐付け、予め記憶済みのアクセス権限の組み合わせと一致するか否かを判定し、一致すると前記ユーザデータへのアクセスを許可することを特徴とするアクセス制御システムを提供する。これにより、各層のアクセス権を紐付けして最終アクセス制御判定（アクセスフローの正当性検証）をすることができる。
【０００７】
かかるアクセス制御システムにおいて、更に、サーバ装置は、アクセス権限の組み合わせを設定するアクセス設定部を有し、アクセス設定部は、ユーザ端末装置の要求に基づき前記アクセス権限の組み合わせを設定することが好ましい。これにより、利用者自身がサーバのデータのアクセス権の管理を行なうことができる。
【０００８】
また、かかるアクセス制御システムにおいて、更に、サーバ装置は、前記アクセス制御結果をアクセス履歴として記憶するアクセス履歴記憶部を有し、ストレージ層のアクセス制御部は、アクセス権限の組み合わせによる各層間の関係と過去のアクセス履歴に基づいて動的にアクセス制御をすることが好ましい。これにより、アクセス履歴を基に動的なアクセス制限をすることができる。
【０００９】
また、かかるアクセス制御システムにおいて、更に、サーバ装置は、アクセス制御の結果、アクセス違反を検出すると、当該アクセス違反の原因となる層を論理的に切り離し、切り離した層からのアクセス要求を受けずアクセスを不可とすることが好ましい。これにより、ストレージが論理的に各層を切り離しすることができ、以後のアクセス制御の処理を省力化することができる。
【発明の効果】
【００１０】
本発明によれば、各層を一貫してデータへのアクセス権を管理するアクセス制御システムを提供することができる。また、利用者自身によってアクセス権を管理することができるアクセス制御システムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明によるアクセス制御システムを説明するための図である。
【図２】本発明によるアクセス制御システムのモデル化を説明する図である。
【図３】モデル化によるアクセス制御リストを説明する図である。
【図４】アクセス規則生成の処理フローチャートである。
【図５】アクセス可否の処理フローチャートである。
【図６】アクセスフローチェックの詳細な処理フローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明に係るアクセス制御システムについて、図を参照しつつ説明する。図１は、本発明によるアクセス制御システムの構成図である。図１に示すアクセス制御システム１は、サーバ装置２とユーザ端末装置３とがネットワーク４を介して接続されて構成される。
【００１３】
サーバ装置２は、ネットワーク４を介して、ユーザ端末装置３へ所定のサービスを提供するサーバであり、アプリケーション部２１と、ＯＳ／仮想マシン（ＶＭ）部２２と、仮想マシンモニタ（ＶＭＭ）部２３と、ストレージ部２４と、サーバ通信部２５と、を有する。
【００１４】
アプリケーション部２１でのアクセス制御とは、サービス利用権限の確認である。アプリケーション部２１は、ユーザ認証とサービス提供を行い、ユーザ認証及びユーザ管理を行なうユーザ管理部（不図示）、ユーザ端末装置３へ所定のサービスを提供するサービス提供部（不図示）、アプリケーション部２１におけるアクセス制御を行なうためのアクセス制御部２１１とアクセス規則記憶部２１２、後述のストレージ部との間でアクセス制御に関する通知を行なう際に用いる層間通信部２１３を持つ。
【００１５】
ＯＳ／ＶＭ部２２でのアクセス制御とは、上位のアプリケーション部２１のユーザ情報へのアクセス権限の確認である。ＯＳ／ＶＭ部２２は、ＯＳ／ＶＭ部２２に割り当てられたメモリやディスク、アプリケーション部２１のスケジューリング管理を行うカーネル部（不図示）、ＯＳ／ＶＭ部２２におけるアクセス制御を行なうためのアクセス制御部２２１とアクセス規則記憶部２２２、後述のストレージ部との間でアクセス制御に関する通知を行なう際に用いる層間通信部２２３を持つ。
【００１６】
ＶＭＭ部２３でのアクセス制御とは、上位のＯＳ／ＶＭ部２２のリソースであるデータへのアクセス権限の確認である。ＶＭＭ部２３は、ＯＳ／ＶＭ部２２に割り当てているＣＰＵやメモリ、ディスクを管理するハードウェア管理部（不図示）、ＶＭＭ部２３におけるアクセス制御を行なうためのアクセス制御部２３１とアクセス規則記憶部２３２、後述のストレージ部との間でアクセス制御に関する通知を行なう際に用いる層間通信部２３３を持つ。
【００１７】
ストレージ部２４は、２つのアクセス制御を行ない、まず第１に、上位のＶＭＭ部２３のストレージへのアクセス権限の確認であり、第２に、アプリケーション部２１からＶＭＭ部２３を通してのアクセス権限の紐付け及び履歴によるアクセスフローの正当性の確認である。ストレージ部２４は、ユーザのデータを保管しているユーザ情報管理部（不図示）と、ストレージ部２４におけるアクセス制御を行なうためのアクセス制御部２４１とアクセス規則記憶部２４２、アプリケーション部２１及びＯＳ／ＶＭ部２２及びＶＭＭ部２３との間でアクセス制御に関する通知を行なう際に用いる層間通信部２４３、層間の一貫したアクセス制御を行なうための層間アクセス制御部２４４及び層間アクセス規則記憶部２４５及び層間アクセス履歴記憶部２４６及び層間アクセス規則設定部２４７を持つ。
【００１８】
層間通信部２４３は、各層から当該層で得られたアクセス制御の結果を受け取り、層間アクセス履歴記憶部２４６のアクセス履歴に記憶する。
【００１９】
層間アクセス制御部２４４は、アクセス履歴からあるアクセス要求にもとづくアクセスフローを生成しそのアクセスフローの正当性を層間アクセス規則記憶部２４５から読み込んだアクセス規則と層間アクセス履歴記憶部２４６から読み込んだアクセス履歴に基づいて検証し、アクセス可否を判定する。
【００２０】
層間アクセス規則記憶部２４５は、後述の層間アクセス規則設定部２４７で設定された、各層のアクセス主体とアクセス権とが紐付けられたアクセス規則を記憶する。また、層間アクセス制御部２４４に対して記憶したアクセス規則を読み出し提供する。
【００２１】
層間アクセス履歴記憶部２４６は、層間通信部２４３を通じて各層から通知されるアクセス制御の結果及び層間アクセス制御部２４４における層間アクセス制御の結果を記憶する。また、層間アクセス制御部２４４に対して記憶しているアクセス制御の結果をアクセス履歴として読み出し提供する。
【００２２】
層間アクセス規則設定部２４７は、各層のアクセス主体とアクセス権とを紐付けられたアクセス規則の設定とチェックを行ない、層間アクセス規則記憶部２４５にアクセス規則を記憶させる。
【００２３】
サーバ通信部２５は、ネットワーク４を通じて、ユーザ端末装置３との通信を行なうインタフェースである。
【００２４】
ここで、アクセス規則について、説明する。アクセス制御システム１では、次の3つのアクセス制御モデルを用いて、アクセス規則を生成する。
１つ目は、BLP(Bell  and  LaPadula)モデルで、不正読み出し・開示の防止を目的とした秘匿性重視のモデルであり、アクセスを行う主体とアクセスされる対象にレベルをつけ、レベルの高低を用いて対象へのアクセスを制御する。２つ目は、Chinese  Wallモデルで、アクセスの対象を分野や利害によりクラスに分類、アクセスの主体から同時に制限、対象へのアクセス履歴で主体のアクセス可能分野を動的制御する。３つ目は、RBAC(Role  Based  Access  Control)モデルで、組織構造を意識したアクセス制御を可能とするためのモデルであり、ロール（位置づけ・役割）を定義、ロールに対して情報などアクセス対象へのアクセス権をつけアクセスする主体はロールに紐付けアクセス権を付与することでアクセスを制御する。
【００２５】
アプリケーション部２１及びＯＳ／ＶＭ部２２及びＶＭＭ部２３には、BLPモデルとRBACモデルを適用し、それぞれアクセスを行う主体とアクセス権を表すロール、レベルを生成してアクセス規則を生成する。また、ストレージ部２４には、BLPモデルとChinese  Wallモデルを適用し、アクセスされる対象と対象の属するクラス、レベルを生成してアクセス規則を生成する。さらに、各層を一貫して制御するため、ストレージ部２４に保管されるユーザの情報へのアクセスに関わる層すべてにおいて、アクセスする主体とアクセス権とが紐付けされたアクセス規則を生成する。
【００２６】
アクセス規則において、アクセスを行う主体は、各層においてアクセスを行う主体、主体が属するロール、ロールに割り当てられたセキュリティレベルとし、アクセスされる対象は、対象、対象が属するクラス、クラスに割り当てられたセキュリティレベルとする。つまり、アクセス制御の可否を判断するアクセス規則は、主体の集合と対象の組み合わせで構成され、{主体|アクセス主体、主体の属するロール、ロールのセキュリティレベル}：{対象|アクセス対象、対象の属するクラス、クラスのセキュリティレベル}と記述することができる。
【００２７】
ここで、アクセス規則の例を説明する。アクセス規則は、アクセス制御システムをモデル化し、そのモデルに基づくアクセス制御リストとして生成する。図２はモデル化の例の図であり、図３は図２のモデルによるアクセス制御リストの例である。
【００２８】
まず、図２を参照し、モデル化の例を説明する。アプリケーション部２１で実行されるユーザ認証処理とサービス提供処理、ＯＳ／ＶＭ部２２、ＶＭＭ部２３、ストレージ部２４、及び、ストレージ部２４内のユーザ情報が、図２のSystem  Entityとして、それぞれ、ユーザ、プロセス（サービス）、OS・仮想マシン、ハイパーバイザ（仮想マシンモニタ）、ストレージ、ユーザ情報、と定義する。さらに、System  Entityのユーザ、プロセス（サービス）、OS・仮想マシン、ハイパーバイザ（仮想マシンモニタ）のSubjectは、それぞれ、Users、Process  Users、OS/VM  IDs、HV/VMM  IDsとして定義する。System  Entityのユーザ情報は、アクセスされる対象、すなわち、ObjectであるData  Objectsとして定義する。また、Objectが属する分類毎のClassを、Classesとして定義する。次に、Classに対してアクセス権を持つRoleを定義する。図２では、Positions、Services、Administrative  Roles、というRoleとして定義している。また、ClassとRoleへ付与するSecurity  Levelも定義する。図２では、Top  Secret、Secret、Confidential、Unclassifiedという4つをSecurity  Levelを定義している。この後、各Roleと各Classに対して定義済みのSecurity  Levelを割り当て、SubjectであるUsers、Process  Users、OS/VM  IDs、HV/VMM  IDsには定義済みのRoleを割り当て、ObjectであるData  Objectsには定義済みのClassesを割り当てることで、モデル化される。図２では、UsersにはPositionsが、Process  Usersには、Servicesが、OS/VM  IDs及びHV/VMM  IDsにはServicesとAdministrative  Rolesが割り当てられている。
【００２９】
次に、図３を参照し、図２のモデル化によるアクセス制御リストを説明する。図３（ａ）はアクセス制御リストの例を、図３（ｂ）はRoleとClass間におけるアクセス権限の例を、図３（ｃ）はRoleとSubjectの組み合わせの例を、図３（ｄ）は動的なアクセス制御を実現するために用いるアクセス対象のクラス間における利害衝突クラスの組み合わせの例を、それぞれ示したものである。
【００３０】
図３（ａ）は、アクセス主体とアクセス対象間において、特定のアクセス主体がアクセス対象に対してアクセス権を持ちアクセス可能かどうかを表している。アクセス主体は、図２にて説明したSubject、Role、Security  Levelの組み合わせとし、アクセス対象は、Object、Class、Security  Levelの組み合わせである。この図３（ａ）を用いて、セキュリティレベルを用いたアクセス制御ができる。セキュリティレベルを用いたアクセス制御は、アクセス主体に含まれる各Subjectが属するRoleに割り当てられているSecurity  Levelがアクセス対象のData  Objectsが属するClassのSecurity  Level以上かどうか判定することで行う。
図３（ａ）において、
アクセス主体
User1, Position1, Top Secret
Process User1, Service1, Top Secret
VM1 ID, Service1, Administrative Role1, Top Secret
VMM1 ID, Service1, Administrative Role1, Top Secret
アクセス対象
Data Object1, Class1, Secret
の組み合わせの場合、アクセス主体のいずれのロールのSecurity  Levelもアクセス対象のClassのSecurity  Level以上であるためアクセスOKとなる。しかし、
アクセス主体
User2, Position2, Confidential
Process User1, Service1, Top Secret
VM1 ID, Service1, Administrative Role1, Top Secret
VMM1 ID, Service1, Administrative Role1, Top Secret
アクセス対象
Data Object1, Class1, Secret
の組み合わせの場合は、User2, Position2, ConfidentialのSecurity  Levelはアクセス対象のClassのSecurity  Level以下であるためアクセスNGとなる。
また、この図３（ａ）を用いて、アクセス主体の組み合わせによるアクセス制御ができ、アクセス主体に含まれるSubject, Role, Security  Levelが、図３（ａ）の組み合わせでアクセス対象にアクセスしているか否かを判定するために、参照する。
【００３１】
図３（ｂ）は、RoleとClass間において、RoleがClassに対してアクセス権を持ちアクセス可能かどうかを表している。この図３（ｂ）と図３（ａ）を用いて、ロールの権限を用いたアクセス制御ができる。ロールの権限を用いたアクセス制御は、アクセス主体の各Subjectが属するRoleがアクセス対象となるClassへアクセス権限を保持しているか判定することで行われる。
図３（ａ）及び図３（ｂ）において、
アクセス主体
User1, Position1, Top Secret
Process User1, Service1, Top Secret
VM1 ID, Service1, Administrative Role1, Top Secret
VMM1 ID, Service1, Administrative Role1, Top Secret
アクセス対象
Data Object1, Class1, Secret
の組み合わせの場合、アクセス主体のいずれのロールもアクセス対象のクラスへアクセス権限を保持しているためアクセスOKとなる。しかし、
アクセス主体
User3, Position3, Secret
Process User2, Service2, Secret
VM1 ID, Service1, Administrative Role1, Top Secret
VMM1 ID, Service1, Administrative Role1, Top Secret
アクセス対象
Data Object1, Class1, Secret
の組み合わせの場合は、アクセス主体のうちUser3, Position3, SecretとProcess User2,
Service2, SecretのロールであるPosition3とService2は図３（ｂ）からClass 1へのアクセス権限は保持していないため、アクセスNGとなる。
【００３２】
図３（ｃ）は、各Roleにおいて属しているSubjectの集合を表わしている。アクセスするアクセス主体に含まれるSubjectとRoleの組み合わせは、図３（ｃ）にあるようなあらかじめ決められた組み合わせである必要がある。図３（ｃ）では、Position1というRoleにはUser1というSubjectが、Service2というRoleにはProcess  User2, VM1  ID,
VMM1  IDというSubjectの集合が示されている。
【００３３】
図３（ｄ）は、アクセス対象となるData  Objectが属しているClassにおいて、アクセス主体のアクセス履歴を用いて動的なアクセス制御を実現するために使用する利害衝突クラスの組み合わせを表わしている。利害衝突クラスとは、アクセス主体がアクセス対象に対してアクセス権限を保持しているが、一度に同時にはアクセスできないクラスの組み合わせを示すために用いる。つまり、アクセス主体において利害衝突クラスの組み合わせにあるクラス間へのアクセスについては、アクセス主体が一方のクラスにアクセス中であれば、もう一方のクラスについてはアクセス権限を保持している場合でも、アクセス履歴を基にしてアクセスを拒否される。
図３（ａ）及び図３（ｄ）において、
アクセス主体
User1, Position1, Top Secret
Process User1, Service1, Top Secret
VM1 ID, Service1, Administrative Role1, Top Secret
VMM1 ID, Service1, Administrative Role1, Top Secret
が、アクセス履歴に何も存在しない状態で、まず初めに、
アクセス対象1
Data Object1, Class1, Secret
にアクセスする場合で説明する。このとき、図３（ｄ）の利害衝突クラスでは、Class1はClass2と利害衝突クラスの関係にあるが、アクセス主体のアクセス履歴には何も存在しないため、アクセスOKとなり、アクセス履歴にアクセス対象1へのアクセスが記録される。次に、アクセス対象1へのアクセスを保持したまま、つまりアクセス中のまま、
アクセス対象2
Data Object2, Class2, Confidential
にアクセスを行うと，アクセス履歴と図３（ｄ）の利害対象クラスから、アクセス対象2に含まれるClass2と利害対象クラスの関係にあるClass1を含むアクセス対象1にアクセス中であるため、アクセス主体に対し、アクセス対象2へのアクセス権限は保持しているがアクセス履歴と利害対象クラスからアクセス対象2へのアクセスはアクセスNGであると判定することができ、動的なアクセス制御を行える。
【００３４】
ユーザ端末装置３は、ネットワーク４を介して、サーバ装置２から所定のサービスを提供される端末装置である。ユーザ端末装置３は、ユーザ端末装置３を制御し、サーバ装置２からのサービスを実行するサービス実行手段３１１を持つ端末制御部３１と、サービス画面を表示する端末表示部３２と、表示画面に従って利用者が入力操作するための端末操作部３３と、ネットワーク４を通じてサーバ装置２との通信を行なうインタフェースである端末通信部３４と、を有する。
【００３５】
次に、図４を参照しつつ、ユーザによるアクセス規則生成時の処理フローを説明する。
ユーザよりアクセス規則生成の要求をうけると（ステップＳ１００）、層間アクセス規則設定部２４７は、そのユーザに関係するアクセス規則およびユーザに関係する各層のアクセス主体とアクセス権限、ユーザ情報を取得し（ステップＳ１０１〜Ｓ１０２）、ユーザ端末装置３に表示させる（ステップＳ１０３）。ユーザがそれらを元に作成したアクセス規則を受信すると（ステップＳ１０４）、層間アクセス規則設定部２４７は、そのアクセス規則が正しいか判定し（ステップＳ１０５）、正しい場合（ステップＳ１０５−Ｙｅｓ）はアクセス規則を保存し（ステップＳ１０６）、その旨をユーザへ通知し（ステップＳ１０７）、アクセス規則更新をログに残し（ステップＳ１０８）、処理を終了する。アクセス規則が正しくない場合（ステップＳ１０５−Ｎｏ）は、その旨をユーザに通知し（ステップＳ１０９）、修正が行われるならば再度アクセス規則を作成してもらい（ステップＳ１１０−Ｙｅｓ）、修正が行われない場合（ステップＳ１１０−Ｎｏ）は終了する。
【００３６】
図５を参照し、アクセス制御システム１における、ユーザからのアクセス要求について、そのアクセスの可否を判定する際の処理フローを説明する。ユーザからのアクセス要求を受け取り、各層においてアクセス権限のチェックと層間通信部を通してストレージの層間アクセス履歴記憶部２４６にアクセスの記録を行い、アクセスフローを形成してアクセス制御を行う。
【００３７】
まず、アプリケーションにおいて、ユーザの認証とアクセス権限のチェックを行い（ステップＳ２０１）、その結果をストレージ部２４の層間アクセス履歴記憶部２４６に記録する（ステップＳ２０２、ステップＳ２１３）。
次に、OSにてアプリケーションのアクセス権限のチェックを行い（ステップＳ２０３）、その結果をストレージ部２４の層間アクセス履歴記憶部２４６に記録する（ステップＳ２０４、ステップＳ２１３）。
もし、OSがVMであれば（ステップＳ２０５−Ｙｅｓ）、ハイパーバイザ・仮想マシンモニタ（VMM）にて、OSのアクセス権限のチェックを行い（ステップＳ２０６）、その結果をストレージの層間アクセス履歴記憶部２４６に記録する（ステップＳ２０７、ステップＳ２１３）。一方、OSがVMでない場合は（ステップＳ２０５−Ｎｏ）、VMMのチェックは経ずに次ぎの処理に進む。
ストレージでのチェックは、OSがVMの場合はVMMのアクセス権限を、またOSがVMでない場合はOSのアクセス権限のチェックを行い（ステップＳ２０８）、その結果をストレージの層間アクセス履歴記憶部２４６に記録する（ステップＳ２０９）。
その後、ストレージの層間アクセス制御部２４４において、これまで経てきた各層のアクセス主体とアクセス権限を紐付けしアクセスフローとして、その正当性をチェックする。チェックにあたり層間アクセス規則記憶部２４５よりあらかじめ決められたアクセス規則を、層間アクセス履歴記憶部２４６よりアクセス履歴を用いる。
アクセスフローのチェックより、チェックがＯＫであれば（ステップＳ２１１−Ｙｅｓ）、アクセス許可と判断し、ユーザに読み出したデータを転送し（ステップＳ２１２）、正常なアクセスとしてログをアクセス履歴に記憶し（ステップＳ２１３）、処理を終了する。
一方、チェックがＯＫでない、すなわちチェックＮＧであれば（ステップＳ２１１−Ｎｏ）、不正なアクセスとしてその旨をログとしてアクセス履歴に記憶し（ステップＳ２１３）、処理を終了する。
【００３８】
図６を参照し、図５のステップＳ２１０におけるアクセスフローのチェックの詳細なアクセス可否の判定を行う処理を説明する。層間アクセス制御部２４４にてストレージ上の情報に対するアクセスとして紐付けられる各層のアクセス主体とアクセス権限をアクセスフローとして読み出し（ステップＳ２１０１）、ストレージ上の情報を含めてチェックを行う。アクセスフローのチェックでは、アクセス制御モデルを用いて、そのアクセスフローはあらかじめ決められたアクセス規則に従うか、またアクセス履歴と矛盾はないか判定する（ステップＳ２１０２〜Ｓ２１０６）。判定の結果、問題がない場合は、チェックＯＫを出力して終了する（ステップＳ２１０７）。一方、アクセス規則に従わない場合、またアクセス履歴に矛盾する場合は直ちにチェックＮＧを出力して終了する（ステップＳ２１０８）。
【００３９】
ステップＳ２１０２〜Ｓ２１０６のアクセスフローのチェックは以下の5つの手順で行う。
まず、最初に、BLPモデルにより、アクセスフローに含まれる各アクセス主体が所属しているロールのセキュリティレベルが全てアクセス対象となるストレージ上の情報が属するクラスのセキュリティレベル以上であることを確認する（ステップＳ２１０２）。
次に、Chinese  Wallモデルにより、アクセスフローに含まれる各アクセス主体のアクセス履歴に矛盾つまり、既にアクセスしたことがあるストレージ上の情報が属するクラスと今回アクセス対象となる情報が属するクラスの関係を見て、アクセス違反とならないか確認する（ステップＳ２１０３）。
その後、RBACモデルにより、アクセスフローに含まれるアクセス主体と主体が属するロールの関係が正しいか確認する（ステップＳ２１０４）。
そして、同じく、RBACモデルにより、アクセスフローに含まれるアクセス主体が属するロールがアクセス対象の情報が属するクラスへのアクセス権限を有しているか確認する（ステップＳ２１０５）。
最後に、アクセスフローに含まれるアクセス主体の組み合わせが事前に設定されたアクセス規則の組み合わせであるか確認する（ステップＳ２１０６）。
【００４０】
本発明は、上記実施の形態に限定されるものではなく、幾多の変更及び変形が可能である。例えば、アクセスフローのチェックで、チェックＮＧになった場合に、処理を終了するかわりに、チェックＮＧとなった理由を共に出力してもよい。その場合、なぜＮＧだったかの原因を含めて過去のアクセス履歴を利用してアクセス違反とすることができ、動的なアクセス制御を行うことが可能となるため、アクセス権限を保有している場合でも、そのアクセスを拒否することができる。
【００４１】
また、アクセスフローのチェックで、BLPモデル、Chinese  Wallモデル、RBACモデル、組み合わせのチェックの順にチェックを行なう場合を説明したが、これらの順は入れ替えてもよい。
【００４２】
また、図５のステップＳ２１１でチェックＮＧになった場合に、アクセス履歴に記憶するのみで処理を終了する代わりに、層間のアクセスを制限することにより、アクセス違反層の切り離しをしてもよい。アクセス違反層の切り離しにおけるアクセス制限の処理には、２つの方法がある。
第１の方法は、アクセス違反の原因となったアクセス主体が属する層からのアクセス要求はその下に位置する層において、一切受けつけないことで、切り離しを行なう。
第２の方法は、アクセス違反の原因となったアクセス主体が属するシステム全体（VMMまたはOS）からのアクセス要求をストレージでは一切受けつけないことで、切り離しを行なう。
第１の方法の処理については、アクセスフローのチェックによりチェックNGと出力された場合、ストレージとNGの原因となるアクセス主体の属する層の下の層にある層間アクセス制御とが連携し、NGの原因となったアクセス主体の属する層からのアクセスを制限する。
第２の方法の処理については、ストレージの層間アクセス規則制御部において、アクセスフローのチェックによりチェックNGの原因となるアクセス主体の属する層を含むVMMまたは仮想化を利用していないOS層からのアクセスを制限する。
また、アクセス違反層の切り離しの実施タイミングは、アクセス規則に含まれる各層に対してアクセスフローのチェックによりチェックNGと判定された回数とし、実施時に上記の1または2の処理のいずれかを行うか指定可能とする。
【００４３】
また、サーバ装置２が１つの装置で構成される場合について説明したが、複数の装置を用いて、例えば、ストレージ部２４を他のファイルサーバで構成することもできる。
【符号の説明】
【００４４】
１・・・アクセス制御システム
２・・・サーバ装置
２１・・・アプリケーション部
２１１・・・アクセス制御部
２１２・・・アクセス規則記憶部
２１３・・・層間通信部
２２・・・ＯＳ／ＶＭ部
２２１・・・アクセス制御部
２２２・・・アクセス規則記憶部
２２３・・・層間通信部
２３・・・ＶＭＭ部
２３１・・・アクセス制御部
２３２・・・アクセス規則記憶部
２３３・・・層間通信部
２４・・・ストレージ部
２４１・・・アクセス制御部
２４２・・・アクセス規則記憶部
２４３・・・層間通信部
２４４・・・層間アクセス制御部
２４５・・・層間アクセス規則記憶部
２４６・・・層間アクセス履歴記憶部
２４７・・・層間アクセス規則設定部
３・・・ユーザ端末装置
４・・・ネットワーク
【図１】
0005520769.tif 000002
【図２】
0005520769.tif 000003
【図３】
0005520769.tif 000004
【図４】
0005520769.tif 000005
【図５】
0005520769.tif 000006
【図６】
0005520769.tif 000007