(57)【特許請求の範囲】
【請求項１】
アクセス対象に対するアクセスごとに、アクセス制御データを用いて行われた許否判定の結果と、前記許否判定に利用した内容とが１以上記録されたログ情報と、前記アクセス制御データを変更する変更手順と、
前記ログ情報が示す許否判定に利用した内容に前記変更後のアクセス制御データを適用させてアクセスの許否判定を行い、許否判定の結果と前記許否判定に利用した内容を含む判定結果情報を生成する生成手順と、
をコンピュータに実行させ、
前記生成手順は、前記ログ情報に含まれる前記許否判定に利用した内容ごとに当該許否判定に利用した内容におけるアクセス対象及びアクセス主体に対する関連情報を記憶した索引記憶手段を用いて、前記アクセス制御データに適用する前記許否判定に利用した内容の対象を、変更された前記許否判定に利用した内容と前記アクセス対象又は前記アクセス主体が一致する前記許否判定に利用した内容とするアクセス制御データ編集支援プログラム。
【請求項２】
前記ログ情報と前記判定結果情報との差分を抽出し、該差分を出力する差分抽出手順を前記コンピュータに実行させる請求項１記載のアクセス制御データ編集支援プログラム。
【請求項３】
前記判定結果情報ごとに、前記関連情報を前記索引記憶手段に記録する索引記録手順を前記コンピュータに実行させる請求項１又は２記載のアクセス制御データ編集支援プログラム。
【請求項４】
変更された前記許否判定に利用した内容と前記アクセス対象又は前記アクセス主体が一致する前記許否判定に利用した内容を前記索引記憶手段を用いて特定し、特定された前記許否判定に利用した内容を出力する影響ログ検索手順とを前記コンピュータに実行させる請求項１乃至３いずれか一項記載のアクセス制御データ編集支援プログラム。
【請求項５】
前記許否判定に利用した内容に対する変更を受け付けるログ編集手順を前記コンピュータに実行させ、
前記変更手順は、前記許否判定に利用した内容の変更に応じて前記アクセス制御データを変更する請求項１記載のアクセス制御データ編集支援プログラム。
【請求項６】
アクセス対象に対するアクセスごとに、アクセス制御データを用いて行われた許否判定の結果と、前記許否判定に利用した内容とが１以上記録されたログ情報と、前記アクセス制御データを変更する変更手段と、
前記ログ情報が示す許否判定に利用した内容に前記変更後のアクセス制御データを適用させてアクセスの許否判定を行い、許否判定の結果と前記許否判定に利用した内容を含む判定結果情報を生成する生成手段とを有し、
前記生成手段は、前記ログ情報に含まれる前記許否判定に利用した内容ごとに当該許否判定に利用した内容におけるアクセス対象及びアクセス主体に対する関連情報を記憶した索引記憶手段を用いて、前記アクセス制御データに適用する前記許否判定に利用した内容の対象を、変更された前記許否判定に利用した内容と前記アクセス対象又は前記アクセス主体が一致する前記許否判定に利用した内容とするアクセス制御データ編集支援装置。
【請求項７】
アクセス対象に対するアクセスごとに、アクセス制御データを用いて行われた許否判定の結果と、前記許否判定に利用した内容とが１以上記録されたログ情報と、前記アクセス制御データを変更する変更手順と、
前記ログ情報が示す許否判定に利用した内容に前記変更後のアクセス制御データを適用させてアクセスの許否判定を行い、許否判定の結果と前記許否判定に利用した内容を含む判定結果情報を生成する生成手順とをコンピュータが実行し、
前記生成手順は、前記ログ情報に含まれる前記許否判定に利用した内容ごとに当該許否判定に利用した内容におけるアクセス対象及びアクセス主体に対する関連情報を記憶した索引記憶手段を用いて、前記アクセス制御データに適用する前記許否判定に利用した内容の対象を、変更された前記許否判定に利用した内容と前記アクセス対象又は前記アクセス主体が一致する前記許否判定に利用した内容とするアクセス制御データ編集支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス制御データ編集支援プログラム、アクセス制御データ編集支援装置、及びアクセス制御データ編集支援方法に関し、特にリソースへのアクセスを制御するアクセス制御データの編集を支援するアクセス制御データ編集支援プログラム、アクセス制御データ編集支援装置、及びアクセス制御データ編集支援方法に関する。
【背景技術】
【０００２】
従来、コンピュータシステムにおいてアクセス対象とされる資源（例えば、ファイル等）に対するアクセス制御は、ＡＣＬ（Access Control List）等のアクセス制御の規則が定義されたデータ（以下、「アクセス制御データ」という。）に基づいて行われている。すなわち、アクセス制御データには、アクセス対象のファイルごとに、各種のアクセスについて許否等が定義される。ファイルに対してアクセスが発生した場合、当該アクセスはアクセス制御機構にフックされる。当該アクセスがアクセス制御データに照らして許可されるものであれば、当該アクセスはアクセス制御機構によって許可される。なお、ここでいうアクセス制御機構は、ＯＳ（Operating System）におけるファイルシステムが有している機構とは別に、独自に構築される機構をいう。
【０００３】
アクセス制御データに基づいてアクセス制御を行う場合、アクセス対象とされるファイルは、予めアクセス制御データにアクセス対象として指定されている必要がある。したがって、アクセス制御の漏れを無くすためには、新たに生成されることが予測されるファイルを予め把握しておくことが重要である。又は、新たにファイルが生成された場合、当該ファイルをアクセス制御の対象とするための変更が、迅速にアクセス制御データに対して行われることが重要である。
【０００４】
そこで、従来、新たに生成されるファイルに対するアクセス制御データの編集作業を軽減すべく、アクセス制御データを自動的に生成する技術が検討されている（例えば、特許文献１、特許文献２）。具体的には、新規ファイルに対応したアクセス制御データが自動的に生成される。又は、ファイルアクセスが行われたことを契機に、アクセス制御データが自動的に更新される。
【０００５】
他方において、アクセス制御機構により取得されたアクセスログを参考に、アクセス制御データを手動で設定することは、ＳｅｃｕｒｅＯＳ（セキュアＯＳ）が利用さている環境で実施されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−９９９８２号公報
【特許文献２】特開２００３−６０２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、自動的に生成されるアクセス制御データは、必ずしも望み通りの制御結果を得られるものではない。したがって、手動でアクセス制御データの修正を行い、その修正の妥当性を確認するためのテストが実運用を模した環境で行われていた。通常は、一回のテストでは、満足な結果を得ることはできず、アクセス制御データの修正及びテストは繰り返し行われる必要があった。
【０００８】
この作業自体多大な作業工数を要するものであるにも拘わらず、手動による直接的なアクセス制御データの修正は、設定ミスや影響範囲の把握ミス等により、更に作業工数が肥大化する傾向にあった。
【０００９】
上記の点に鑑みて、アクセス制御データの編集作業の負担を軽減することのできるアクセス制御データ編集支援プログラム、アクセス制御データ編集支援装置、及びアクセス制御データ編集支援方法の提供を目的とする。
【課題を解決するための手段】
【００１０】
そこで上記課題を解決するため、アクセス制御データ編集支援プログラムは、アクセス対象に対するアクセスごとに、アクセス制御データを用いて行われた許否判定の結果と、前記許否判定に利用した内容とが１以上記録されたログ情報と、前記アクセス制御データを変更する変更手順と、前記ログ情報が示す許否判定に利用した内容に前記変更後のアクセス制御データを適用させてアクセスの許否判定を行い、許否判定の結果と前記許否判定に利用した内容を含む判定結果情報を生成する生成手順とをコンピュータに実行させる。
【発明の効果】
【００１１】
アクセス制御データの編集作業の負担を軽減することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態におけるポリシー編集支援システムの機能構成例を示す図である。
【図２】本発明の実施の形態におけるポリシーデータの一例を示す図である。
【図３】本発明の実施の形態におけるポリシー編集支援装置のハードウェア構成例を示す図である。
【図４】ポリシー編集支援装置による全体の処理手順を説明するためのフローチャートの一例である。
【図５】ログ編集画面の表示例を示す図である。
【図６】本実施の形態におけるアクセスログの形式及び具体例を示す図である。
【図７】入力ログファイルの編集処理の処理手順を説明するためのフローチャートの一例である。
【図８】入力ログの変更例を示す図である。
【図９】ポリシーデータ更新処理の処理手順を説明するためのフローチャートの一例である。
【図１０】入力ログの変更に応じたポリシーデータの変更例を示す図である。
【図１１】変更後のポリシーデータに基づくアクセス制御のシミュレーション処理の処理手順を説明するためのフローチャートの一例である。
【図１２】本実施の形態のログインデックスの構成例を示す図である。
【図１３】影響ログの検索処理の処理手順を説明するためのフローチャートの一例である。
【図１４】差分表示画面の表示例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるポリシー編集支援システムの機能構成例を示す図である。同図において、ポリシー編集支援装置１０及びアクセス制御装置２０は、ＬＡＮ（Local Area Network）又はインターネット等のネットワークを介して通信可能に接続されている。
【００１４】
アクセス制御装置２０は、アクセス（操作）対象とされるリソース（資源）に対するアクセス（操作）主体によるアクセス（操作）の許否判定等を行うコンピュータである。本実施の形態において、アクセス対象（又はアクセス制御対象）とされるリソースとして、ファイルシステム上に生成されるファイルを具体例として説明する。したがって、本実施の形態におけるアクセスは、ファイルに関して実行可能なアクセスということになる。また、アクセス主体は、ユーザＩＤ又はグループＩＤによって識別されるユーザ又はグループを具体例として説明する。グループとは、アクセス制御において一以上のユーザの集合を一つの主体として表現する概念である。但し、リソース、アクセス主体、及びアクセスの具体的内容は、本実施の形態が適用されるコンピュータシステムに応じて適宜変更されてよい。
【００１５】
同図において、アクセス制御装置２０は、アプリケーションプログラム２１及びアクセス制御部２２等を含む。アプリケーションプログラム２１は、ユーザからの指示に応じ、ファイルに対してアクセスを行うプログラムの一例である。
【００１６】
アクセス制御部２２は、ＯＳ（Operating System）が有するファイルシステムにおけるアクセス制御機構とは独立して、アプリケーションプログラム２１によるファイルへのアクセスを検知し（フックし）、当該アクセスの許否判定等を行う。アクセス制御部２２は、アクセス監視部２２１、アクセス許否判定部２２２、ログ出力部２２３、及びポリシーデータ３０等を含む。
【００１７】
アクセス監視部２２１は、アプリケーションプログラム２１によるファイルへのアクセスを監視する。監視方法は、公知技術に従えばよい。アクセス監視部２２１は、アプリケーションプログラム２１によるファイルへのアクセスを検知すると、アプリケーションプログラム２１の識別子、アプリケーションプログラム２１の操作者（ユーザ）の識別子、アクセス対象のファイル名、アクセスの種別等をアクセス許否判定部２２２に入力する。
【００１８】
アクセス許否判定部２２２は、入力された情報をポリシーデータ３０に当てはめて、検知されたアクセスの許否判定を行う。アクセス許否判定部２２２によって許可されたアクセスは実行される。アクセス許否判定部２２２によって拒否されたアクセスは実行されない。ポリシーデータ３０は、アクセス主体、アクセス対象（リソース）、及びアクセスの種別（操作種別）の組合せに応じて、アクセスの許否が設定又は定義された、アクセス制御データの一例である。
【００１９】
図２は、本発明の実施の形態におけるポリシーデータの一例を示す図である。同図に示されるように、本実施の形態のポリシーデータ３０は、ＸＭＬ（eXtensible Markup Language）形式によって記述されている。ポリシーデータ３０の内容の説明においても、ＸＭＬに関する用語を用いる。例えば、ＸＸＸ要素とは、＜ＸＸＸ＞タグで囲まれた部分をいう。
【００２０】
ポリシーデータ３０において、ＡＣＬ要素がルート要素である。ＡＣＬ要素は、子要素として、Ｖｅｒｓｉｏｎ要素と、１以上のＳｅｃｔｉｏｎ要素とを含む。同図においても、Ｖｅｒｓｉｏｎ要素ｅＶ１と、Ｓｅｃｔｉｏｎ要素ｅＳ１及びｅＳ２とが含まれている。
【００２１】
Ｖｅｒｓｉｏｎ要素の値は、ポリシーデータ３０のバージョンを示す。Ｓｅｃｔｉｏｎ要素は、当該Ｓｅｃｔｉｏｎ内で定義内容がグルーピングされる範囲（例えば、アプリケーション名）を規定する。アクセス制御のポリシーデータはアクセス対象（ファイル）に対するアクセス許否の条件定義であるため、ファイル構成が同一となる汎用的なアプリケーションに対するポリシーデータは、異なるシステム間でも共通利用できる。そのアプリケーション単位のグルーピングにＳｅｃｔｉｏｎ要素を利用する。Ｓｅｃｔｉｏｎ要素のｖａｌｕｅ属性の値は、当該範囲の識別名又は識別子を示す。例えば、Ｓｅｃｔｉｏｎ要素ｅＳ１のｖａｌｕｅ属性の値は、「共通１」となっている。したがって、Ｓｅｃｔｉｏｎ要素ｅＳ１の定義内容は、「共通１」によって識別されるアプリケーションが導入されたシステムのポリシーグループとして管理される。なお、アクセス許否の条件を複数まとめて管理する必要が無い場合、Ｓｅｃｔｉｏｎ要素は不要である。この場合、以下に説明されるＳｅｃｔｉｏｎ要素の子要素は、ＡＣＬ要素の子要素として記述されてもよい。
【００２２】
各Ｓｅｃｔｉｏｎ要素は、１以上のＡＣＥ要素を子要素として含む。例えば、Ｓｅｃｔｉｏｎ要素ｅＳ１は、ＡＣＥ要素ｅＡＥ１及びｅＡＥ２を含む。ＡＣＥ要素は、本実施の形態において「アクセス制御エントリ」とも呼ばれる。アクセス制御エントリは、ポリシーデータ３０において、アクセス制御に関する定義の最小単位のエントリに相当する。したがって、一つのポリシーデータ３０は、少なくとも一つのＡＣＥ要素を含む。
【００２３】
ＡＣＥ要素は、ＰｏｌｉｃｙＩｄ要素、ＢａｓｅＰｏｌｉｃｙＩｄ要素、Ｔａｒｇｅｔ要素、Ｐｒｏｃｅｓｓ要素、及び１以上のＡｃｔｉｏｎ要素を子要素として含む。例えば、ＡＣＥ要素ｅＡＥ１は、ＰｏｌｉｃｙＩｄ要素ｅＰＬ１、ＢａｓｅＰｏｌｉｃｙＩｄ要素ｅＢＬ１、Ｔａｒｇｅｔ要素ｅＴ１、Ｐｒｏｃｅｓｓ要素ｅＰＳ１、Ａｃｔｉｏｎ要素ｅＡＴ１及びｅＡＴ２を含む。
【００２４】
ＰｏｌｉｃｙＩｄ要素の値は、ポリシーＩＤを示す。ポリシーＩＤは、アクセス制御エントリごとに一意な識別子である。ＢａｓｅＰｏｌｉｃｙＩｄ要素は、当該ＡＣＬ要素（アクセス制御エントリ）の変更元の（すなわち、変更前の）ＡＣＬ要素（アクセス制御エントリ）のポリシーＩＤである。「変更元」における「変更」とは、ポリシー編集支援装置１０によって行われる自動的な変更をいう。なお、同図のＢａｓｅＰｏｌｉｃｙＩｄ要素ｅＢＬ１の値は、「＊」となっている。これは、当該アクセス制御エントリ（ＡＣＥ要素ｅＡＥ１）の変更元は無い（すなわち、初版である）ことを示す。
【００２５】
Ｔａｒｇｅｔ要素の値は、当該アクセス制御エントリが適用されるアクセス対象（リソース）の名前（すなわち、ファイル名）を示す。Ｐｒｏｃｅｓｓ要素は、当該アクセス制御エントリが適用されるアプリケーションプログラム２１（プロセス）の名前の一覧を示す。すなわち、一つのＰｒｏｃｅｓｓ要素内には一以上のアプリケーションプログラム２１の名前を指定することが可能である。
【００２６】
Ａｃｔｉｏｎ要素は、Ｔａｒｇｅｔ要素に指定されたリソース（ファイル）に対するアクセスに関する制御内容が定義される要素である。Ａｃｔｉｏｎ要素は、Ｒｅａｄ要素、Ｗｒｉｔｅ要素、Ｃｒｅａｔｅ要素、Ｄｅｌｅｔｅ要素、Ｎａｍｅ要素、Ａｔｔｒｉｂｕｔｅ要素、Ｓｔａｒｔ要素、若しくはＴｅｒｍｉｎａｔｅ要素等のアクセス権に応じた要素とＣｏｎｔｒｏｌ要素とを子要素として含む。例えば、Ａｃｔｉｏｎ要素ＡＴ１は、Ｒｅａｄ要素ｅＲ１及びＣｏｎｔｒｏｌ要素ｅＣ１を子要素として含む。
【００２７】
Ｒｅａｄ要素の値は、参照（読み込み）について制御対象とする主体（ユーザ又はグループ）のＩＤを示す。Ｗｒｉｔｅ要素の値は、書き込みについて制御対象とする主体のＩＤを示す。Ｃｒｅａｔｅ要素の値は、作成について制御対象とする主体のＩＤを示す。Ｄｅｌｅｔｅ要素は、削除について制御対象とする主体のＩＤを示す。Ｎａｍｅ要素は、名前の変更について制御対象とする主体のＩＤを示す。Ａｔｔｒｉｂｕｔｅ要素は、属性値の変更について制御対象とする主体のＩＤを示す。Ｓｔａｒｔ要素は、起動操作について制御対象とする主体のＩＤを示す。Ｔｅｒｍｉｎａｔｅ要素は、終了操作について制御対象とする主体のＩＤを示す。
【００２８】
アクセス権に応じた各要素の値には、複数のユーザＩＤ又はグループＩＤを指定することが可能である。上記以外のアクセス種別について制御する必要がある場合は、当該アクセス種別に応じた要素が定義されればよい。
【００２９】
Ｃｏｎｔｒｏｌ要素の値は、アクセス権に応じた要素に係るアクセスが試みられた場合のアクセス制御の種別を示す。本実施の形態において、アクセス制御の種別には「Ｐｅｒｍｉｔ」又は「Ｄｅｎｙ」が有る。「Ｐｅｒｍｉｔ」は、許可を示す。「Ｄｅｎｙ」は、拒否を示す。
【００３０】
以上より、ＡＣＥ要素ｅＡＥ１には、「/var/opt/Appl01/workdata」という名前のファイルに対するｒｏｏｔユーザによる参照は、許可されることが定義されていることが分かる。
【００３１】
なお、図２は、あくまでも一例である。ポリシーデータ３０は、ＸＭＬ形式でなくてもよいし、他の構造によって定義されてもよい。
【００３２】
図１に戻る。ログ出力部２２３は、アクセスの内容及びアクセス許否判定部２２２が許否判定に利用した内容と、その判定結果（すなわち、アクセス結果）等を含むログ（アクセスログ）をアクセスログファイル４１に出力（記録）する。基本的に１回のアクセスに対して１行のアクセスログが出力される。
【００３３】
このように、アクセス制御装置２０は、実際の運用時において、ファイルに対するアクセス制御を行う。なお、アプリケーションプログラム２１又はファイルが配置されているコンピュータは、アクセス制御装置２０と別であってもよい。また、ポリシーデータ３０は、アクセス制御装置２０とネットワークを介して接続された記憶装置に保存されていてもよい。更に、アクセスログファイル４１は、アクセス制御装置２０とネットワークを介して接続された記憶装置に生成されてもよい。
【００３４】
ポリシー編集支援装置１０は、アクセス制御装置２０が利用するポリシーデータ３０を編集する必要が生じた際に、その編集作業を支援するコンピュータである。
【００３５】
ポリシー編集支援装置１０は、ログ編集部１１、影響ログ検索部１２、ポリシー変更部１３、シミュレーション部１４、インデクシング部１５、及び差分抽出部１６等を有する。これら各部は、ポリシー編集支援装置１０にインストールされたプログラムがポリシー編集支援装置１０のＣＰＵ（後述されるＣＰＵ１０４）に実行させる処理によって実現される。
【００３６】
ログ編集部１１は、ユーザ（例えば、管理者等）によって入力される、入力ログファイル４２の編集指示に応じ、入力ログファイル４２を編集（変更）する。入力ログファイル４２は、アクセス制御装置２０におけるアクセスログファイル４１がコピー（転送）されたものである。入力ログファイル４２は、ログ情報の一例である。入力ログファイル４２の編集の一例としては、ユーザＡによってファイルａに対する書き込みが拒否されたことを示すアクセスログについて、拒否を許可に変更することが挙げられる。すなわち、入力ログファイル４２の編集によって、管理者等が所望するアクセス制御結果を示すように、アクセスログが変更される。
【００３７】
ポリシー変更部１３は、入力ログファイル４２に対する変数（変更）に応じた変更をポリシーデータ３０ａに対して実行する。ポリシーデータ３０ａの初期状態は、アクセス制御装置２０におけるポリシーデータ３０と同じである。例えば、変更前のポリシーデータ３０ａが、アクセス制御装置２０に対して配布又は配信されたものが、ポリシーデータ３０であるともいえる。
【００３８】
このように、本実施の形態では、最終的な編集対象であるポリシーデータ３０ａを直接ユーザが編集するのではなく、入力ログファイル４２をユーザに編集させる。編集後の入力ログファイル４２に基づいて、ポリシーデータ３０ａの一部が、いわゆる逆生成される。なお、本実施の形態において、ログ編集部１１及びポリシー変更部１３は、変更手段の一例である。
【００３９】
シミュレーション部１４は、ポリシーデータ３０ａに基づくアクセス制御のシミュレーションを実行する。ここで、「シミュレーション」という言葉を用いるのは、シミュレーション部１４が実行するアクセス制御は、実際のファイルアクセスに基づくアクセス制御ではないからである。すなわち、シミュレーション部１４は、入力ログファイル４２に記録されている、運用環境において発生した過去のアクセスを擬似的に発生させる。シミュレーション部１４は、擬似的に発生したアクセスに関してアクセス制御等を行う。
【００４０】
具体的には、シミュレーション部１４は、入力ログファイル４２に記録されている各アクセスログのアクセス内容（許否判定に利用された内容）をポリシーデータ３０ａに当てはめて（適用して）、当該アクセスの許否判定を行う。シミュレーション部１４は、当該アクセス内容と当該許否判定の結果とを含むアクセスログを出力ログファイル４３に出力（記録）する。シミュレーション部１４によって出力されるアクセスログを、以下「出力ログ」という。出力ログは、判定結果情報の一例である。また、シミュレーション部１４は、生成手段の一例である。
【００４１】
このように、シミュレーション部１４は、アクセス制御装置２０における、アクセス許否判定部２２２及びログ出力部２２３とほぼ同様の処理（ロジック）を実行する。実際の実装においては、アクセス許否判定部２２２及びログ出力部２２３と共通のソフトウェアモジュールが利用されるのが好適である。アクセス制御装置２０とポリシー編集支援装置１０とは、一台のコンピュータ内において実現されてもよい。この場合、当該ソフトウェアモジュールは、シミュレーション部１４と、アクセス許否判定部２２２及びログ出力部２２３とより共用されるのが望ましい。
【００４２】
インデクシング部１５は、索引記録手段の一例である。インデクシング部１５は、シミュレーション部１４によって出力される出力ログについてインデクシング（索引データの記録）を行う。すなわち、インデクシング部１５は、出力ログファイル４３からの出力ログごとに、当該出力ログに係るアクセス対象及びアクセス主体等への関連情報をログインデックス１７に記録する。ログインデックス１７は、索引記憶手段の一例である。
【００４３】
差分抽出部１６は、入力ログファイル４２と出力ログファイル４３との差分（相違点）を抽出し、表示させる。ユーザが、表示された差分に満足な場合は、ポリシーデータ３０ａの編集作業（ユーザから見たら、入力ログファイル４２の編集作業）は終了する。ユーザが、表示された差分に不満な場合、すなわち、出力ログが所望する結果になっていない場合、出力ログファイル４３が、新たな入力ログファイル４２とされて、改めて、ログ編集部１１による編集が行われ、以降の処理が繰り返される。
【００４４】
ログ編集部１１による２回目以降の編集時（すなわち、出力ログファイル４３が入力ログファイル４２とされたときの編集時）は、ログインデックス１７が生成されている。したがって、２回目以降の処理において、シミュレーション部１７によるシミュレーション処理等は、ログインデックス１７を用いて高速化される。
【００４５】
影響ログ検索部１２は、ログ編集部１１による２回目以降の入力ログファイル４２の編集時において、編集（変更）によって影響を受ける可能性のある入力ログをログインデックス１７を用いて検索する。
【００４６】
図３は、本発明の実施の形態におけるポリシー編集支援装置のハードウェア構成例を示す図である。同図のポリシー編集支援装置１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、ＣＰＵ１０４と、インタフェース装置１０５と、表示装置１０６と、入力装置１０７とを有する。
【００４７】
ポリシー編集支援装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００４８】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってポリシー編集支援装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス等であり、様々な操作指示を入力させるために用いられる。
【００４９】
以下、ポリシー編集支援装置１０の処理手順について説明する。図４は、ポリシー編集支援装置による全体の処理手順を説明するためのフローチャートの一例である。同図の処理の開始時点において、アクセス制御装置２０において記録されたアクセスログファイル４１は、ポリシー編集支援装置１０の補助記憶装置１０２に入力ログファイル４２としてコピーされている。また、アクセス制御装置２０において利用されているポリシーデータ３０は、ポリシーデータ３０ａとして補助記憶装置１０２に保存されている。
【００５０】
例えば、ユーザによって、特定の入力ログファイル４２が指定されて、ポリシーデータ３０の編集指示が入力されると、ログ編集部１１は、ログ編集画面を表示装置１０６に表示させる（Ｓ１０１）。
【００５１】
図５は、ログ編集画面の表示例を示す図である。同図のログ編集画面５１０は、ログ表示領域５１１、ログ編集領域５１２、影響ログ表示領域５１３、実行ボタン５１４、及び終了ボタン５１５等を含む。
【００５２】
ログ表示領域５１１には、ステップＳ１０１において、ログ編集部１１によってメモリ装置１０３に読み込まれた編集対象の入力ログファイル４２に含まれているアクセスログの一覧が表示される。
【００５３】
図６は、本実施の形態におけるアクセスログの形式及び具体例を示す図である。同図において、（１）は、アクセスログの形式を示す。１行のアクセスログには、日時、リソース名、アクセス種別、アクセスＩＤ、アクセスプロセス、アクセス結果、及びポリシーＩＤ等の項目の値がＣＳＶ（Comma Separated Values）の形式によって記録される。
【００５４】
日時は、アクセスが試みられた日時である。リソース名は、アクセス対象とされたリソースの名前（ファイル名）である。アクセス種別は、参照（ｒ）、書き込み（ｗ）、作成（ｃ）、削除（ｄ）、名前変更（ｒ）、属性変更（ａ）、起動（ｓ）、又は終了（ｔ）等、試みられたアクセスの種別である。なお、括弧内の文字は、アクセスログに記録される値である。アクセスＩＤは、アクセス主体のＩＤ（ユーザＩＤ又はグループＩＤ）である。アクセスプロセスＩＤは、アクセスに利用されたアプリケーションプログラム２１の名前である。アクセス結果は、アクセス制御の結果（許可（Ｐ）又は拒否（Ｄ））である。ポリシーＩＤは、適用されたアクセス制御エントリ（ＡＣＥ要素）のポリシーＩＤである。
【００５５】
同図において（２）は、アクセスログの具体例である。同図の具体例の、日時は「2009/12/20:13:59:30.603000」であり、リソース名は、「/var/opt/Appl01/workdata」であり、アクセス種別は、「ｒ（参照）」であり、アクセスＩＤは「ｒｏｏｔ」であり、アクセスプロセスＩＤは、「Appl01_main」であり、アクセス結果は、「Ｐ（許可）」であり、ポリシーＩＤは、「POL008101_20091215001008」である。
【００５６】
なお、以下、入力ログファイル４２内のアクセスログを「入力ログ」という。
【００５７】
図５のログ編集領域５１２、影響ログ表示領域５１３、実行ボタン５１４、及び終了ボタン５１５等については後述する。図５には、便宜上、ログ編集領域５１２及び影響ログ表示領域５１３について、表示内容の例が示されているが、ステップＳ１０１の段階ではこれらの領域は空欄である。
【００５８】
続いて、ログ編集部１１は、ログ編集画面５１０に対するユーザによる入力に応じ、入力ログファイル４２の編集処理を実行する（Ｓ１０２）。編集処理の結果、入力ログファイル４２の内容は、ユーザが所望する制御結果を示すものとなる。なお、ステップＳ１０２では、入力ログファイル４２の一箇所（一つの入力ログの一つの項目）について編集が行われる。
【００５９】
続いて、ポリシー変更部１３は、ログ編集部１１による入力ログの編集結果に基づいて、ポリシーデータ３０ａを更新（変更）する（Ｓ１０３）。
【００６０】
続いて、影響ログ検索部１２は、入力ログファイル４２に対するログインデックス１７が補助記憶装置１０２に生成されているか否かを確認する（Ｓ１０４）。ログインデックス１７が生成されている場合（Ｓ１０４でＹｅｓ）、影響ログ検索部１２は、ステップＳ１０２における編集によって影響を受ける可能性のある入力ログをログインデックス１７を用いて検索する（Ｓ１０５）。影響ログ検索部１２は、ログ編集画面５１０の影響ログ表示領域５０３に検索結果を表示させる。なお、影響を受けるとは、アクセス結果が変化することをいう。すなわち、一つの入力ログの変更に基づく、ポリシーデータ３０ａの変更によって、他の入力ログに関してもアクセス結果が変化しうる。
【００６１】
一方、入力ログファイル４２に対するログインデックス１７が生成されていない場合（Ｓ１０４でＮｏ）、ステップＳ１０５は実行されずにステップＳ１０６に進む。ログインデックス１７は、ステップＳ１０７において生成されるため、アクセス制御のシミュレーションが実行されるまでは、ステップＳ１０５は、実行されない。
【００６２】
ユーザが、入力ログファイル４２の他の箇所について編集を継続する場合（Ｓ１０６でＹｅｓ）、ステップＳ１０１〜ＳＳ１０３又はＳ１０５が繰り返される。入力ログファイル４２の編集（変更）が完了し、ユーザによって実行ボタン５１４がクリックされると（Ｓ１０６でＮｏ）、シミュレーション部１４は、ポリシーデータ３０ａに基づくアクセス制御のシミュレーションを実行する（Ｓ１０７）。すなわち、シミュレーション部１４は、入力ログファイル４２に記録されている各入力ログのアクセス内容をポリシーデータ３０ａに当てはめて、当該アクセスの許否判定を行う。シミュレーション部１４は、当該アクセス内容と当該許否判定の結果とを含む出力ログを出力ログファイル４３に出力する。
【００６３】
続いて、差分抽出部１６は、入力ログファイル４２と出力ログファイル４３との差分を抽出し、表示装置１０６に表示させる（Ｓ１０８）。
【００６４】
ユーザは、表示された差分に不満な場合、すなわち、出力ログが所望する結果になっていない場合、ログ編集画面５１０を用いて編集作業を継続する。したがって、この場合、ステップＳ１０１以降が繰り返し実行される。
【００６５】
ユーザは、表示された差分に満足な場合、終了ボタン５１５をクリックする。ログ編集部１１は、終了ボタン５１５のクリックを検知すると（Ｓ１０９でＹｅｓ）、図４の処理を終了させる。この時点におけるポリシーデータ３０ａが、ユーザの所望するアクセス制御に適したものである。したがって、この時点におけるポリシーデータ３０ａが、アクセス制御装置２０に配布され、ポリシーデータ３０として実運用のアクセス制御に使用される。
【００６６】
続いて、ステップＳ１０２の詳細について説明する。図７は、入力ログファイルの編集処理の処理手順を説明するためのフローチャートの一例である。
【００６７】
ログ編集画面のログ表示領域５０１において、ユーザの指示によって、一つ（一行）の入力ログが編集対象として選択されると（Ｓ２０１）、ログ編集部１１は、選択された入力ログをログ編集領域５１２に表示させる（Ｓ２０２）。なお、図１４のログ編集領域５１２に表示されている入力ログは、図６の（２）に示されているものと同じである。
【００６８】
続いて、ログ編集領域５１２に表示された入力ログ（以下、「カレント入力ログ」という。）に関して、変更対象とする項目がユーザの指示によって選択される（Ｓ２０３）。例えば、変更対象の項目の文字列がクリックされる。続いて、ログ編集部１１は、当該項目の値の入力に適した表示部品を表示させる（Ｓ２０４）。すなわち、値が選択的な項目に関しては、選択肢を選択させるためのリスト又はチェックボックス等が表示される。一方、比較的自由な文字列を入力可能な項目に関しては、文字列を入力可能な表示部品が表示される。図５のログ編集領域５１２では、アクセス結果の「Ｐ」が選択された例が示されている。当該項目に関しては、「Ｐ」又は「Ｄ」が選択可能である。したがって、「Ｐ」又は「Ｄ」を入力させるためのリスト５１２Ｌが表示されている。
【００６９】
また、例えば、リソース名が選択された場合、ファイルパスの編集用の表示部品が表示される。ファイルダイアログが表示されてもよい。アクセス種別が選択された場合、例えば、アクセス種別を選択させるためチェックボックスが表示される。複数のアクセス種別を組み合わせることが可能だからである。また、アクセスＩＤが選択された場合は、入力ログファイル４２内に記録されているユーザＩＤ又はグループＩＤの一覧が表示される。ユーザ管理ＤＢのような記憶手段に記録されているユーザＩＤ又はグループＩＤの一覧が表示されてもよい。又は、ユーザＩＤ又はグループＩＤを文字列として入力させる表示部品が表示されてもよい。また、アクセスプロセスが選択された場合、既存のアプリケーションプログラム２１を選択させるためのチェックボックス、又はアプリケーションプログラム２１の名前を文字列として入力させる表示部品が表示される。また、日時が選択された場合は、平日、休日、又は所定時間（例えば、営業時間）内若しくは外等の選択肢が表示される。本実施の形態のポリシーデータ３０には、アクセス制御に関して時間を限定する要素は含まれていない。しかし、斯かる要素が定義可能とされてもよい。斯かる要素を定義可能なポリシーデータ３０の場合、ポリシー変更部１３は、ステップＳ１０３において、当該要素に対して、これらの選択肢の中から選択された値を設定すればよい。
【００７０】
なお、ログ編集領域５１２を、テキストエディタとして、直接的な編集を可能としてもよい。
【００７１】
続いて、ログ編集部１１は、選択された項目について、所望される（期待される）値の選択又は入力をユーザより受け付ける（Ｓ２０５）。続いて、ログ編集部１１は、新しいポリシーＩＤを採番する（Ｓ２０６）。続いて、ログ編集部１１は、カレント入力ログに対する変更を、メモリ装置１０３に読み込まれている入力ログファイル４２に反映させる（Ｓ２０７）。すなわち、入力ログファイル４２のカレント入力ログの行が、ログ編集領域５１２に表示されている状態のものによって置換される。それによって、ログ表示領域５１１におけるカレント入力ログの表示内容も、編集後（変更後）のものとなる。この際、カレント入力ログのポリシーＩＤの値は、新しい値に置換される。但し、変更前のポリシーＩＤはメモリ装置１０３内に保持される。
【００７２】
例えば、図５のリスト５１２Ｌにおいて、「Ｄ」（拒否）が選択された場合、カレント入力ログは、図８に示されるように変更される。
【００７３】
図８は、入力ログの変更例を示す図である。同図において、（１）は変更前を示し、（２）は変更後を示す。（２）では、アクセス結果について、「Ｐ」から「Ｄ」に変更されているのが分かる。同図の変更例は、ユーザ（管理者）は、いままで許可されていた、ファイル「/var/opt/Appl01/workdata」に対するｒｏｏｔユーザによる参照が拒否されることを期待している場合の変更例だからである。また、ポリシーＩＤに関しても変更されている。すなわち、（２）のポリシーＩＤの値は、ステップＳ２０６において採番された、新たなポリシーＩＤによって置換されている。
【００７４】
続いて、図４のステップＳ１０３の詳細について説明する。図９は、ポリシーデータ更新処理の処理手順を説明するためのフローチャートの一例である。
【００７５】
ステップＳ３０１において、ポリシー変更部１３は、変更された入力ログ（カレント入力ログ）にポリシーＩＤが含まれているか否かを判定する（Ｓ３０１）。ポリシーＩＤが含まれている場合（Ｓ３０１でＹｅｓ）、ポリシー変更部１３は、カレント入力ログの変更前のポリシーＩＤを有するアクセス制御エントリ（ＡＣＥ要素）をポリシーデータ３０ａより検索する（Ｓ３０２）。ここで、変更前のポリシーＩＤを有するとは、変更前のポリシーＩＤを、ＰｏｌｉｃｙＩｄ要素又はＢａｓｅＰｏｌｉｃｙＩｄ要素の値として有することを意味する。すなわち、現時点のポリシーＩＤの値ではなく、以前のポリシーＩＤの値が当該変更前のポリシーＩＤと一致するＡＣＥ要素も、ステップＳ３０２の検索に合致する。但し、検索されるＡＣＥ要素（アクセス制御エントリ）は一つである。ポリシーＩＤは、ＡＣＥ要素ごと及び更新ごと（世代ごと）に一意だからである。
【００７６】
続いて、ポリシー変更部１３は、検索されたアクセス制御エントリ（ＡＣＥ要素）に対して、カレント入力ログにおける変更に応じた変更を行う（Ｓ３０３）。例えば、図８に示される変更が行われた場合、変更前のポリシーＩＤと一致するポリシーＩＤを有するＡＣＥ要素ｅＡＥ１（図２）が、図１０に示されるように変更される。
【００７７】
図１０は、入力ログの変更に応じたポリシーデータの変更例を示す図である。同図には、図２のＡＣＥ要素ｅＡＥ１が抽出表示されている。図１０中、図２と同一部分には同一符号を付し、その説明は省略する。
【００７８】
図１０のＡＣＥ要素ｅＡＥ１には、Ａｃｔｉｏｎ要素ｅＡＴ３が子要素として新たに追加されている。Ａｃｔｉｏｎ要素ｅＡＴ３は、図８に示される入力ログの変更に応じて追加されたＡｃｔｉｏｎ要素である。Ａｃｔｉｏｎ要素ｅＡＴ３は、Ｒｅａｄ要素ｅＲ２及びＣｏｎｔｒｏｌ要素ｅＣ２を子要素として含む。Ｒｅａｄ要素ｅＲ２の値は「ｒｏｏｔ」である。Ｃｏｎｔｒｏｌ要素ｅＣ２の値は「Ｄｅｎｙ」である。したがって、Ａｃｔｉｏｎ要素ｅＡＴ３は、ｒｏｏｔユーザによる参照は許可しないことを示す。この内容は、図８の（２）に示される入力ログに合致する。
【００７９】
また、図１０において、ＰｏｌｉｃｙＩｄ要素ｅＰＬ１の値は、新たに採番されたポリシーＩＤに変更されている。更に、ＢａｓｅＰｏｉｌｃｙＩｄ要素ｅＢＬ１には、変更前のＰｏｌｉｃｙＩｄ要素ｅＰＬ１の値が追加されている。
【００８０】
なお、同図では、Ａｃｔｉｏｎ要素ｅＡＴ１について変更は行われていない。すなわち、Ｒｅａｄ要素ｅＲ１の値には、「ｒｏｏｔ」が含まれたままである。本実施の形態のポリシーデータ３０では、前に出現した定義が優先（前方優先）されるからである。具体的には、Ａｃｔｉｏｎ要素ｅＡＴ３がＡｃｔｉｏｎ要素ｅＡＴ１に対して優先されるからである。したがって、新たに追加されたＡｃｔｉｏｎ要素ｅＡＴ３は、既存のＡｃｔｉｏｎ要素より前に追加されているのである。但し、Ｒｅａｄ要素ｅＲ１から「ｒｏｏｔ」が削除されるようにしてもよい。この場合、前方優先であっても、Ａｃｔｉｏｎ要素ｅＡＴ３は、Ａｃｔｉｏｎ要素ｅＡＴ１の後に追加されてもよい。
【００８１】
入力ログに対するアクセス結果の変更は、上記のように、Ａｃｔｉｏｎ要素の追加としてポリシーデータ３０ａに反映される。
【００８２】
なお、入力ログのリソース名が変更された場合、Ｔａｒｇｅｔ要素の値が変更される。入力ログのアクセス種別が変更された場合、変更後のアクセス種別に対応する要素を子要素として有するＡｃｔｉｏｎ要素が追加される。例えば、入力ログのアクセス種別が「ｒ」から「ｗ」に変更された場合、Ｗｒｉｔｅ要素を子要素として有するＡｃｔｉｏｎ要素が追加される。当該Ｗｒｉｔｅ要素の値は、入力ログのアクセスＩＤの値に従う。また、当該Ａｃｔｉｏｎ要素の子要素であるＣｏｎｔｒｏｌ要素の値は、入力ログのアクセス結果の値に従う。
【００８３】
入力ログのアクセスＩＤが変更された場合、変更前のアクセスＩＤ、アクセス種別、及びアクセス結果に対応するＡｃｔｉｏｎ要素の子要素である、アクセス種別に係る要素（例えば、Ｒｅａｄ要素等）の値が変更される。入力ログのアクセスプロセスが変更された場合、Ｐｒｏｃｅｓｓ要素の値が変更される。
【００８４】
一方、カレント入力ログにポリシーＩＤが含まれていない場合（Ｓ３０１でＮｏ）、ポリシー変更部１３は、変更後のカレント入力ログのリソース名、アクセス種別、アクセスＩＤ、アクセスプロセス、及びアクセス結果の内容を表現するアクセス制御エントリ（ＡＣＥ要素）をポリシーデータ３０ａに追加生成する（Ｓ３０４）。当該ＡＣＥ要素には、新たなポリシーＩＤが付与される。なお、カレント入力ログにポリシーＩＤが含まれていない場合は、例えば、運用時における性能等を考慮して、ログ出力部２２３が出力するアクセスログには、ポリシーＩＤが付与されない場合等に生じうる。
【００８５】
ログ編集画面５１０を介した、入力ログの編集がユーザによって繰り返されることにより、図７及び図９において説明した処理手順が繰り返し実行される。その結果、ポリシーデータ３０ａには、変更箇所が蓄積される。
【００８６】
続いて、図４のステップＳ１０７の詳細について説明する。図１１は、変更後のポリシーデータに基づくアクセス制御のシミュレーション処理の処理手順を説明するためのフローチャートの一例である。
【００８７】
ステップＳ４０１において、シミュレーション部１４は、影響ログリストが生成されているか否かを判定する（Ｓ４０１）。影響ログリストは、図４のステップＳ１０５の実行時に生成されるリストである。すなわち、影響ログリストは、図１１の処理が一回実行された後に生成されるリストである。したがって、ここでは生成されていない場合（Ｓ４０１でＮｏ）について説明する。
【００８８】
ステップＳ４０５に進み、シミュレーション部１４は、変更後の入力ログファイル４２に記録されている全ての入力ログを、シミュレーション対象とする（Ｓ４０５）。シミュレーション対象とされた入力ログのリストを以下、「シミュレーション用入力ログリスト」という。なお、シミュレーション用入力ログリストの内容は、図１１の開始時に初期化される（空にされる）。
【００８９】
続いて、シミュレーション部１４は、シミュレーション用入力ログリストより１行の入力ログを取得する（Ｓ４０６）。ここでは、上の行から順番に取得される。取得に成功した場合（Ｓ４０７でＹｅｓ）、シミュレーション部１４は、取得された入力ログ（以下、「シミュレーション入力ログ」という。）のアクセス内容をポリシーデータ３０ａに当てはめて当該アクセスの許否判定を行う（Ｓ４０８）。具体的には、シミュレーション部１４は、シミュレーション入力ログのリソース名及びアクセスプロセスに対応するアクセス制御エントリ（ＡＣＥ要素）を特定する。シミュレーション部１４は、特定されたアクセス制御エントリ内において、シミュレーション入力ログのアクセス種別及びアクセスＩＤに対応するＡｃｔｉｏｎ要素に含まれているＣｏｎｔｒｏｌ要素の値に基づいて、アクセスの許否を判定する。
【００９０】
続いて、シミュレーション部１４は、図６の（１）において説明した形式で、シミュレーション入力ログのアクセス内容及びアクセス許否の判定結果（アクセス結果）を含む出力ログを生成し、当該出力ログを出力ログファイル４３に出力（記録）する（Ｓ４０９）。出力ログのリソース名、アクセス種別、アクセスＩＤ、及びアクセスプロセスの値には、シミュレーション入力ログの値がそのまま転記される。出力ログの日時には、現在の日時が記録されてもよいし、出力ログの値が転記されてもよい。出力ログのポリシーＩＤには、ステップＳ４０８の許否判定に利用（適用）されたアクセス制御エントリのポリシーＩＤが記録される。したがって、シミュレーション部１４が出力する出力ログには、常にポリシーＩＤが含まれている。
【００９１】
続いて、シミュレーション部１４は、出力ログに関してログインデックス１７に行番号を登録（記録）する（Ｓ４１０）。なお、各出力ログを一意に識別可能な情報であれば、行番号以外の情報が各出力ログの識別子としてログインデックス１７に登録されてもよい。
【００９２】
本実施の形態において、ログインデックス１７は、４つのインデックス（テーブル）を含む。図１２は、本実施の形態のログインデックスの構成例を示す図である。
【００９３】
同図には、ログインデックス１７を構成するインデックスとして、リソースインデックス１７ａ、ユーザインデックス１７ｂ、グループインデックス１７ｃ、及びポリシーインデックス１７ｄが示されている。
【００９４】
リソースインデックス１７ａは、リソース名ごとに、当該リソース名を含む出力ログの行番号を記憶するインデックスである。ユーザインデックス１７ｂは、ユーザＩＤごとに、当該ユーザＩＤをアクセスＩＤとして含む出力ログの行番号を記憶するインデックスである。グループインデックス１７ｃは、グループＩＤごとに、当該グループＩＤをアクセスＩＤとして含む出力ログの行番号を記憶するインデックスである。ポリシーインデックス１７ｄは、ポリシーＩＤごとに、当該ポリシーＩＤを含む出力ログの行番号を記憶するインデックスである。
【００９５】
このように、ログインデックス１７は、基本的に、出力ログと、アクセス対象又はアクセス主体との関連情報を記憶する手段である。すなわち、アクセス対象との関連情報を記憶するのは、リソースインデックス１７ａであり、アクセス主体との関連情報を記憶するのは、ユーザインデックス１７ｂ又はグループインデックス１７ｃである。なお、アクセス対象及びアクセス主体によって適用されるアクセス制御エントリが一意に決まる場合は、ポリシーインデックス１７ｄは、生成されなくてもよい。すなわち、ポリシーインデックス１７ｄは、アクセス対象及びアクセス主体との組合せと出力ログとの関連情報を記憶する手段だといえる。
【００９６】
なお、各インデックスは、出力ログファイル４３に関連付けられて補助記憶装置１０２又はメモリ装置１０３に生成される。
【００９７】
したがって、ステップＳ４１０において、シミュレーション部１４は、出力ログに含まれるリソース名、ユーザＩＤ若しくはグループＩＤ、及びポリシーＩＤに対して、当該出力ログの行番号（ログの出力順）を追加登録する。現在処理対象の出力ログファイル４３に対して、ログインデックス１７が生成されていない場合、シミュレーション部１４は、各インデックスを当該出力ログファイル４３に関連付けて補助記憶装置１０２又はメモリ装置１０３に生成する。また、該当するリソース名、ユーザＩＤ若しくはグループＩＤ、及びポリシーＩＤに対応するレコードが対応するインデックスに無い場合、シミュレーション部１４は、新たなレコードを対応するインデックスに追加する。
【００９８】
なお、ユーザＩＤとグループＩＤとの間に重複が無い場合、ユーザインデックス１７ｂとグループインデックス１７ｃとは一つに統合されてもよい。
【００９９】
シミュレーション用入力ログリストに含まれている全てのシミュレーション入力ログについて上記ステップＳ４０６〜Ｓ４１０が実行された後（Ｓ４０７でＮｏ）、図１１の処理は終了する。なお、ステップＳ４０１〜Ｓ４０４については後述する。
【０１００】
続いて、図４のステップＳ１０５の詳細について説明する。図１３は、影響ログの検索処理の処理手順を説明するためのフローチャートの一例である。なお、図１３は、少なくとも一回のシミュレーション（Ｓ１０７）が実行された後に有効となる処理である。したがって、図１３が実行される場合の入力ログファイル４２は、その前に実行されたシミュレーション時に出力された出力ログファイル４３である。
【０１０１】
ステップＳ５０１において、影響ログ検索部１２は、ステップＳ１０２において変更された入力ログ（カレント入力ログ）に含まれるリソース名と少なくとも一部が一致する全てのリソース名に係るレコードに含まれている全ての行番号をリソースインデックス１７ａより取得する。すなわち、カレント入力ログに含まれるリソース名と少なくとも一部が一致するリソース名に係る入力ログが特定される。少なくとも一部が一致するか否かについて、正規表現が用いられてもよい。リソース名が変更項目である場合、影響ログ検索部１２は、変更前のリソース名に係るレコード及び変更後のリソース名に係るレコードの全ての行番号をリソースインデックス１７ａより取得する。
【０１０２】
続いて、影響ログ検索部１２は、カレント入力ログに含まれるアクセスＩＤと一致するユーザＩＤに係るにレコードの全ての行番号をリソースインデックス１７ａより取得する（Ｓ５０２）。アクセスＩＤが変更項目である場合、影響ログ検索部１２は、変更前のアクセスＩＤに係るレコード及び変更後のアクセスＩＤに係るレコードの全ての行番号をユーザインデックス１７ｂより取得する。すなわち、カレント入力ログに含まれるアクセスＩＤと一致するユーザＩＤに係る入力ログが特定される。なお、カレント入力ログに含まれるアクセスＩＤがグループＩＤである場合、ステップＳ５０２は、実行されなくてよい。
【０１０３】
続いて、影響ログ検索部１２は、カレント入力ログに含まれるアクセスＩＤと一致するグループＩＤに係るにレコードの全ての行番号をリソースインデックス１７ａより取得する（Ｓ５０３）。アクセスＩＤが変更項目である場合、影響ログ検索部１２は、変更前のアクセスＩＤに係るレコード及び変更後のアクセスＩＤに係るレコードの全ての行番号をグループインデックス１７ｃより取得する。なお、カレント入力ログに含まれるアクセスＩＤがユーザＩＤである場合、ステップＳ５０３は、実行されなくてよい。
【０１０４】
続いて、影響ログ検索部１２は、カレント入力ログに含まれるポリシーＩＤに係るにレコードの全ての行番号をポリシーインデックス１７ｄより取得する（Ｓ５０４）。
【０１０５】
続いて、影響ログ検索部１２は、ステップＳ５０１〜Ｓ５０５において取得された行番号の重複を除去（排除）し、重複排除後の行番号の集合を影響ログリストとしてメモリ装置１０３に記録する（Ｓ５０５）。すなわち、影響ログリストとは、カレント入力ログの変更によって影響を受ける可能性がある（アクセス結果が変化する可能性がある）入力ログの行番号の集合をいう。
【０１０６】
続いて、影響ログ検索部１２は、影響ログリストに記録されている行番号に係る入力ログ（影響ログ）を入力ログファイル４２より抽出し、メモリ装置１０３に記録する（Ｓ５０６）。続いて、影響ログ検索部１２は、抽出された影響ログの件数を、ログ編集画面の影響ログ表示領域５１３に表示させる（Ｓ５０７）。図５の影響ログ表示領域５１３は、このときの状態を示している。なお、一覧表示ボタン５１３Ｂがクリックされると、影響ログ検索部１２は、影響ログの一覧を影響ログ表示領域５１３に表示させる。
【０１０７】
このように、ログインデックス１７を用いることにより、膨大な行数を含みうる入力ログファイル４２を処理対象とする場合に比べて、影響ログの検索を高速化することができる。また、影響ログが参照可能なことにより、今回行った入力ログへの変更の影響範囲を容易に把握することができる。すなわち、ポリシーデータ３０の定義内容は非常に複雑になる可能性が有るため、１箇所のログの変更に応じて予期しない箇所に影響が及ぶ場合がある。このような予期しない箇所に関しても影響ログとして予め把握することができ、変更の修正等を行うことができる。
【０１０８】
なお、ログ編集部１１は、影響ログ表示領域５１３において選択された影響ログをログ編集領域５１２に表示させるようにしてもよい。この場合、影響ログについて、即座に編集対象とすることができる。
【０１０９】
上記のように生成される影響ログリストをふまえて、図１１（シミュレーション処理）のステップＳ４０１〜Ｓ４０４について説明する。
【０１１０】
ここでは、影響ログリストが生成されていることが前提であるため（Ｓ４０１でＹｅｓ）、ステップＳ４０２に進む。ステップＳ４０２において、シミュレーション部１４は、影響ログリストから行番号を一つ取得する（Ｓ４０２）。続いて、シミュレーション部１４は、取得された行番号に係る入力ログは、入力ログファイル４２に含まれているか否かを確認する（Ｓ４０３）。該当する入力ログが入力ログファイル４２に含まれている場合（Ｓ４０３でＹｅｓ）、シミュレーション部１４は、当該入力ログを入力ログファイル４２より取得し、シミュレーション用入力ログリストに追加する（Ｓ４０４）。
【０１１１】
影響ログリストに含まれている全ての行番号について処理が終了すると（Ｓ４０３でＮｏ）、ステップＳ４０６以降が実行される。
【０１１２】
したがって、この場合、シミュレーションの対象とされるシミュレーション入力ログの件数は、著しく削減されることが期待される。すなわち、一般的にアクセスログファイル４１の行数は膨大であり、シミュレーションといえども、全てのアクセスログについて行うのは相当の時間を必要とする。一方、図１１のようにシミュレーションの範囲が影響ログリストの範囲に限定されることにより、図１１全体の処理性能の著しい向上が期待できる。
【０１１３】
なお、影響ログをシミュレーション用入力ログとした場合、ステップＳ４０９は、前回のシミュレーション時に生成された出力ログファイル４３のカレント入力ログの行番号に対応する行に対して上書きが行われる。また、ステップＳ４１０において記録される行番号は、シミュレーション用入力ログリスト内の順番ではなく、当初の行番号である。すなわち、ステップＳ４０４において当該影響ログを取得するために用いられた行番号である。
【０１１４】
続いて、図４のステップＳ１０７の詳細について説明する。差分抽出部１６は、図１１の処理によって生成される出力ログファイル４３と入力ログファイル４２とについて抽出された差分を、例えば、図１４に示される差分表示画面に表示させる。
【０１１５】
図１４は、差分表示画面の表示例を示す図である。同図において、差分表示画面５２０は、入力ログ表示領域５２１、出力ログ表示領域５２２、及び差分表示領域５２３等を有する。
【０１１６】
入力ログ表示領域５２１には、同一行番号の出力ログと少なくとも一部が異なる入力ログの一覧が表示される。出力ログ表示領域５２２には、同一行番号の入力ログと少なくとも一部が異なる出力ログの一覧が表示される。なお、入力ログ表示領域５２２と出力ログ表示領域５２３とにおいて、行番号が一致するログは、その対応関係が分かるように表示される。例えば、表示上、同じ表示位置（高さ）に表示されてもよいし、相互を連結する図形（線分等）が表示されてもよい。
【０１１７】
例えば、入力ログ表示領域５２１又は出力ログ表示領域５２２において、一つの入力ログ又は出力ログが選択されると、差分抽出部１６は、選択された入力ログ又は出力ログの行番号に係る入力ログ及び出力ログを、差分表示領域５２３に縦方向に並べられて表示させる。この際、差分抽出部１６は、両者の差分（相違点）をハイライト（強調）表示させる。同図では、差分が矩形５１３ｒによって囲まれて強調されている例が示されている。なお、同図では、出力ログの日時は、入力ログの値が転記された例が示されている。仮に、出力ログの日時にシミュレーション時の日時が記録される場合であっても、日時の相違は差分として扱われなくてよい（無視されてよい）。また、ポリシーＩＤの相違も、無視されてもよい。
【０１１８】
差分表示画面５３０を参照して、ユーザは、ポリシーデータ３０ａの妥当性を判断する。すなわち、ユーザは、期待通りのアクセス制御がなされているか（アクセス結果が得られているか）を確認することができる。ログ編集画面５１０においては、入力ログ１件ずつに関して、所望の結果が入力されるが、その結果に応じて更新されたポリシーデータ３０ａに基づく全体のアクセス結果は、必ずしもユーザ（管理者）にとって望ましいものであるとは限らない。例えば、或るフォルダ配下の全てのファイルにアクセスを許可するアクセス制御エントリと、当該フォルダ配下の特定ファイルのアクセスを許否するアクセス制御エントリとがポリシーデータ３０ａ内に設定される場合がある。この場合、当該ファイルへのアクセス結果はアクセス制御エントリの評価順序等によって異なってくる。
【０１１９】
本実施の形態のように、ポリシーデータ３０ａが、複数のアクセス制御エントリの集合である場合、一つのアクセス制御エントリの変更の影響は、事前に計算で求めることは困難である。したがって、変更が期待通りのアクセス結果をもたらすかについて、実運用の環境でテストが行われる必要が有る。しかし、当該テストには膨大な工数を有する。
【０１２０】
本実施の形態によれば、実運用におけるアクセスログの集合である入力ログファイル４２を用いて、変更後のポリシーデータ３０ａに基づいてアクセス制御のシミュレーションが実行される。したがって、実運用の環境におけるテストにおいて把握されるアクセス結果と同等のアクセス結果を短時間で得ることができる。
【０１２１】
上述したように、本実施の形態のポリシー編集支援装置１０によれば、ポリシーデータ３０ａの編集作業の作業負担を軽減することができる。すなわち、ポリシー編集支援装置１０は、ポリシーデータ３０ａの編集作業を効率化することができる。
【０１２２】
また、ポリシーデータ３０は、直接的な編集対象とならないため、ユーザによる入力ミス等による設定ミスを削減することができる。
【０１２３】
また、古いアクセスログと最近のアクセスログとを含むアクセスログファイル４１を利用して、ポリシーデータ３０の更新を行うことにより、長期間にわたるポリシーの設定要件を満たしたポリシーデータ３０を生成することができる。その結果、過去における設定要件の取りこぼし等を回避することができ、変更による改悪を防止することができる。
【０１２４】
また、膨大な量のアクセスログを利用したアクセス制御のシミュレーションは、人手で行うテストに比較すれた短時間であるが、それでも長時間を要する。本実施の形態では、入力ログに対する変更によって影響の生じる可能性の有る範囲に限定してシミュレーションを実行する。したがって、シミュレーションの高速化を期待できる。
【０１２５】
また、ログインデックス１７を生成し、ログインデックス１７を用いて影響範囲と特定することにより、影響範囲の特定に関しても、高速化を期待することができる。
【０１２６】
なお、本実施の形態では、通常運用時には、ログインデックス１７は生成されない例について説明したが、ログ出力部２２３がアクセスログファイル４１にアクセスログを記録する際に、ログインデックス１７が生成されてもよい。この場合、ポリシー編集支援装置１０は、当該アクセスログファイル４１に関する１回目の編集時より、図４のステップＳ１０５が実行し、影響ログを提示することができる。また、１回目のシミュレーションから、ログインデックス１７を用いた高速化を実現することができる。
【０１２７】
また、本実施の形態では、入力ログファイル４２の編集作業を簡便化させるため、ログ編集部１１が表示させるログ編集画面によって入力ログを編集させ、当該編集に応じてポリシー変更部１３がポリシーデータ３０ａを更新する例を説明した。但し、一般的なテキストエディタによって入力スログファイルの編集が実行されてもよい。この場合、ポリシー変更部１３は、編集（変更）前の入力ログファイル４２と、編集（変更）後の入力ログファイル４２とを比較することにより変更部分を判別すればよい。ポリシー変更部１３は、当該変更部分に関して、一括して、図９の処理を実行すればよい。
【０１２８】
また、本実施の形態では、説明の便宜上、アクセスログファイル４１は、一つのファイルである例について説明した。但し、アクセスログの量は膨大なものとなる可能性が高い。したがって、実運用においては、１日ごと等に別ファイルに記録される可能性も有る。すなわち、アクセスログファイル４１は、複数のファイルに分割されて管理される可能性がある。このような場合、各アクセスログ（入力ログ）は、当該入力ログが記録されているファイルの識別情報（ファイル名等）と、当該ファイル内における識別情報（行番号等）との組合せによって識別されればよい。例えば、ログインデックス１７には、ファイル名と行番号との組が記録されればよい。
【０１２９】
また、本実施の形態において、出力ログには、ポリシーＩＤが記録される例を説明した。ポリシーＩＤの記録は、図９のステップＳ３０２の処理を高速化するための工夫である。すなわち、本実施の形態を実現するための必須要件ではない。したがって、出力ログにポリシーＩＤが記録されなくてもよい。この場合、図９の処理において、常にステップＳ３０４が実行されることになる。ステップＳ３０４では、新しいアクセス制御エントリが生成されることを説明した。しかし、変更前の入力ログが当てはまるアクセス制御エントリを特定し、当該アクセス制御エントリに関して、入力ログの変更に応じた変更がおこなわれてもよい。この場合、実質的に、ステップＳ３０２及びＳ３０３と同じ処理が実行されることになる。
【０１３０】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１３１】
以上の説明に関し、更に以下の項を開示する。
（付記１）
アクセス対象に対するアクセスごとに、アクセス制御データを用いて行われた許否判定の結果と、前記許否判定に利用した内容とが１以上記録されたログ情報と、前記アクセス制御データを変更する変更手順と、
前記ログ情報が示す許否判定に利用した内容に前記変更後のアクセス制御データを適用させてアクセスの許否判定を行い、許否判定の結果と前記許否判定に利用した内容を含む判定結果情報を生成する生成手順と、
をコンピュータに実行させるアクセス制御データ編集支援プログラム。
（付記２）
前記ログ情報と前記第判定結果情報との差分を抽出し、該差分を出力する差分抽出手順を前記コンピュータに実行させる付記１記載のアクセス制御データ編集支援プログラム。
（付記３）
前記生成手順は、前記ログ情報に含まれる前記許否判定に利用した内容ごとに当該許否判定に利用した内容におけるアクセス対象及びアクセス主体に対する関連情報を記憶した索引記憶手段を用いて、前記アクセス制御データに適用する前記許否判定に利用した内容の対象を、変更された前記許否判定に利用した内容と前記アクセス対象又は前記アクセス主体が一致する前記許否判定に利用した内容とする付記１又は２記載のアクセス制御データ編集支援プログラム。
（付記４）
前記判定結果情報ごとに、前記関連情報を前記索引記憶手段に記録する索引記録手順を前記コンピュータに実行させる付記３記載のアクセス制御データ編集支援プログラム。
（付記５）
変更された前記許否判定に利用した内容と前記アクセス対象又は前記アクセス主体が一致する前記許否判定に利用した内容を前記索引記憶手段を用いて特定し、特定された前記許否判定に利用した内容を出力する影響ログ検索手順とを前記コンピュータに実行させる付記３又は４記載のアクセス制御データ編集支援プログラム。
（付記６）
前記許否判定に利用した内容に対する変更を受け付けるログ編集手順を前記コンピュータに実行させ、
前記変更手順は、前記許否判定に利用した内容の変更に応じて前記アクセス制御データを変更する付記１記載のアクセス制御データ編集支援プログラム。
（付記７）
アクセス対象に対するアクセスごとに、アクセス制御データを用いて行われた許否判定の結果と、前記許否判定に利用した内容とが１以上記録されたログ情報と、前記アクセス制御データを変更する変更手段と、
前記ログ情報が示す許否判定に利用した内容に前記変更後のアクセス制御データを適用させてアクセスの許否判定を行い、許否判定の結果と前記許否判定に利用した内容を含む判定結果情報を生成する生成手段と、
を有するアクセス制御データ編集支援装置。
（付記８）
前記ログ情報と前記第判定結果情報との差分を抽出し、該差分を出力する差分抽出手段を有する付記７記載のアクセス制御データ編集支援装置。
（付記９）
前記生成手段は、前記ログ情報に含まれる前記許否判定に利用した内容ごとに当該許否判定に利用した内容におけるアクセス対象及びアクセス主体に対する関連情報を記憶した索引記憶手段を用いて、前記アクセス制御データに適用する前記許否判定に利用した内容の対象を、変更された前記許否判定に利用した内容と前記アクセス対象又は前記アクセス主体が一致する前記許否判定に利用した内容とする付記７又は８記載のアクセス制御データ編集支援装置。
（付記１０）
前記判定結果情報ごとに、前記関連情報を前記索引記憶手段に記録する索引記録手段を有する付記９記載のアクセス制御データ編集支援装置。
（付記１１）
変更された前記許否判定に利用した内容と前記アクセス対象又は前記アクセス主体が一致する前記許否判定に利用した内容を前記索引記憶手段を用いて特定し、特定された前記許否判定に利用した内容を出力する影響ログ検索手段を有する付記９又は１０記載のアクセス制御データ編集支援装置。
（付記１２）
前記許否判定に利用した内容に対する変更を受け付けるログ編集手段を有し、
前記変更手段は、前記許否判定に利用した内容の変更に応じて前記アクセス制御データを変更する付記７記載のアクセス制御データ編集支援装置。
（付記１３）
アクセス対象に対するアクセスごとに、アクセス制御データを用いて行われた許否判定の結果と、前記許否判定に利用した内容とが１以上記録されたログ情報と、前記アクセス制御データを変更する変更手順と、
前記ログ情報が示す許否判定に利用した内容に前記変更後のアクセス制御データを適用させてアクセスの許否判定を行い、許否判定の結果と前記許否判定に利用した内容を含む判定結果情報を生成する生成手順と、
をコンピュータが実行するアクセス制御データ編集支援方法。
（付記１４）
前記ログ情報と前記第判定結果情報との差分を抽出し、該差分を出力する差分抽出手順を前記コンピュータが実行する付記１３記載のアクセス制御データ編集支援方法。
（付記１５）
前記生成手順は、前記ログ情報に含まれる前記許否判定に利用した内容ごとに当該許否判定に利用した内容におけるアクセス対象及びアクセス主体に対する関連情報を記憶した索引記憶手段を用いて、前記アクセス制御データに適用する前記許否判定に利用した内容の対象を、変更された前記許否判定に利用した内容と前記アクセス対象又は前記アクセス主体が一致する前記許否判定に利用した内容とする付記１３又は１４記載のアクセス制御データ編集支援方法。
（付記１６）
前記判定結果情報ごとに、前記関連情報を前記索引記憶手段に記録する索引記録手順を前記コンピュータが実行する付記１５記載のアクセス制御データ編集支援方法。
（付記１７）
変更された前記許否判定に利用した内容と前記アクセス対象又は前記アクセス主体が一致する前記許否判定に利用した内容を前記索引記憶手段を用いて特定し、特定された前記許否判定に利用した内容を出力する影響ログ検索手順とを前記コンピュータが実行する付記１５又は１６記載のアクセス制御データ編集支援方法。
（付記１８）
前記許否判定に利用した内容に対する変更を受け付けるログ編集手順を前記コンピュータが実行し、
前記変更手順は、前記許否判定に利用した内容の変更に応じて前記アクセス制御データを変更する付記１３記載のアクセス制御データ編集支援方法。
【符号の説明】
【０１３２】
１０          ポリシー編集支援装置
１１          ログ編集部
１２          影響ログ検索部
１３          ポリシー変更部
１４          シミュレーション部
１５          インデクシング部
１６          差分抽出部
１７          ログインデックス
１７ａ        リソースインデックス
１７ｂ        ユーザインデックス
１７ｃ        グループインデックス
１７ｄ        ポリシーインデックス
２０          アクセス制御装置
２１          アプリケーションプログラム
２２          アクセス制御部
３０、３０ａ  ポリシーデータ
４１          アクセスログファイル
４２          入力ログファイル
４３          出力ログファイル
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
２２１        アクセス監視部
２２２        アクセス許否判定部
２２３        ログ出力部
Ｂ            バス
【図１】
0005644543.tif 000002
【図２】
0005644543.tif 000003
【図３】
0005644543.tif 000004
【図４】
0005644543.tif 000005
【図５】
0005644543.tif 000006
【図６】
0005644543.tif 000007
【図７】
0005644543.tif 000008
【図８】
0005644543.tif 000009
【図９】
0005644543.tif 000010
【図１０】
0005644543.tif 000011
【図１１】
0005644543.tif 000012
【図１２】
0005644543.tif 000013
【図１３】
0005644543.tif 000014
【図１４】
0005644543.tif 000015