情報処理装置、情報処理プログラムおよび管理方法
【課題】通信監視のルールを容易に設定できるようにする。
【解決手段】情報処理装置1は、記憶部1aと制御部1bとを有する。記憶部1aは、サービスごとに定義された、仮想ルータ2aによる通信監視のルールを記憶する。制御部1bは、仮想マシン2b上で利用するサービスが選択されると、記憶部1aを参照して、選択された該サービスに応じた通信監視のルールを仮想ルータ2aに送信し、該通信監視のルールに基づく監視を行わせる。
【解決手段】情報処理装置1は、記憶部1aと制御部1bとを有する。記憶部1aは、サービスごとに定義された、仮想ルータ2aによる通信監視のルールを記憶する。制御部1bは、仮想マシン2b上で利用するサービスが選択されると、記憶部1aを参照して、選択された該サービスに応じた通信監視のルールを仮想ルータ2aに送信し、該通信監視のルールに基づく監視を行わせる。
【発明の詳細な説明】
【技術分野】
【0001】
本件は仮想マシンの運用管理を支援する情報処理装置、情報処理プログラムおよび管理方法に関する。
【背景技術】
【0002】
現在、情報処理の分野では、物理的なコンピュータ(物理マシンや物理ホストと呼ぶことがある)上で、複数の仮想的なコンピュータ(仮想マシンや論理ホストと呼ぶことがある)を動作させる仮想化技術が利用されている。各仮想マシン上では、OS(Operating System)などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。
【0003】
例えば、ハイパーバイザと呼ばれるソフトウェアが、CPU(Central Processing Unit)の処理能力やRAM(Random Access Memory)の記憶領域を、演算のリソースとして複数の仮想マシンに割り振る。また、例えば、ハイパーバイザが、該演算のリソースによりネットワークのルーティング機能を物理マシン上に実現することもある。物理マシン上に実現されたルーティング機能を仮想ルータと呼ぶことがある。仮想ルータに仮想マシンの通信を中継させることで、物理マシン上に仮想マシンのネットワークを構築できる。このように、物理マシン上で仮想マシンを動作させ、該仮想マシン上で実現されるサービスをクライアント装置から利用可能とする情報処理システムがある。
【0004】
ところで、ネットワークを介した通信のセキュリティを確保するため、ネットワークの経路上にファイアウォールを設けることがある。ファイアウォールは、ネットワーク上のトラフィックを所定のルールによりフィルタリングして、許容する通信経路やプロトコル以外の通信を遮断する。
【0005】
例えば、ユーザ端末装置がゲートウェイ装置を介して所定のネットワークに接続するとき、接続先のネットワークに対して予め定められたフィルタリングテーブルを該ゲートウェイ装置に設定して、トラフィックのフィルタリングを行わせる提案がある。
【0006】
また、例えば、ユーザ端末装置がファイアウォール装置を介して外部ネットワークに接続開始する際に、該ファイアウォール装置が、ポリシサーバ装置からユーザに対応するフィルタリングのルールを取得する提案がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−244245号公報(〔0038〕〜〔0042〕)
【特許文献2】国際公開第2004/71038号(32頁36行目〜33頁4行目)
【発明の概要】
【発明が解決しようとする課題】
【0008】
仮想マシン上のサービスをクライアント装置から利用可能とする情報処理システムでは、該サービスに応じて、仮想マシン/クライアント装置間、または、仮想マシン/仮想マシン間の通信内容が異なることがある。例えば、Webアクセスを可能とするサービスと、ファイル転送を可能とするサービスとでは、通信に用いるポート番号が異なることがある。このため、各仮想マシンに対して、サービスに応じた通信のセキュリティ対策がなされていることが望ましい。そこで、各仮想マシンにつき通信監視のルールをどのように容易に設定可能とするかが問題となる。
【0009】
例えば、仮想マシン上で利用可能とするサービスがユーザによって事後的に選択される場合、該サービスに応じたルールを事前に設定するのが困難となる。また、複数の物理マシン上で複数の仮想マシンが動作している場合、各仮想マシン上で利用可能なサービスに応じたルールの設定を、仮想マシンごと、または、物理マシンごとに、システム管理者が個別に行うとすると、設定のための作業負担が生ずる。
【0010】
本発明はこのような点に鑑みてなされたものであり、通信監視のルールを容易に設定できるようにした情報処理装置、情報処理プログラムおよび管理方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な他の情報処理装置と通信する情報処理装置が提供される。この情報処理装置は、記憶部と制御部とを有する。記憶部は、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する。制御部は、仮想マシン上で利用するサービスが選択されると、記憶部を参照して、選択された該サービスに応じた通信監視のルールを仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる。
【0012】
また、仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な情報処理装置と通信するコンピュータが実行する情報処理プログラムが提供される。この情報処理プログラムは、コンピュータに、仮想マシン上で利用するサービスが選択されると、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する記憶部を参照して、選択された該サービスに応じた通信監視のルールを仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる、処理を実行させる。
【0013】
また、仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な他の情報処理装置と通信する情報処理装置が実行する管理方法が提供される。この管理方法では、仮想マシン上で利用するサービスが選択されると、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する記憶部を参照して、選択された該サービスに応じた通信監視のルールを仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる。
【発明の効果】
【0014】
通信監視のルールを容易に設定できる。
【図面の簡単な説明】
【0015】
【図1】第1の実施の形態の情報処理システムを示す図である。
【図2】第2の実施の形態の情報処理システムを示す図である。
【図3】第2の実施の形態の制御装置のハードウェア例を示す図である。
【図4】第2の実施の形態の各装置の機能を示すブロック図である。
【図5】第2の実施の形態の仮想ルータの機能を示すブロック図である。
【図6】第2の実施の形態の接続リストテーブルの例を示す図である。
【図7】第2の実施の形態のフィルタ雛型テーブルの例を示す図である。
【図8】第2の実施の形態のフィルタテーブルの例を示す図である。
【図9】第2の実施の形態の仮想マシンの起動処理を示すフローチャートである。
【図10】第2の実施の形態の仮想マシンの起動処理を示すシーケンス図である。
【図11】第2の実施の形態のフィルタ設定処理を示すフローチャートである。
【図12】第2の実施の形態のフィルタ設定処理を示すシーケンス図である。
【図13】第3の実施の形態のフィルタ雛型テーブルの例を示す図である。
【図14】第3の実施の形態のフィルタテーブルの例を示す図である。
【図15】第3の実施の形態のフィルタ設定処理を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。この情報処理システムは、情報処理装置1,2を含む。情報処理装置1は、情報処理装置2と通信する。情報処理装置2では、仮想ルータ2aおよび仮想マシン2bが動作可能である。仮想ルータ2aは、仮想マシン2bの通信を中継する。
【0017】
情報処理装置1は、記憶部1aおよび制御部1bを有する。
記憶部1aは、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する。記憶部1aは、RAMやHDD(Hard Disk Drive)として実装してもよい。通信監視のルールとは、例えば、通信のフィルタリングを行うためのルールである。通信監視のルールには、例えば、仮想マシン上で利用されるサービスに応じたフィルタ内容が定義される。具体的には、該サービスで利用する通信ポート以外のポートでの通信を制限する設定が考えられる。また、該サービスで利用する伝送制御プロトコル(例えば、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol))以外のプロトコルでの通信を制限する設定が考えられる。
【0018】
制御部1bは、仮想マシン2b上で利用するサービスが選択されると、記憶部1aを参照して、選択された該サービスに応じた通信監視のルールを仮想ルータ2aに送信し、該通信監視のルールに基づく監視を行わせる。例えば、仮想マシン2b上で利用するサービスは、仮想マシン2bを利用するユーザにより選択される。ユーザは、例えば、情報処理装置1とネットワークを介して接続された端末装置を操作して、情報処理装置1にサービスの選択内容を入力できる。
【0019】
情報処理装置1によれば、仮想マシン2b上で利用するサービスが選択されると、制御部1bにより、記憶部1aが参照されて、選択された該サービスに応じた通信監視のルールが仮想ルータ2aに送信される。仮想ルータ2aは、該通信監視のルールを受信すると、該ルールに基づき通信監視を行う。
【0020】
これにより、通信監視のルールを容易に設定可能となる。具体的には、仮想マシン2bのサービスが選択されたときに、サービスごとに定義された通信監視のルールを、仮想マシン2bの通信を中継する仮想ルータ2aに送信することで、該サービスのためのルールを、仮想ルータ2aに容易に設定できる。複数の情報処理装置上で複数の仮想マシンが動作している場合でも、各仮想マシンに対して選択されたサービスに対するルールを自動的に取得し、各仮想マシンに対応する仮想ルータに送信する。このため、システム管理者による設定のための作業負担を軽減できる。
【0021】
通信監視のルールには、種々の内容を定義できる。例えば、仮想マシン2bとユーザが仮想ルータ2aを介して仮想マシン2bにアクセスするために利用する端末装置(または、該端末装置が属するネットワーク)との間でのフィルタを定義できる。これにより、該端末装置(または、該端末装置が属するネットワーク)と仮想マシン2bとの間で、選択されたサービスを利用する際の通信のセキュリティ向上を図れる。
【0022】
また、例えば、第1のサービスを実行する仮想マシン2bと第2のサービスを実行する他の仮想マシンとの間の通信路での通信を制限するフィルタを該ルールとして定義してもよい。このとき、制御部1bは、仮想マシン2bに対して第1のサービスが選択されたとき、該第1のサービスに応じたルールに加えて、第1,第2のサービスの組に関するルールを記憶部1aから取得して、仮想ルータ2aに送信してもよい。このようにすれば、相互に接続する仮想マシン間で、通信のセキュリティ向上を図れる。
【0023】
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。データセンタ20は、サービス事業者が運用する事業所である。ユーザ拠点30は、ユーザが運用する事業所である。サービス事業者は、データセンタ20上のサーバ装置で複数の仮想マシンを実行させ、該仮想マシンをユーザ拠点30から利用可能とする。具体的には、ユーザは、ユーザ拠点30に設置されたクライアント装置から該仮想マシン上のソフトウェアに所定の処理の実行を要求することで、該ソフトウェアにより実現されるサービスを利用できる。このようなソフトウェアの利用形態は、SaaS(Software as a Service)と呼ばれることがある。
【0024】
この情報処理システムは、制御装置100、仮想マシン管理装置200、実行サーバ装置300,300a、ゲートウェイ装置400,400a、ルータ装置500、クライアント装置600,600aおよび通信事業者サーバ装置700を含む。
【0025】
制御装置100、仮想マシン管理装置200、実行サーバ装置300,300aおよびゲートウェイ装置400,400aは、データセンタ20に設置されており、データセンタ20内のネットワーク21にそれぞれ接続されている。ルータ装置500およびクライアント装置600,600aは、ユーザ拠点30に設置されており、ユーザ拠点30内のネットワーク31にそれぞれ接続されている。通信事業者サーバ装置700は、通信事業者の事業所(図示を省略)に設置されており、ネットワーク10に接続される。ネットワーク10は、通信事業者の管理するIP(Internet Protocol)網である。ネットワーク10は、例えば、PPPoE(Point to Point Protocol over Ethernet)網である。
【0026】
制御装置100は、実行サーバ装置300,300a上の仮想ルータとルータ装置500との間のL2VPN(Layer2 Virtual Private Network)によるトンネル接続の確立を支援する情報処理装置である。これにより、クライアント装置600,600aから、該仮想ルータと通信する仮想マシンに対して、IP網を介したVPN接続を可能とする。
【0027】
仮想マシン管理装置200は、実行サーバ装置300,300a上の仮想マシンや仮想ルータの起動を制御する情報処理装置である。仮想マシン管理装置200は、何れの実行サーバ装置で何れの仮想マシンや仮想ルータが実行されているか管理する。仮想マシン管理装置200は、仮想ルータに設けられた仮想のネットワークIF(InterFace)の情報を管理する。
【0028】
実行サーバ装置300,300aは、仮想マシン管理装置200からの起動指示に応じて、仮想マシンおよび仮想ルータを実行する情報処理装置である。例えば、実行サーバ装置300,300aは、ハイパーバイザを実行する。ハイパーバイザは、仮想マシン管理装置200から仮想マシンや仮想ルータの起動の指示を受けると、実行サーバ装置300,300a上のリソースを用いて仮想マシンや仮想ルータを起動する。
【0029】
ゲートウェイ装置400,400aは、ネットワーク10とネットワーク21と間の通信を中継する通信装置である。
ルータ装置500は、ネットワーク10とネットワーク31との間の通信を中継する通信装置である。ルータ装置500は、サービス事業者から仮想マシンを割り当てられたユーザが、該仮想マシン上で利用したいサービスの選択を受け付ける機能も備えている。ルータ装置500は、サービスの選択内容を制御装置100に送信して、該サービスを該ユーザの仮想マシン上で利用可能とするよう依頼する。
【0030】
クライアント装置600,600aは、ユーザが利用する情報処理装置である。ユーザは、クライアント装置600,600aを操作して、実行サーバ装置300,300a上の仮想マシンに対して処理の要求を行える。例えば、クライアント装置600,600aからWebブラウザ、RDP(Remote Desktop Protocol)、VNC(Virtual Network Computing)、SSH(Secure SHell)およびFTP(File Transfer Protocol)などを用いて、実行サーバ装置300,300a上の仮想マシンを利用できる。
【0031】
通信事業者サーバ装置700は、制御装置100からの要求により、ゲートウェイ装置400,400aとルータ装置500とをネットワーク10に接続するための情報を提供する。例えば、通信事業者サーバ装置700は、ゲートウェイ装置400,400aおよびルータ装置500に、PPPoEのユーザID(IDentifier)やパスワードなどの情報を送信する。ゲートウェイ装置400,400aおよびルータ装置500は、提供された情報に基づいて、ネットワーク10上の所定の認証サーバでPPPoE認証され、ネットワーク10に接続する。また、通信事業者サーバ装置700は、例えば、ゲートウェイ装置400,400aおよびルータ装置500をIP−VPN接続するための情報を提供する。ゲートウェイ装置400,400aおよびルータ装置500は、提供された情報に基づいて、IP−VPN接続を確立する。
【0032】
図3は、第2の実施の形態の制御装置のハードウェア例を示す図である。制御装置100は、CPU101、ROM(Read Only Memory)102、RAM103、HDD104、グラフィック処理装置105、入力インタフェース106、ディスクドライブ107および通信インタフェース108を有する。
【0033】
CPU101は、OSやアプリケーションのプログラムを実行して、制御装置100全体を制御する。
ROM102は、制御装置100の起動時に実行されるBIOS(Basic Input / Output System)プログラムなどの所定のプログラムを記憶する。ROM102は、書き換え可能な不揮発性メモリであってもよい。
【0034】
RAM103は、CPU101が実行するOSやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101の処理に用いられるデータの少なくとも一部を一時的に記憶する。
【0035】
HDD104は、OSプログラムやアプリケーションプログラムを記憶する。また、HDD104は、CPU101の処理に用いられるデータを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の不揮発性の記憶装置を用いてもよい。
【0036】
グラフィック処理装置105は、モニタ11に接続される。グラフィック処理装置105は、CPU101からの命令に従って、画像をモニタ11に表示させる。
入力インタフェース106は、キーボード12やマウス13などの入力デバイスに接続される。入力インタフェース106は、入力デバイスから送られる入力信号をCPU101に出力する。
【0037】
ディスクドライブ107は、記録媒体14に格納されたデータを読み取る読取装置である。記録媒体14には、例えば、制御装置100に実行させるプログラムが記録されている。制御装置100は、例えば、記録媒体14に記録されたプログラムを実行することで、後述するような機能を実現できる。すなわち、当該プログラムはコンピュータ読み取り可能な記録媒体14に記録して配布可能である。
【0038】
記録媒体14としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
【0039】
通信インタフェース108は、ネットワーク10に接続される。通信インタフェース108は、ネットワーク21を介して仮想マシン管理装置200、実行サーバ装置300,300aおよびゲートウェイ装置400,400aとデータ通信を行える。また、通信インタフェース108は、ゲートウェイ装置400,400aおよびネットワーク10を介してルータ装置500および通信事業者サーバ装置700とデータ通信を行える。
【0040】
なお、仮想マシン管理装置200、実行サーバ装置300,300a、クライアント装置600,600aおよび通信事業者サーバ装置700も、制御装置100と同様のハードウェア構成により実現できる。
【0041】
また、以下の説明では、ゲートウェイ装置400,400aのうち、ゲートウェイ装置400を主に示して説明するが、ゲートウェイ装置400aも同様である。
図4は、第2の実施の形態の各装置の機能を示すブロック図である。制御装置100は、制御情報記憶部110、接続制御部120およびルール管理部130を有する。制御装置100の構成要素の機能は、例えばCPU101が所定のプログラムを実行することにより、制御装置100上に実現される。制御装置100の構成要素の機能の全部または一部を専用のハードウェアで実装してもよい。
【0042】
制御情報記憶部110は、制御情報を記憶する。制御情報には、接続リストテーブルおよびフィルタ雛型テーブルが含まれる。接続リストテーブルは、ユーザの識別情報と該ユーザが現在利用中のサービスの識別情報とを対応付けたデータである。フィルタ雛型テーブルは、サービスごとのデフォルトのフィルタルールを設定したものである。
【0043】
接続制御部120は、ルータ装置500と実行サーバ300,300a上の仮想ルータとの接続を制御する。具体的には、接続制御部120は、ルータ装置500からの要求により、ルータ装置500に対するゲートウェイ装置400,400aの割り当てを仮想マシン管理装置200に指示する。また、接続制御部120は、ルータ装置500からの要求により、実行サーバ装置300,300a上の仮想マシンおよび仮想ルータの起動を仮想マシン管理装置200に指示する。そして、接続制御部120は、実行サーバ装置300,300a上の仮想ルータとルータ装置500との間のL2VPN接続を確立する。
【0044】
より具体的には、接続制御部120は、通信事業者サーバ装置700と連携して、ゲートウェイ装置400とネットワーク10との間のPPPoE接続を開始させる。また、接続制御部120は、通信事業者サーバ装置700と連携して、ルータ装置500とネットワーク10との間のPPPoE接続を開始させる。接続制御部120は、ゲートウェイ装置400とルータ装置500とをIP−VPNで接続させる。
【0045】
更に、接続制御部120は、仮想ルータとルータ装置500との間のEtherIP(Ethernet over IP)によるトンネル接続を開始させる。仮想ルータやルータ装置500は、クライアント装置600,600aと実行サーバ装置300,300a上の仮想マシンとの間のEthernet(登録商標)フレームをEtherIPによりカプセル化して通信を行う。L2VPN接続により、通信事業者のIP網であるネットワーク10を介して、クライアント装置600,600aと仮想マシンとの間のVPN接続が可能となる。
【0046】
更に、接続制御部120は、ユーザによるサービスの選択内容をルータ装置500から受信する。接続制御部120は、サービスの選択内容をルール管理部130および起動制御部220に送信する。サービスの選択内容には、ユーザに割り当てられた何れの仮想マシンで、何れのサービスを選択したかを示す情報が含まれる。
【0047】
ルール管理部130は、実行サーバ装置300,300a上の仮想ルータに通信監視用のルールを送信する。具体的には、ルール管理部130は、ユーザによるサービスの選択内容を接続制御部120から受信したとき、該サービス応じたルールを制御情報記憶部110から取得して、該ユーザに割り当てた仮想マシンに対応する仮想ルータに送信する。
【0048】
仮想マシン管理装置200は、管理情報記憶部210および起動制御部220を有する。仮想マシン管理装置200の構成要素の機能は、例えば仮想マシン管理装置200が備えるCPUが所定のプログラムを実行することにより、仮想マシン管理装置200上に実現される。仮想マシン管理装置200の構成要素の機能の全部または一部を専用のハードウェアで実装してもよい。
【0049】
管理情報記憶部210は、管理情報を記憶する。管理情報には、実行サーバ装置300,300aおよびゲートウェイ装置400,400aに関する情報が含まれる。具体的には、実行サーバ装置300,300a上で利用可能なリソースの情報、実行中の仮想マシンのユーザへの割り当て状況を示す情報、実行中の仮想マシンと仮想ルータとの対応を示す情報および各仮想ルータ上の仮想のネットワークIFを示す情報が含まれる。また、管理情報には、ゲートウェイ装置400,400a上で利用可能なリソースの情報や、ゲートウェイ装置400,400aのユーザへの割り当て状況を示す情報が含まれる。
【0050】
起動制御部220は、ユーザに対するゲートウェイ装置400,400aの割り当て指示を接続制御部120から受け付ける。すると、起動制御部220は、管理情報記憶部210を参照して、該ユーザに対するゲートウェイ装置400,400aの割り当てを行う。起動制御部220は、該ユーザと割り当てたゲートウェイ装置との対応を管理情報記憶部210に記録する。
【0051】
起動制御部220は、ユーザに対する仮想マシンの起動指示を接続制御部120から受け付ける。すると、起動制御部220は、管理情報記憶部210を参照して、仮想マシンおよび仮想ルータを起動させる実行サーバ装置を選択する。起動制御部220は、選択した実行サーバ装置に仮想マシンおよび仮想ルータを起動させる。起動制御部220は、該ユーザ、割り当てた実行サーバ装置、仮想マシンおよび仮想ルータの対応を管理情報記憶部210に記録する。起動制御部220は、管理情報記憶部210を参照して、接続制御部120からの問い合わせに応じる。例えば、実行サーバ装置、仮想マシンおよび仮想ルータの対応関係、仮想ルータと該仮想ルータ上の仮想のネットワークIFとの対応関係、仮想マシンとネットワークIFとの対応関係などの問い合わせに応じることができる。
【0052】
更に、起動制御部220は、ユーザによるサービスの選択内容を接続制御部120から受信すると、該ユーザに割り当てられた仮想マシンに該サービスを利用するためのソフトウェアを実行させる。
【0053】
実行サーバ装置300は、仮想ルータ310および仮想マシン320,320aを有する。実行サーバ装置300の構成要素の機能は、例えば実行サーバ装置300が備えるCPUが所定のプログラムを実行することにより、実行サーバ装置300上に実現される。実行サーバ装置300の構成要素の機能の全部または一部を専用のハードウェアで実装してもよい。
【0054】
仮想ルータ310は、ネットワーク21と仮想マシン320,320aとの間の通信を中継する。仮想ルータ310は、中継する通信データを監視する。具体的には、仮想ルータ310は、ルール管理部130から取得したフィルタルールに基づき通信のフィルタリングを行う。
【0055】
仮想マシン320,320aは、実行サーバ装置300上に実現された仮想マシンである。仮想マシン320,320aは、それぞれ独立にOSを実行している。仮想マシン320,320aが実行するOSは同一でもよいし、異なっていてもよい。仮想マシン320,320aは、それぞれが所定のサービスを利用するためのソフトウェアを実行する。仮想マシン320,320aで何れのサービスを利用可能とするかは、上述したようにユーザの選択により決定される。
【0056】
実行サーバ装置300aは、仮想ルータ310aおよび仮想マシン320b,320cを有する。仮想ルータ310aは、ネットワーク21と仮想マシン320bとの間の通信を中継する。また、仮想ルータ310aは、中継する通信データを監視する。仮想マシン320b,320cは、実行サーバ装置300a上に実現された仮想マシンであり、それぞれが所定のサービスを利用可能とするためのソフトウェアを実行する。
【0057】
ゲートウェイ装置400は、通信処理部410を有する。通信処理部410は、接続制御部120から取得した情報に基づいて、ネットワーク10とPPPoE接続を確立する。また、通信処理部410は、ルータ装置500との間でIP−VPN接続を確立する。
【0058】
ルータ装置500は、通信処理部510を有する。通信処理部510は、接続制御部120から取得した情報に基づいて、ネットワーク10、ゲートウェイ装置400および仮想ルータ310,310aとの間のL2VPN接続を確立する。また、通信処理部510は、サービスを選択するためのインタフェースをクライアント装置600,600aに提供する。ユーザは、該インタフェースにより、自身の利用したいサービスを選択する。通信処理部510は、サービスの選択内容を制御装置100に送信する。
【0059】
図5は、第2の実施の形態の仮想ルータの機能を示すブロック図である。仮想ルータ310は、ルール記憶部311、ネットワークIF312,313,314、トンネル処理部315、フィルタ処理部316およびルール設定部317を有する。
【0060】
ルール記憶部311は、制御装置100から受信した通信監視のためのルールを記憶する。
ネットワークIF312,313,314は、仮想ルータ310上に実現された仮想的なネットワークIFである。ネットワークIF312は、仮想マシン320と通信する。ネットワークIF313は、仮想マシン320aと通信する。
【0061】
ここで、以下の説明では、ネットワークIF312,313〜仮想マシン320,320aまでのネットワークを、仮想マシン側のネットワークということがある。ネットワークIF314は、ネットワーク21を介してゲートウェイ装置400と通信する。ネットワークIF314〜ゲートウェイ装置400〜ユーザ拠点30までのネットワークを、ユーザ側のネットワークということがある。
【0062】
トンネル処理部315は、EtherIPによるトンネル接続を終端する。具体的には、トンネル処理部315は、EtherIPによりカプセル化された通信データをネットワークIF314から取得すると、該通信データからEthernetフレームを取出して、フィルタ処理部316に出力する。また、トンネル処理部315は、フィルタ処理部316から取得したEthernetフレームをEtherIPによりカプセル化して、ネットワークIF314に出力する。
【0063】
フィルタ処理部316は、Ethernetフレームを監視して、ユーザ側のネットワークと仮想マシン側のネットワークの間の通信を制限する。具体的には、フィルタ処理部316は、ルール記憶部311に記憶されたフィルタルールに基づいて宛先や送信元の情報およびポート番号などによるフィルタリングを行う。
【0064】
ルール設定部317は、通信監視のためのルールを制御装置100から受信して、ルール記憶部311に格納する。ルール設定部317は、ルール記憶部311に既存のルールが格納されている場合には、新たに受信したルールにより既存のルールを更新する。
【0065】
ルール設定部317は、専用の仮想ネットワークIFを備え、ネットワーク21および制御装置100と該仮想ネットワークIFで通信する。ただし、フィルタ処理部316およびルール設定部317は、ネットワークIF314を介して制御装置100と通信してもよい。
【0066】
図6は、第2の実施の形態の接続リストテーブルの例を示す図である。接続リストテーブル111は、制御情報記憶部110に格納される。接続リストテーブル111には、ユーザID、SaaS種別およびネットワークIFを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのユーザに関する情報を示す。
【0067】
ユーザIDの項目には、ユーザIDが設定される。ユーザIDは、ユーザ拠点30を運営する事業者を識別する情報である。SaaS種別の項目には、サービスを示す識別情報が設定される。ネットワークIFの項目には、仮想ルータ310,310aにおける仮想マシン側のネットワークIFの識別情報が設定される。
【0068】
ここで、ユーザ拠点30を運営する事業者のユーザIDを“User1”とする。他のユーザ拠点を運営する事業者のユーザIDを“User2”とする。
また、仮想マシン320上で利用されているサービスのSaaS種別を“SaaS1”とする。仮想マシン320a上で利用されているサービスのSaaS種別を“SaaS2”とする。仮想マシン320b上で利用されているサービスのSaaS種別を“SaaS3”とする。仮想マシン320c上で利用されているサービスのSaaS種別を“SaaS4”とする。
【0069】
更に、ネットワークIF312の識別情報を“IF−S1”とする。ネットワークIF313の識別情報を“IF−S2”とする。仮想マシン320bと接続する仮想ルータ310a上のネットワークIFの識別情報を“IF−S3”とする。仮想マシン320cと接続する仮想ルータ310a上のネットワークIFの識別情報を“IF−S4”とする。例えば、各ネットワークIFの識別情報は、各ネットワークIFの属するネットワーク上のIPアドレスとしてもよい。
【0070】
例えば、接続リストテーブル111には、ユーザIDが“User1”、SaaS種別が“SaaS1”、ネットワークIFが“IF−S1”という情報が設定される。これは、ユーザ拠点30を運営する事業者(“User1”)がSaaS種別“SaaS1”のサービスを利用していることを示す。また、該サービスを利用するために仮想ルータ310上のネットワークIF312(“IF−S1”)を介して通信していることを示す。
【0071】
図7は、第2の実施の形態のフィルタ雛型テーブルの例を示す図である。フィルタ雛型テーブル112,112a,・・・は、SaaS種別ごとのフィルタルールの雛型(以下、フィルタ雛型という)を定義したものであり、制御情報記憶部110に格納される。フィルタ雛型テーブル112,112a,・・・は、仮想マシン側ネットワークとユーザ側ネットワークとの間のフィルタを定義したものである。フィルタ雛型テーブル112は、SaaS種別“SaaS1”に対するフィルタ雛型を定義したものである。フィルタ雛型テーブル112aは、SaaS種別“SaaS2”に対するフィルタ雛型を定義したものである。以下、フィルタ雛型テーブル112を説明するが、フィルタ雛型テーブル112a,・・・についても同様である。
【0072】
フィルタ雛型テーブル112には、Fromポート、Toポート、Protocol、From−IF、To−IFおよび許可/禁止の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのフィルタ雛型を示す。
【0073】
Fromポートの項目には、送信元のポート番号が設定される。Toポートの項目には、宛先のポート番号が設定される。Protocolの項目には、プロトコルの種別が設定される。From−IFの項目には、ユーザ側のネットワークと接続するネットワークIFの識別情報が設定される。To−IFの項目には、仮想マシン側のネットワークと接続するネットワークIFの識別情報が設定される。許可/禁止の項目には、通信を許可するか禁止するかを示す情報が設定される。
【0074】
例えば、フィルタ雛型テーブル112には、Fromポートが“80”、Toポートが“*”、Protocolが“TCP”、From−IFが“<Local>”、To−IFが“<User>”、許可/禁止が“Permit”という情報が設定される。これは、仮想マシン側のネットワークからユーザ側のネットワークに対するポート番号80でのTCPによる通信(HTTP(Hypertext Transfer Protocol)の通信)を許可することを示す。
【0075】
また、例えば、フィルタ雛型テーブル112には、Fromポートが“*”、Toポートが“80”、Protocolが“TCP”、From−IFが“<User>”、To−IFが“<Local>”、許可/禁止が“Permit”という情報が設定される。これは、ユーザ側のネットワークから仮想マシン側のネットワークに対するポート番号80でのTCPによる通信(HTTPの通信)を許可することを示す。
【0076】
また、例えば、フィルタ雛型テーブル112には、Fromポートが“*”、Toポートが“*”、Protocolが“TCP”、From−IFが“<Local>”、To−IFが“<User>”、許可/禁止が“Deny”という情報が設定される。これは、これは、仮想マシン側のネットワークからユーザ側のネットワークに対する全ての通信を禁止することを示す。
【0077】
また、例えば、フィルタ雛型テーブル112には、Fromポートが“*”、Toポートが“*”、Protocolが“TCP”、From−IFが“<User>”、To−IFが“<Local>”、許可/禁止が“Deny”という情報が設定される。これは、これは、ユーザ側のネットワークから仮想マシン側のネットワークに対する全ての通信を禁止することを示す。
【0078】
フィルタ雛型テーブル112では、上に記述されたルール程優先度が高い。すなわち、フィルタ雛型テーブル112によれば、HTTPの通信は、ユーザ側のネットワークと仮想マシン側のネットワークとの双方向で許可されるが、それ以外の通信は全て遮断されることを示す。
【0079】
なお、仮想ルータは、フィルタ雛型テーブル112で定義されたフィルタ雛型を取得すると、自身が備えるネットワークIFの識別情報をあてはめて、該仮想ルータ用のフィルタルールを生成する。具体的には、“<Local>”には、SaaS種別“SaaS1”のサービスを提供する仮想マシンと接続するネットワークIFの識別情報をあてはめる。“<User>”には、ユーザ側のネットワークと接続するネットワークIFの識別情報をあてはめる。次に、このようにして生成された仮想マシン320用のフィルタルール(フィルタテーブル)を例示する。
【0080】
図8は、第2の実施の形態のフィルタテーブルの例を示す図である。フィルタテーブル311aは、ルール記憶部311に格納される。フィルタテーブル311aは、フィルタ雛型テーブル112で定義されたフィルタ雛型を仮想ルータ310が取得した場合を例示している。フィルタテーブル311aには、Fromポート、Toポート、Protocol、From−IF、To−IFおよび許可/禁止の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのフィルタルールを示す。ここで、各項目の内容は、図7で説明したフィルタ雛型テーブル112の各項目の内容と同様である。
【0081】
フィルタテーブル311aとフィルタ雛型テーブル112とでは、From−IFおよびTo−IFの設定内容が相違する。フィルタテーブル311aでは、フィルタ雛型テーブル112中“<Local>”であった箇所が、仮想マシン320と接続するネットワークIF312の識別情報“IF−S1”に置換されている。また、フィルタテーブル311aでは、フィルタ雛型テーブル112中“<User>”であった箇所が、ネットワークIF314の識別情報“IF−U1”に置換されている。
【0082】
フィルタ処理部316は、フィルタテーブル311aを参照して、フィルタリングを行う。
次に、以上の構成の情報処理システムの処理手順を説明する。
【0083】
図9は、第2の実施の形態の仮想マシンの起動処理を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
[ステップS11]通信処理部510は、ルータ装置500がネットワーク10と物理的に接続されると(例えば、WAN(Wide Area Network)ポートをネットワーク線で接続)、既定の接続情報によりネットワーク10との接続を確立する。更に、通信処理部510は、既定の接続情報によりゲートウェイ装置400との間のIP−VPN接続を初期設定用に確立する。既定の接続情報は、例えば、ネットワーク10とPPPoE接続するためのIDやパスワード、IP−VPNグループの情報などを含むものであり、ルータ装置500の工場出荷時などにルータ装置500が備えるメモリに記録される。なお、ゲートウェイ装置400は、ネットワーク10との間で少なくとも1つのPPPoE接続を、初期設定用に常時開設している。
【0084】
[ステップS12]通信処理部510は、制御装置100に接続通知を行う。接続通知には、起動する仮想マシンの情報(例えば、OSの種別、CPUの性能、メモリやHDDの容量などを指定する情報)およびユーザの識別情報が含まれる。仮想マシンの情報は、ルータ装置500の工場出荷時などにルータ装置500が備えるメモリに記録される。接続通知には、例えば、HTTPのリクエストを利用できる。具体的には、通信処理部510は、制御装置100のURL(Uniform Resource Locator)を指定したHTTPのPUTリクエストを利用して、起動する仮想マシンの情報を含む接続通知を行う。接続制御部120は、ルータ装置500から接続通知を受信する。例えば、接続制御部120は、Webサーバ機能を有し、ルータ装置500がHTTPリクエストとして送信した接続通知を受信する。
【0085】
[ステップS13]接続制御部120は、起動制御部220に対して実運用で利用する接続を確立するためのゲートウェイ装置の割り当てを依頼する。また、接続制御部120は、接続通知で指定された仮想マシンの要件を満たせる実行サーバ装置の割り当てを依頼する。起動制御部220は、管理情報記憶部210を参照して、該ユーザに対して、ゲートウェイ装置および実行サーバ装置の割り当てを行う。例えば、起動制御部220は、該ユーザに対してゲートウェイ装置400および実行サーバ装置300を割り当てたとする。接続制御部120は、ゲートウェイ装置400とルータ装置500との間のIP−VPN接続を確立する。
【0086】
[ステップS14]起動制御部220は、実行サーバ装置300に仮想マシン320と、該仮想マシンに対する通信を中継させるための仮想ルータ310を起動させる。起動制御部220は、仮想ルータ310および仮想マシン320の起動が完了したことを実行サーバ装置300に確認すると、接続制御部120にその旨を通知する。ここで、起動された仮想ルータ310および仮想マシン320が該ユーザに割り当てられる。
【0087】
[ステップS15]接続制御部120は、ステップS14で起動された仮想ルータ310とルータ装置500との間のL2VPN接続を確立する。接続制御部120は、L2VPN接続を確立した後、ゲートウェイ装置400とルータ装置500との間の初期設定用のIP−VPN接続を切断させる。また、ルータ装置500とネットワーク10との間の初期設定用のPPPoE接続を切断させる。
【0088】
上記処理につき、装置間の関連をシーケンス図で説明する。
図10は、第2の実施の形態の仮想マシンの起動処理を示すシーケンス図である。以下、図10に示す処理をステップ番号に沿って説明する。
【0089】
[ステップST101]ルータ装置500は、ネットワーク10に接続する。すると、ルータ装置500は、既定のIDおよびパスワードにより、PPPoE認証を行い、PPPoE網に接続する。また、ルータ装置500は、既定のIP−VPNグループ情報により、ゲートウェイ装置400との間のIP−VPN接続を確立する。
【0090】
[ステップST102]ルータ装置500は、制御装置100に接続通知を送信する。接続通知には、起動する仮想マシンの情報やユーザIDが含まれる。
[ステップST103]ルータ装置500は、該ユーザに対する実行サーバ装置およびゲートウェイ装置の割当を、仮想マシン管理装置200に依頼する。
【0091】
[ステップST104]仮想マシン管理装置200は、実行サーバ装置300およびゲートウェイ装置400を割り当てると、割当結果を制御装置100に通知する。
[ステップST105]制御装置100は、IP−VPN用のPPPoE接続情報(IDおよびパスワード)とIP−VPNグループの接続情報とを、2組分、通信事業者サーバ装置700から取得する。制御装置100は、そのうちの1組をルータ装置500に送信する。
【0092】
[ステップST106]制御装置100は、ステップST105で取得したPPPoE接続情報およびIP−VPNグループの接続情報のうちのもう一方の1組をゲートウェイ装置400に送信する。
【0093】
[ステップST107]ルータ装置500およびゲートウェイ装置400は、制御装置100から受信したPPPoE接続情報とIP−VPNグループの情報により、IP−VPN接続を確立する。
【0094】
[ステップST108]制御装置100は、仮想マシン管理装置200に、仮想マシンおよび仮想ルータの起動指示を送信する。
[ステップST109]仮想マシン管理装置200は、割り当てた実行サーバ装置300に対して、仮想ルータ310および仮想マシン320の起動を指示する。
【0095】
[ステップST110]実行サーバ装置300は、仮想ルータ310および仮想マシン320の起動が完了すると、仮想マシン管理装置200に起動完了を通知する。
[ステップST111]仮想マシン管理装置200は、実行サーバ装置300上で、仮想ルータ310および仮想マシン320の起動が完了した旨を、制御装置100に通知する。
【0096】
[ステップST112]制御装置100は、仮想ルータ310およびルータ装置500の間のL2VPN接続を確立する。具体的には、制御装置100は仮想ルータ310のIPアドレスをルータ装置500に送信して、該IPアドレスに対するEthernetフレームのEtherIPによるカプセル化のための設定を行わせる。また、制御装置100は、ルータ装置500のIPアドレスを仮想ルータ310に送信して、該IPアドレスに対するEthernetフレームのEtherIPによるカプセル化のための設定を行わせる。制御装置100は、L2VPN接続が確立されると、ステップST101で確立された初期設定用のIP−VPN接続や初期設定用のPPPoE接続を切断させる。
【0097】
このようにして、制御装置100は、ルータ装置500とゲートウェイ装置400との間で確立された初期設定用のIP−VPN接続により、ルータ装置500から接続通知を受け付ける。制御装置100は、通信事業者サーバ装置700より、実運用で用いるためのIP−VPN接続のための情報を取得し、ルータ装置500とゲートウェイ装置400との間で該IP−VPN接続を確立させる。制御装置100は、仮想ルータ310が起動すると、仮想ルータ310とルータ装置500との間のL2VPN接続を確立させる。
【0098】
なお、上記ステップST105〜ST107およびステップST108〜ST111の処理は並行に実行されてもよい。
図11は、第2の実施の形態のフィルタ設定処理を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
【0099】
[ステップS21]接続制御部120は、ルータ装置500からユーザが選択したサービスを受け付ける。接続制御部120は、ルール管理部130および起動制御部220に、該ユーザによるサービスの選択内容を送信する。サービスの選択内容には、該ユーザに割り当てられた仮想マシンを指定する情報およびサービスのSaaS種別が含まれる。仮想マシン320を指定する情報およびSaaS種別“SaaS1”を示す情報が含まれるとする。
【0100】
[ステップS22]ルール管理部130は、制御情報記憶部110を参照して、選択されたサービスのSaaS種別に対応するフィルタ雛型を選択する。選択されたサービスのSaaS種別が“SaaS1”であるので、ルール管理部130はフィルタ雛型テーブル113を選択する。
【0101】
[ステップS23]ルール管理部130は、指定された仮想マシンの通信を中継する仮想ルータを選択する。例えば、仮想マシン320が指定されている場合、仮想ルータ310を選択する。ルール管理部130は、仮想マシン320に対応する仮想ルータおよび仮想マシン320と接続するネットワークIFを起動制御部220に問い合わせてもよい。
【0102】
[ステップS24]ルール管理部130は、ステップS22で選択したフィルタ雛型を仮想ルータ310に送信する。このとき、ルール管理部130は、SaaS種別“SaaS1”のサービスを利用可能な仮想マシン320と接続するネットワークIF312の情報(“IF−S1”)を仮想ルータ310に通知する。ネットワークIF312の情報は、雛型の<Local>の設定に相当する。
【0103】
[ステップS25]ルール設定部317は、フィルタ雛型を受信する。ルール設定部317は、フィルタ雛型のFrom−IFおよびTo−IFの項目に記述された“<Local>”の文字列をネットワークIF312を示す“IF−S1”に置換する。また、ルール設定部317は、該各項目に記述された“<User>”の文字列をユーザ側ネットワークと接続するネットワークIF314を示す“IF−U1”に置換する。ルール設定部317は、このようにして生成したフィルタルールをルール記憶部311のフィルタテーブル311aに設定する。
【0104】
[ステップS26]ルール設定部317は、フィルタルールの設定が完了した旨をルール管理部130に通知する。ルール管理部130は、該通知によりフィルタルールの設定完了を受け付ける。
【0105】
[ステップS27]ルール管理部130は、制御情報記憶部110に記憶された接続リストテーブル111を更新する。具体的には、ルール管理部130は、新たに選択されたサービスのSaaS種別とユーザとそのユーザが利用するネットワークIFとの対応関係を設定する。より具体的には、上記ステップS21〜S26の処理に対して、ルール管理部130は、ユーザ“User1”、SaaS種別“SaaS1”、ネットワークIF“IF−S1”の対応関係を接続リストテーブル111に設定する。
【0106】
このようにして、ルール管理部130は、選択されたサービスのSaaS種別に応じたフィルタルールを選択して、仮想ルータ310に送信する。
上記処理につき装置間の関連をシーケンス図で説明する。
【0107】
図12は、第2の実施の形態のフィルタ設定処理を示すシーケンス図である。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップST121]クライアント装置600は、ユーザ(“User1”)によるサービスの選択内容を受け付ける。サービスの選択内容には、該ユーザにより指定された仮想マシン320を示す情報およびサービスのSaaS種別“SaaS1”が含まれる。クライアント装置600は、サービスの選択内容をルータ装置500に入力する。ルータ装置500は、サービスの選択内容を、ゲートウェイ装置400を介して制御装置100に送信する。
【0108】
[ステップST122]制御装置100は、選択されたサービスのSaaS種別“SaaS1”に応じたフィルタ雛型テーブル112を制御情報記憶部110から取得する。制御装置100は、フィルタ雛型テーブル112のフィルタ雛型(ルール)を実行サーバ装置300上の仮想ルータ310に送信する。
【0109】
[ステップST123]仮想ルータ310は、受信したフィルタ雛型に、自身が備えるネットワークIFの情報をあてはめてフィルタルールを生成し、ルール記憶部311のフィルタテーブル311aに設定する。仮想ルータ310は、フィルタルールの設定が完了した旨を制御装置100に通知する。仮想ルータ310は、該フィルタルールによるフィルタリングを開始する。
【0110】
[ステップST124]制御装置100は、仮想マシン管理装置200にサービスの選択内容を通知する。仮想マシン管理装置200は、該通知に基づき、実行サーバ装置300上の仮想マシン320に、該サービスを利用するためのソフトウェアを実行させる。
【0111】
[ステップST125]制御装置100は、ユーザ“User1”とSaaS種別“SaaS1”とネットワークIF“IF−S1”との対応関係を制御情報記憶部110の接続リストテーブル111に設定する。
【0112】
[ステップST126]クライアント装置600は、ユーザによる操作を受け付け、実行サーバ装置300上の仮想マシン320で実行されるソフトウェアに処理要求を送信する。こうして、該ユーザは、該ソフトウェアにより実現されるサービスを利用可能となる。
【0113】
このようにして、制御装置100は、ユーザにより選択されたサービスに応じたフィルタルールを、仮想ルータ310に送信する。
これにより、通信監視のルールを容易に設定可能となる。具体的には、仮想マシン320上のサービスが選択されたときに、サービスごとに定義されたフィルタ雛型を、仮想マシン320の通信を中継する仮想ルータ310に送信することで、該サービスのためのルールを、仮想ルータ310に容易に設定できる。複数の情報処理装置上で複数の仮想マシンが動作している場合でも、各仮想マシンに対して選択されたサービスに対するルールを自動的に取得し、各仮想マシンに対応する仮想ルータに送信する。このため、システム管理者による設定のための作業負担を軽減できる。また、上記情報処理システムのように、仮想マシン上で利用するサービスが、ユーザにより事後的に選択される場合でも、選択されたサービスに応じた適切なルールを仮想ルータに容易に設定可能となる。
【0114】
また、セキュリティの観点からは、上述のように該サービスが利用可能となる前に、仮想ルータ310にフィルタルールが設定されていることが好ましい。すなわち、仮想マシン管理装置200は、フィルタルール設定完了後のステップST124で仮想マシン320に該ソフトウェアの実行を指示する。フィルタルールが設定されるまで、該サービスへの通信を適切にフィルタリングできないためである。このようにすれば、サービスに対する通信の安全性を事前に確保した状態で、サービスの利用を開始することができる。ただし、ステップST122の前にステップST124を実行してもよい。
【0115】
ここで、第2の実施の形態の情報処理システムでは、ユーザ拠点30のネットワーク31と仮想マシン320,320a,320bがVPN接続される。このため、これらの仮想マシンは、ネットワーク31(イントラネット)の延長上に接続された形態となる。その場合、通信のセキュリティ機能をどのように確保するか問題となる。例えば、ユーザ側の責任において設定させる場合、ユーザに対してフィルタ設定のための知識を要求することになる。一方、サービス事業者側の責任において設定する場合、多数の仮想マシンが稼働し得る情報処理システムにおいて、設定のための作業負担が問題となる。これに対し、上述のように、サービスが選択されたときに、該サービスに応じたフィルタ雛型を仮想ルータに送信することで、ユーザ側/サービス事業者側の負担を軽減して、通信のセキュリティを容易に確保できる。
【0116】
第2の実施の形態のフィルタ雛型テーブル112,112a,・・・では、仮想マシン側ネットワークとユーザ側ネットワークとの間のフィルタルールを例示した。該フィルタルールによって、これらネットワーク間での通信のセキュリティ向上を図れる。
【0117】
更に、ユーザがサービスの利用を中止することも考えられる。ユーザは、そのための操作を、例えば、ルータ装置500が提供するインタフェースにより行える。その場合、制御装置100は、該サービスの中止を受け付けた旨を仮想マシン管理装置200および該サービスを提供する仮想マシンの通信を中継する仮想ルータに通知する。すると、該仮想ルータは、そのサービスに対応するフィルタルールを削除する。例えば、SaaS種別“SaaS1”のサービスの利用を停止する場合、フィルタテーブル311aのFrom−IFの項目に、“IF−S1”が設定されたレコードを削除する。
【0118】
[第3の実施の形態]
次に、第3の実施の形態を説明する。前述の第2の実施の形態との相違点を主に説明し、同様の事項の説明を省略する。
【0119】
第2の実施の形態では、仮想マシン側ネットワークとユーザ側ネットワークとの間のフィルタルールの設定を例示した。ここで、仮想マシンでサービスを利用可能とするために、該仮想マシンから、そのユーザに割り当てられた他の仮想マシンと通信することもある。その場合、仮想マシン間の通信でもフィルタリングを行うことが好ましい。第3の実施の形態では、仮想マシン間でのフィルタルールを容易に設定可能とする方法を提供する。
【0120】
ここで、第3の実施の形態の情報処理システムの構成は、図2で説明した第2の実施の形態の情報処理システムの構成と同様である。第3の実施の形態では、第2の実施の形態と同一の符号・名称により、各装置および各装置の構成要素を指し示す。
【0121】
図13は、第3の実施の形態のフィルタ雛型テーブルの例を示す図である。フィルタ雛型テーブル113,113a,・・・は、あるSaaS種別のサービスを実行する仮想マシンと該SaaS種別のサービスが連携する他のサービスを実行する他の仮想マシンとの間のフィルタ雛型を定義したものである。すなわち、フィルタ雛型テーブル113,113a,・・・は、仮想マシン側ネットワークでのフィルタを定義したものである。フィルタ雛型テーブル113,113a,・・・は、制御情報記憶部110に格納される。
【0122】
フィルタ雛型テーブル113は、SaaS種別“SaaS1”と他のSaaS種別との連携に対するフィルタ雛型を定義したものである。フィルタ雛型テーブル113aは、SaaS種別“SaaS2”と他のSaaS種別との連携に対するフィルタ雛型を定義したものである。以下、フィルタ雛型テーブル113を説明するが、フィルタ雛型テーブル113a,・・・についても同様である。
【0123】
フィルタ雛型テーブル113には、Fromポート、Toポート、Protocol、From−IF、To−IF、Flagおよび許可/禁止の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのフィルタ雛型を示す。ここで、Flagの項目以外の各項目の内容は、図7で説明した第2の実施の形態のフィルタ雛型テーブル112の各項目の内容と同様である。
【0124】
Flagの項目には、TCPによる発呼方向などを制限するための情報が設定される。
例えば、フィルタ雛型テーブル113には、Fromポートが“*”、Toポートが“*”、Protocolが“TCP”、From−IFが“<Local>”、To−IFが“<SaaS>”、Flagが“NEW,Established”、許可/禁止が“Permit”という情報が設定される。これは、仮想ルータにおいて、SaaS種別“SaaS1”のネットワークIFから、他のSaaS種別のサービスを提供する仮想マシンが接続するネットワークIFへのTCPによる通信の一部を許可することを示す。許可されるのは、TCPセッションの新規確立用のパケット(“NEW”)および既に確立済のTCPセッションのパケット(“Established”)である。
【0125】
また、例えば、フィルタ雛型テーブル113には、Fromポートが“*”、Toポートが“*”、Protocolが“TCP”、From−IFが“<SaaS>”、To−IFが“<Local>”、Flagが“Established”、許可/禁止が“Permit”という情報が設定される。これは、仮想ルータにおいて、他のSaaS種別のサービスを提供する仮想マシンが接続するネットワークIFから、SaaS種別“SaaS1”のサービスを提供する仮想マシンが接続するネットワークIFへのTCPによる通信の一部を許可することを示す。許可されるのは、既に確立済のTCPセッションのパケットである。
【0126】
また、例えば、フィルタ雛型テーブル113には、Fromポートが“*”、Toポートが“*”、Protocolが“*”、From−IFが“<Local>”、To−IFが“<SaaS>”、Flagが“−”(ハイフン)、許可/禁止が“Deny”という情報が設定される。これは、仮想ルータにおいて、SaaS種別“SaaS1”のサービスを提供する仮想マシンが接続するネットワークIFから、他のSaaS種別のサービスを提供する仮想マシンが接続するネットワークIFへの全ての通信を遮断することを示す。
【0127】
また、例えば、フィルタ雛型テーブル113には、Fromポートが“*”、Toポートが“*”、Protocolが“*”、From−IFが“<SaaS>”、To−IFが“<Local>”、Flagが“−”(ハイフン)、許可/禁止が“Deny”という情報が設定される。これは、仮想ルータにおいて、他のSaaS種別のサービス提供する仮想マシンが接続するネットワークIFから、SaaS種別“SaaS1”のサービスを提供する仮想マシンが接続するネットワークIFへの全ての通信を遮断することを示す。
【0128】
フィルタ雛型テーブル113では、上に記述されたルール程優先度が高い。フィルタ雛型テーブル113によれば、SaaS種別“SaaS1”のサービスを提供する仮想マシンが接続するネットワークIFから、他のSaaS種別のサービスを提供する仮想マシンが接続するネットワークIFへのTCPセッションの開設が許可される。ただし、逆方向(他のSaaS種別のネットワークIFから“SaaS1”のネットワークIFへ向かう方向)へのTCPセッションの開設は禁止される。以後、両仮想マシン間で開設されたTCPセッションでの通信が許可される。それ以外の通信は、全て遮断される。
【0129】
なお、仮想ルータは、フィルタ雛型テーブル113で定義されたフィルタ雛型を取得すると、自身が備えるネットワークIFの識別情報をあてはめて、該仮想ルータ用のフィルタルールを生成する。具体的には、“<Local>”には、SaaS種別“SaaS1”のサービスを提供する仮想マシンと接続するネットワークIFの識別情報をあてはめる。“<SaaS>”には、他のSaaS種別のサービスを提供する仮想マシンと接続するネットワークIFの識別情報をあてはめる。次に、このようにして生成された仮想マシン320用のフィルタルール(フィルタテーブル)を例示する。
【0130】
図14は、第3の実施の形態のフィルタテーブルの例を示す図である。フィルタテーブル311bは、ルール記憶部311に格納される。フィルタテーブル311bは、フィルタテーブル311aに、フィルタ雛型テーブル113,113aで定義されたフィルタ雛型を追加設定した場合を例示している。ただし、フィルタテーブル311aで示した設定内容は図示を省略する。フィルタテーブル311bには、Fromポート、Toポート、Protocol、From−IF、To−IF、Flagおよび許可/禁止の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのフィルタルールを示す。ここで、各項目の内容は、図13で説明したフィルタ雛型テーブル113の各項目の内容と同様である。
【0131】
フィルタテーブル311bとフィルタ雛型テーブル113,113a,・・・とでは、From−IFおよびTo−IFの設定内容が相違する。ここで、フィルタテーブル311b中、設定A,Bが示されている。設定Aは、フィルタ雛型テーブル113に基づく仮想マシン320,320a間の通信のフィルタルールである。設定Bは、フィルタ雛型テーブル113aに基づく仮想マシン320,320a間の通信のフィルタルールである。
【0132】
設定Aでは、フィルタ雛型テーブル113中“<Local>”であった箇所が、SaaS種別“SaaS1”のサービスを提供する仮想マシン320と接続するネットワークIF312の識別情報“IF−S1”に置換されている。また、フィルタテーブル311bでは、フィルタ雛型テーブル113中“<SaaS>”であった箇所が、SaaS種別“SaaS2”(他のSaaS種別)のサービスを提供する仮想マシン320aと接続するネットワークIF313の識別情報“IF−S2”に置換されている。
【0133】
設定Bでは、フィルタ雛型テーブル113a中“<Local>”であった箇所が、SaaS種別“SaaS2”のサービスを提供する仮想マシン320aと接続するネットワークIF313の識別情報“IF−S2”に置換されている。また、フィルタテーブル311bでは、フィルタ雛型テーブル113a中“<SaaS>”であった箇所が、SaaS種別“SaaS1”(他のSaaS種別)のサービスを提供する仮想マシン320と接続するネットワークIF312の識別情報“IF−S1”に置換されている。
【0134】
フィルタテーブル311bには、ユーザにより選択されたSaaS種別のサービスを提供する仮想マシンと接続するネットワークIFと、該ユーザに割り当てられた他の仮想マシンと接続するネットワークIFと、の組の分だけルールが設定される。
【0135】
例えば、“User1”のユーザは、実行サーバ300a上の仮想マシン320bでSaaS種別“SaaS3”のサービスを利用している。このため、フィルタテーブル311bには、フィルタ雛型テーブル113に基づいて、仮想マシン320,320b間の通信のフィルタルールも設定される。また、フィルタテーブル311bには、フィルタ雛型テーブル113aに基づいて、仮想マシン320a,320b間の通信のフィルタルールも設定される。このようにして、該ユーザに割り当てた仮想マシン間で網羅的にフィルタルールが設定される。
【0136】
次に、以上の構成の情報処理システムの処理手順を説明する。ここで、仮想マシンの起動処理は、図9で説明した第2の実施の形態の仮想マシンの起動処理と同様である。
図15は、第3の実施の形態のフィルタ設定処理を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
【0137】
[ステップS31]接続制御部120は、ルータ装置500からユーザが選択したサービスを受け付ける。接続制御部120は、ルール管理部130および起動制御部220に、該ユーザによるサービスの選択内容を送信する。サービスの選択内容には、該ユーザに割り当てられた仮想マシンを指定する情報およびサービスのSaaS種別が含まれる。仮想マシン320を指定する情報およびSaaS種別“SaaS1”を示す情報が含まれるとする。
【0138】
[ステップS32]ルール管理部130は、制御情報記憶部110を参照して、選択されたサービスのSaaS種別に対応するフィルタ雛型を選択する。選択されたサービスのSaaS種別が“SaaS1”であるので、ルール管理部130はフィルタ雛型テーブル113を選択する。
【0139】
[ステップS33]ルール管理部130は、指定された仮想マシンの通信を中継する仮想ルータを選択する。例えば、仮想マシン320が指定されている場合、仮想ルータ310を選択する。ルール管理部130は、仮想マシン320に対応する仮想ルータおよび仮想マシン320と接続するネットワークIFを起動制御部220に問い合わせてもよい。
【0140】
[ステップS34]ルール管理部130は、ステップS32で選択したフィルタ雛型を仮想ルータ310に送信する。このとき、ルール管理部130は、SaaS種別“SaaS1”のサービスを利用可能な仮想マシン320と接続するネットワークIF312の情報(“IF−S1”)を仮想ルータ310に通知する。ネットワークIF312の情報は、雛型の<Local>の設定に相当する。
【0141】
[ステップS35]ルール設定部317は、フィルタ雛型を受信する。ルール設定部317は、フィルタ雛型のFrom−IFおよびTo−IFの項目に記述された“<Local>”の文字列をネットワークIF312を示す“IF−S1”に置換する。また、ルール設定部317は、該各項目に記述された“<User>”の文字列をユーザ側ネットワークと接続するネットワークIF314を示す“IF−U1”に置換する。ルール設定部317は、このようにして生成したフィルタルールをルール記憶部311のフィルタテーブル311bに設定する。
【0142】
[ステップS36]ルール設定部317は、フィルタルールの設定が完了した旨をルール管理部130に通知する。ルール管理部130は、該通知によりフィルタルールの設定完了を受け付ける。
【0143】
[ステップS37]ルール管理部130は、制御情報記憶部110に記憶された接続リストテーブル111を更新する。具体的には、ルール管理部130は、新たに選択されたサービスのSaaS種別とユーザとそのユーザが利用するネットワークIFとの対応関係を設定する。より具体的には、上記ステップS31〜S36の処理に対して、ルール管理部130は、ユーザ“User1”、SaaS種別“SaaS1”、ネットワークIF“IF−S1”の対応関係を接続リストテーブル111に設定する。
【0144】
[ステップS38]ルール管理部130は、該ユーザが他のSaaS種別のサービスを利用中であるかを判定する。該ユーザが他のSaaS種別のサービスを利用中である場合、処理をステップS39に進める。該ユーザが他のSaaS種別のサービスを利用中でない場合、処理を終了する。この判定は、ルール管理部130は、接続リストテーブル111を参照して、該ユーザに対応する他のSaaS種別があるか判断することで行える。他のSaaS種別があれば他のSaaS種別のサービスを利用中であり、なければ他のSaaS種別のサービスを利用中でない。例えば、接続リストテーブル111の例では、“User1”に対して、“SaaS1”以外にもSaaS種別“SaaS2”および“SaaS3”が対応付けられている。よって、“User1”は、SaaS種別“SaaS1”以外の他のSaaS種別のサービスを利用中である。
【0145】
[ステップS39]ルール管理部130は、制御情報記憶部110を参照して、ステップS31で選択されたSaaS種別に対し、他のSaaS種別との間のフィルタ雛型があるか否か判定する。他のSaaS種別との間のフィルタ雛型がある場合、処理をステップS40に進める。他のSaaS種別との間のフィルタ雛型がない場合、処理を終了する。ここで、制御情報記憶部110には、“SaaS1”と他のSaaS間の接続用のフィルタ雛型を定義したフィルタ雛型テーブル113が存在する。したがって、ルール管理部130は、ステップS31で選択されたSaaS種別“SaaS1”に対し、他のSaaS種別との間のフィルタ雛型があると判定する。
【0146】
[ステップS40]ルール管理部130は、ステップS33で選択した仮想ルータ310にフィルタ雛型テーブル113のフィルタ雛型を送信する。このとき、ルール管理部130は、SaaS種別“SaaS1”のサービスを利用可能な仮想マシン320と接続するネットワークIF312の情報(“IF−S1”)を仮想ルータ310に通知する。ネットワークIF312の情報は、雛型の<Local>の設定に相当する。また、ルール管理部130は、該ユーザが利用する他のSaaS種別“SaaS2”、“SaaS3”を利用可能な仮想マシン320a,320bと接続するネットワークIFの情報(“IF−S2”、“IF−S3”)を仮想ルータ310に送信する。該ネットワークIFの情報は、雛型の<SaaS>の設定に相当する。
【0147】
[ステップS41]ルール設定部317は、フィルタ雛型を受信する。ルール管理部130は、ルール管理部130から受信した“<Local>”の設定と“<SaaS>”の設定との組ごとにフィルタルールを生成する。具体的には、ルール設定部317は、フィルタ雛型とともに“<Local>”の設定として“IF−S1”を受信している。また、“<SaaS>”の設定として“IF−S2”、“IF−S3”を受信している。よって、(<Local>,<SaaS>)の組として、2つの組(IF−S1,IF−S2)、(IF−S1,IF−S3)が得られる。ルール設定部317は、フィルタ雛型テーブル113の“<Local>”を“IF−S1”に、“<SaaS>”を“IF−S2”に置換したフィルタルールを生成してフィルタテーブル311bに設定する。同様に、ルール設定部317は、フィルタ雛型テーブル113の“<Local>”を“IF−S1”に、“<SaaS>”を“IF−S3”に置換したフィルタルールを生成してフィルタテーブル311bに設定する。
【0148】
[ステップS42]ルール設定部317は、仮想マシン間でのフィルタルールの設定が完了した旨をルール管理部130に通知する。ルール管理部130は、該通知により仮想マシン間でのフィルタルールの設定完了を受け付ける。
【0149】
このようにして、ルール管理部130は、仮想マシン間の通信をフィルタリングするためのフィルタ雛型を仮想ルータ310に送信する。このとき、仮想ルータ310は、フィルタ雛型に基づき、ユーザにより選択されたSaaS種別(例えば、“SaaS1”)と、該ユーザが利用中の他のSaaS種別(例えば、“SaaS2”、“SaaS3”)との組合わせごとのフィルタルールを生成する。
【0150】
これにより、第2の実施の形態と同様の効果を得られる。加えて、該ユーザが選択したサービスに対して、他のサービスとの間のフィルタルールを容易に設定可能となる。特に、ユーザが利用中のサービスが多数存在している場合に有効である。
【0151】
他のサービスとの間のフィルタルールを設定した後に、選択された仮想マシンに該サービスを利用するためのソフトウェアを実行させてもよい。このようにすれば、他のサービスとの間の通信につき、フィルタによるセキュリティを確保した状態で選択されたサービスの提供を開始できる。
【0152】
なお、上記の説明では、SaaS種別“SaaS1”のサービスが選択された場合の例を示した。一方、ユーザが“SaaS1”,“SaaS3”が利用中に“SaaS2”のサービスが選択された場合も同様にして、“SaaS2”と“SaaS1”との組および“SaaS2”と“SaaS3”との組に関する設定をフィルタテーブル311bに追加する。
【0153】
更に、ユーザがサービスの利用を中止することも考えられる。ユーザは、そのための操作を、例えば、ルータ装置500が提供するインタフェースにより行える。その場合、制御装置100は、該サービスの中止を受け付けた旨を仮想マシン管理装置200および該サービスを提供する仮想マシンの通信を中継する仮想ルータに通知する。すると、該仮想ルータは、そのサービスに対応するフィルタルールを削除する。例えば、SaaS種別“SaaS1”のサービスの利用を停止する場合、フィルタテーブル311bのFrom−IFおよびTo−IFの項目に、“IF−S1”が設定されたレコードを削除する。
【0154】
また、第2,第3の実施の形態では、サービスの選択を受け付けたとき、フィルタ雛型を仮想ルータに送信して該フィルタ雛型に基づくフィルタルールによる監視を行わせるものとした。しかしながら、送信するルールは、フィルタルールに限らない。例えば、IDS(Intrusion Detection System)やIPS(Intrusion Prevention System)に用いられる不正アクセスを検知するためのルール(シグネチャやアノマリと呼ばれることもある)の雛型をサービスごとに定義してもよい。このとき、雛型では、通信の宛先(To−IF)や送信元(From−IF)を示す箇所にフィルタ雛型テーブル112,113のように、“<Local>”、“<User>”、“<SaaS>”などの文字列を設定しておく。そして、サービスが選択されたときに、該サービスを利用するためのソフトウェアを実行させる仮想マシンに、該ルールの雛型を送信して、各文字列を各仮想マシンのネットワークIFの識別情報に置換させる。このようにすれば、フィルタルールと同様に、サービスごとの不正アクセス検知のためのルールを、仮想ルータに容易に設定することが可能となる。
【符号の説明】
【0155】
1,2 情報処理装置
1a 記憶部
1b 制御部
2a 仮想ルータ
2b 仮想マシン
【技術分野】
【0001】
本件は仮想マシンの運用管理を支援する情報処理装置、情報処理プログラムおよび管理方法に関する。
【背景技術】
【0002】
現在、情報処理の分野では、物理的なコンピュータ(物理マシンや物理ホストと呼ぶことがある)上で、複数の仮想的なコンピュータ(仮想マシンや論理ホストと呼ぶことがある)を動作させる仮想化技術が利用されている。各仮想マシン上では、OS(Operating System)などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。
【0003】
例えば、ハイパーバイザと呼ばれるソフトウェアが、CPU(Central Processing Unit)の処理能力やRAM(Random Access Memory)の記憶領域を、演算のリソースとして複数の仮想マシンに割り振る。また、例えば、ハイパーバイザが、該演算のリソースによりネットワークのルーティング機能を物理マシン上に実現することもある。物理マシン上に実現されたルーティング機能を仮想ルータと呼ぶことがある。仮想ルータに仮想マシンの通信を中継させることで、物理マシン上に仮想マシンのネットワークを構築できる。このように、物理マシン上で仮想マシンを動作させ、該仮想マシン上で実現されるサービスをクライアント装置から利用可能とする情報処理システムがある。
【0004】
ところで、ネットワークを介した通信のセキュリティを確保するため、ネットワークの経路上にファイアウォールを設けることがある。ファイアウォールは、ネットワーク上のトラフィックを所定のルールによりフィルタリングして、許容する通信経路やプロトコル以外の通信を遮断する。
【0005】
例えば、ユーザ端末装置がゲートウェイ装置を介して所定のネットワークに接続するとき、接続先のネットワークに対して予め定められたフィルタリングテーブルを該ゲートウェイ装置に設定して、トラフィックのフィルタリングを行わせる提案がある。
【0006】
また、例えば、ユーザ端末装置がファイアウォール装置を介して外部ネットワークに接続開始する際に、該ファイアウォール装置が、ポリシサーバ装置からユーザに対応するフィルタリングのルールを取得する提案がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−244245号公報(〔0038〕〜〔0042〕)
【特許文献2】国際公開第2004/71038号(32頁36行目〜33頁4行目)
【発明の概要】
【発明が解決しようとする課題】
【0008】
仮想マシン上のサービスをクライアント装置から利用可能とする情報処理システムでは、該サービスに応じて、仮想マシン/クライアント装置間、または、仮想マシン/仮想マシン間の通信内容が異なることがある。例えば、Webアクセスを可能とするサービスと、ファイル転送を可能とするサービスとでは、通信に用いるポート番号が異なることがある。このため、各仮想マシンに対して、サービスに応じた通信のセキュリティ対策がなされていることが望ましい。そこで、各仮想マシンにつき通信監視のルールをどのように容易に設定可能とするかが問題となる。
【0009】
例えば、仮想マシン上で利用可能とするサービスがユーザによって事後的に選択される場合、該サービスに応じたルールを事前に設定するのが困難となる。また、複数の物理マシン上で複数の仮想マシンが動作している場合、各仮想マシン上で利用可能なサービスに応じたルールの設定を、仮想マシンごと、または、物理マシンごとに、システム管理者が個別に行うとすると、設定のための作業負担が生ずる。
【0010】
本発明はこのような点に鑑みてなされたものであり、通信監視のルールを容易に設定できるようにした情報処理装置、情報処理プログラムおよび管理方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な他の情報処理装置と通信する情報処理装置が提供される。この情報処理装置は、記憶部と制御部とを有する。記憶部は、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する。制御部は、仮想マシン上で利用するサービスが選択されると、記憶部を参照して、選択された該サービスに応じた通信監視のルールを仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる。
【0012】
また、仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な情報処理装置と通信するコンピュータが実行する情報処理プログラムが提供される。この情報処理プログラムは、コンピュータに、仮想マシン上で利用するサービスが選択されると、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する記憶部を参照して、選択された該サービスに応じた通信監視のルールを仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる、処理を実行させる。
【0013】
また、仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な他の情報処理装置と通信する情報処理装置が実行する管理方法が提供される。この管理方法では、仮想マシン上で利用するサービスが選択されると、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する記憶部を参照して、選択された該サービスに応じた通信監視のルールを仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる。
【発明の効果】
【0014】
通信監視のルールを容易に設定できる。
【図面の簡単な説明】
【0015】
【図1】第1の実施の形態の情報処理システムを示す図である。
【図2】第2の実施の形態の情報処理システムを示す図である。
【図3】第2の実施の形態の制御装置のハードウェア例を示す図である。
【図4】第2の実施の形態の各装置の機能を示すブロック図である。
【図5】第2の実施の形態の仮想ルータの機能を示すブロック図である。
【図6】第2の実施の形態の接続リストテーブルの例を示す図である。
【図7】第2の実施の形態のフィルタ雛型テーブルの例を示す図である。
【図8】第2の実施の形態のフィルタテーブルの例を示す図である。
【図9】第2の実施の形態の仮想マシンの起動処理を示すフローチャートである。
【図10】第2の実施の形態の仮想マシンの起動処理を示すシーケンス図である。
【図11】第2の実施の形態のフィルタ設定処理を示すフローチャートである。
【図12】第2の実施の形態のフィルタ設定処理を示すシーケンス図である。
【図13】第3の実施の形態のフィルタ雛型テーブルの例を示す図である。
【図14】第3の実施の形態のフィルタテーブルの例を示す図である。
【図15】第3の実施の形態のフィルタ設定処理を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。この情報処理システムは、情報処理装置1,2を含む。情報処理装置1は、情報処理装置2と通信する。情報処理装置2では、仮想ルータ2aおよび仮想マシン2bが動作可能である。仮想ルータ2aは、仮想マシン2bの通信を中継する。
【0017】
情報処理装置1は、記憶部1aおよび制御部1bを有する。
記憶部1aは、サービスごとに定義された、仮想ルータによる通信監視のルールを記憶する。記憶部1aは、RAMやHDD(Hard Disk Drive)として実装してもよい。通信監視のルールとは、例えば、通信のフィルタリングを行うためのルールである。通信監視のルールには、例えば、仮想マシン上で利用されるサービスに応じたフィルタ内容が定義される。具体的には、該サービスで利用する通信ポート以外のポートでの通信を制限する設定が考えられる。また、該サービスで利用する伝送制御プロトコル(例えば、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol))以外のプロトコルでの通信を制限する設定が考えられる。
【0018】
制御部1bは、仮想マシン2b上で利用するサービスが選択されると、記憶部1aを参照して、選択された該サービスに応じた通信監視のルールを仮想ルータ2aに送信し、該通信監視のルールに基づく監視を行わせる。例えば、仮想マシン2b上で利用するサービスは、仮想マシン2bを利用するユーザにより選択される。ユーザは、例えば、情報処理装置1とネットワークを介して接続された端末装置を操作して、情報処理装置1にサービスの選択内容を入力できる。
【0019】
情報処理装置1によれば、仮想マシン2b上で利用するサービスが選択されると、制御部1bにより、記憶部1aが参照されて、選択された該サービスに応じた通信監視のルールが仮想ルータ2aに送信される。仮想ルータ2aは、該通信監視のルールを受信すると、該ルールに基づき通信監視を行う。
【0020】
これにより、通信監視のルールを容易に設定可能となる。具体的には、仮想マシン2bのサービスが選択されたときに、サービスごとに定義された通信監視のルールを、仮想マシン2bの通信を中継する仮想ルータ2aに送信することで、該サービスのためのルールを、仮想ルータ2aに容易に設定できる。複数の情報処理装置上で複数の仮想マシンが動作している場合でも、各仮想マシンに対して選択されたサービスに対するルールを自動的に取得し、各仮想マシンに対応する仮想ルータに送信する。このため、システム管理者による設定のための作業負担を軽減できる。
【0021】
通信監視のルールには、種々の内容を定義できる。例えば、仮想マシン2bとユーザが仮想ルータ2aを介して仮想マシン2bにアクセスするために利用する端末装置(または、該端末装置が属するネットワーク)との間でのフィルタを定義できる。これにより、該端末装置(または、該端末装置が属するネットワーク)と仮想マシン2bとの間で、選択されたサービスを利用する際の通信のセキュリティ向上を図れる。
【0022】
また、例えば、第1のサービスを実行する仮想マシン2bと第2のサービスを実行する他の仮想マシンとの間の通信路での通信を制限するフィルタを該ルールとして定義してもよい。このとき、制御部1bは、仮想マシン2bに対して第1のサービスが選択されたとき、該第1のサービスに応じたルールに加えて、第1,第2のサービスの組に関するルールを記憶部1aから取得して、仮想ルータ2aに送信してもよい。このようにすれば、相互に接続する仮想マシン間で、通信のセキュリティ向上を図れる。
【0023】
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。データセンタ20は、サービス事業者が運用する事業所である。ユーザ拠点30は、ユーザが運用する事業所である。サービス事業者は、データセンタ20上のサーバ装置で複数の仮想マシンを実行させ、該仮想マシンをユーザ拠点30から利用可能とする。具体的には、ユーザは、ユーザ拠点30に設置されたクライアント装置から該仮想マシン上のソフトウェアに所定の処理の実行を要求することで、該ソフトウェアにより実現されるサービスを利用できる。このようなソフトウェアの利用形態は、SaaS(Software as a Service)と呼ばれることがある。
【0024】
この情報処理システムは、制御装置100、仮想マシン管理装置200、実行サーバ装置300,300a、ゲートウェイ装置400,400a、ルータ装置500、クライアント装置600,600aおよび通信事業者サーバ装置700を含む。
【0025】
制御装置100、仮想マシン管理装置200、実行サーバ装置300,300aおよびゲートウェイ装置400,400aは、データセンタ20に設置されており、データセンタ20内のネットワーク21にそれぞれ接続されている。ルータ装置500およびクライアント装置600,600aは、ユーザ拠点30に設置されており、ユーザ拠点30内のネットワーク31にそれぞれ接続されている。通信事業者サーバ装置700は、通信事業者の事業所(図示を省略)に設置されており、ネットワーク10に接続される。ネットワーク10は、通信事業者の管理するIP(Internet Protocol)網である。ネットワーク10は、例えば、PPPoE(Point to Point Protocol over Ethernet)網である。
【0026】
制御装置100は、実行サーバ装置300,300a上の仮想ルータとルータ装置500との間のL2VPN(Layer2 Virtual Private Network)によるトンネル接続の確立を支援する情報処理装置である。これにより、クライアント装置600,600aから、該仮想ルータと通信する仮想マシンに対して、IP網を介したVPN接続を可能とする。
【0027】
仮想マシン管理装置200は、実行サーバ装置300,300a上の仮想マシンや仮想ルータの起動を制御する情報処理装置である。仮想マシン管理装置200は、何れの実行サーバ装置で何れの仮想マシンや仮想ルータが実行されているか管理する。仮想マシン管理装置200は、仮想ルータに設けられた仮想のネットワークIF(InterFace)の情報を管理する。
【0028】
実行サーバ装置300,300aは、仮想マシン管理装置200からの起動指示に応じて、仮想マシンおよび仮想ルータを実行する情報処理装置である。例えば、実行サーバ装置300,300aは、ハイパーバイザを実行する。ハイパーバイザは、仮想マシン管理装置200から仮想マシンや仮想ルータの起動の指示を受けると、実行サーバ装置300,300a上のリソースを用いて仮想マシンや仮想ルータを起動する。
【0029】
ゲートウェイ装置400,400aは、ネットワーク10とネットワーク21と間の通信を中継する通信装置である。
ルータ装置500は、ネットワーク10とネットワーク31との間の通信を中継する通信装置である。ルータ装置500は、サービス事業者から仮想マシンを割り当てられたユーザが、該仮想マシン上で利用したいサービスの選択を受け付ける機能も備えている。ルータ装置500は、サービスの選択内容を制御装置100に送信して、該サービスを該ユーザの仮想マシン上で利用可能とするよう依頼する。
【0030】
クライアント装置600,600aは、ユーザが利用する情報処理装置である。ユーザは、クライアント装置600,600aを操作して、実行サーバ装置300,300a上の仮想マシンに対して処理の要求を行える。例えば、クライアント装置600,600aからWebブラウザ、RDP(Remote Desktop Protocol)、VNC(Virtual Network Computing)、SSH(Secure SHell)およびFTP(File Transfer Protocol)などを用いて、実行サーバ装置300,300a上の仮想マシンを利用できる。
【0031】
通信事業者サーバ装置700は、制御装置100からの要求により、ゲートウェイ装置400,400aとルータ装置500とをネットワーク10に接続するための情報を提供する。例えば、通信事業者サーバ装置700は、ゲートウェイ装置400,400aおよびルータ装置500に、PPPoEのユーザID(IDentifier)やパスワードなどの情報を送信する。ゲートウェイ装置400,400aおよびルータ装置500は、提供された情報に基づいて、ネットワーク10上の所定の認証サーバでPPPoE認証され、ネットワーク10に接続する。また、通信事業者サーバ装置700は、例えば、ゲートウェイ装置400,400aおよびルータ装置500をIP−VPN接続するための情報を提供する。ゲートウェイ装置400,400aおよびルータ装置500は、提供された情報に基づいて、IP−VPN接続を確立する。
【0032】
図3は、第2の実施の形態の制御装置のハードウェア例を示す図である。制御装置100は、CPU101、ROM(Read Only Memory)102、RAM103、HDD104、グラフィック処理装置105、入力インタフェース106、ディスクドライブ107および通信インタフェース108を有する。
【0033】
CPU101は、OSやアプリケーションのプログラムを実行して、制御装置100全体を制御する。
ROM102は、制御装置100の起動時に実行されるBIOS(Basic Input / Output System)プログラムなどの所定のプログラムを記憶する。ROM102は、書き換え可能な不揮発性メモリであってもよい。
【0034】
RAM103は、CPU101が実行するOSやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101の処理に用いられるデータの少なくとも一部を一時的に記憶する。
【0035】
HDD104は、OSプログラムやアプリケーションプログラムを記憶する。また、HDD104は、CPU101の処理に用いられるデータを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の不揮発性の記憶装置を用いてもよい。
【0036】
グラフィック処理装置105は、モニタ11に接続される。グラフィック処理装置105は、CPU101からの命令に従って、画像をモニタ11に表示させる。
入力インタフェース106は、キーボード12やマウス13などの入力デバイスに接続される。入力インタフェース106は、入力デバイスから送られる入力信号をCPU101に出力する。
【0037】
ディスクドライブ107は、記録媒体14に格納されたデータを読み取る読取装置である。記録媒体14には、例えば、制御装置100に実行させるプログラムが記録されている。制御装置100は、例えば、記録媒体14に記録されたプログラムを実行することで、後述するような機能を実現できる。すなわち、当該プログラムはコンピュータ読み取り可能な記録媒体14に記録して配布可能である。
【0038】
記録媒体14としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
【0039】
通信インタフェース108は、ネットワーク10に接続される。通信インタフェース108は、ネットワーク21を介して仮想マシン管理装置200、実行サーバ装置300,300aおよびゲートウェイ装置400,400aとデータ通信を行える。また、通信インタフェース108は、ゲートウェイ装置400,400aおよびネットワーク10を介してルータ装置500および通信事業者サーバ装置700とデータ通信を行える。
【0040】
なお、仮想マシン管理装置200、実行サーバ装置300,300a、クライアント装置600,600aおよび通信事業者サーバ装置700も、制御装置100と同様のハードウェア構成により実現できる。
【0041】
また、以下の説明では、ゲートウェイ装置400,400aのうち、ゲートウェイ装置400を主に示して説明するが、ゲートウェイ装置400aも同様である。
図4は、第2の実施の形態の各装置の機能を示すブロック図である。制御装置100は、制御情報記憶部110、接続制御部120およびルール管理部130を有する。制御装置100の構成要素の機能は、例えばCPU101が所定のプログラムを実行することにより、制御装置100上に実現される。制御装置100の構成要素の機能の全部または一部を専用のハードウェアで実装してもよい。
【0042】
制御情報記憶部110は、制御情報を記憶する。制御情報には、接続リストテーブルおよびフィルタ雛型テーブルが含まれる。接続リストテーブルは、ユーザの識別情報と該ユーザが現在利用中のサービスの識別情報とを対応付けたデータである。フィルタ雛型テーブルは、サービスごとのデフォルトのフィルタルールを設定したものである。
【0043】
接続制御部120は、ルータ装置500と実行サーバ300,300a上の仮想ルータとの接続を制御する。具体的には、接続制御部120は、ルータ装置500からの要求により、ルータ装置500に対するゲートウェイ装置400,400aの割り当てを仮想マシン管理装置200に指示する。また、接続制御部120は、ルータ装置500からの要求により、実行サーバ装置300,300a上の仮想マシンおよび仮想ルータの起動を仮想マシン管理装置200に指示する。そして、接続制御部120は、実行サーバ装置300,300a上の仮想ルータとルータ装置500との間のL2VPN接続を確立する。
【0044】
より具体的には、接続制御部120は、通信事業者サーバ装置700と連携して、ゲートウェイ装置400とネットワーク10との間のPPPoE接続を開始させる。また、接続制御部120は、通信事業者サーバ装置700と連携して、ルータ装置500とネットワーク10との間のPPPoE接続を開始させる。接続制御部120は、ゲートウェイ装置400とルータ装置500とをIP−VPNで接続させる。
【0045】
更に、接続制御部120は、仮想ルータとルータ装置500との間のEtherIP(Ethernet over IP)によるトンネル接続を開始させる。仮想ルータやルータ装置500は、クライアント装置600,600aと実行サーバ装置300,300a上の仮想マシンとの間のEthernet(登録商標)フレームをEtherIPによりカプセル化して通信を行う。L2VPN接続により、通信事業者のIP網であるネットワーク10を介して、クライアント装置600,600aと仮想マシンとの間のVPN接続が可能となる。
【0046】
更に、接続制御部120は、ユーザによるサービスの選択内容をルータ装置500から受信する。接続制御部120は、サービスの選択内容をルール管理部130および起動制御部220に送信する。サービスの選択内容には、ユーザに割り当てられた何れの仮想マシンで、何れのサービスを選択したかを示す情報が含まれる。
【0047】
ルール管理部130は、実行サーバ装置300,300a上の仮想ルータに通信監視用のルールを送信する。具体的には、ルール管理部130は、ユーザによるサービスの選択内容を接続制御部120から受信したとき、該サービス応じたルールを制御情報記憶部110から取得して、該ユーザに割り当てた仮想マシンに対応する仮想ルータに送信する。
【0048】
仮想マシン管理装置200は、管理情報記憶部210および起動制御部220を有する。仮想マシン管理装置200の構成要素の機能は、例えば仮想マシン管理装置200が備えるCPUが所定のプログラムを実行することにより、仮想マシン管理装置200上に実現される。仮想マシン管理装置200の構成要素の機能の全部または一部を専用のハードウェアで実装してもよい。
【0049】
管理情報記憶部210は、管理情報を記憶する。管理情報には、実行サーバ装置300,300aおよびゲートウェイ装置400,400aに関する情報が含まれる。具体的には、実行サーバ装置300,300a上で利用可能なリソースの情報、実行中の仮想マシンのユーザへの割り当て状況を示す情報、実行中の仮想マシンと仮想ルータとの対応を示す情報および各仮想ルータ上の仮想のネットワークIFを示す情報が含まれる。また、管理情報には、ゲートウェイ装置400,400a上で利用可能なリソースの情報や、ゲートウェイ装置400,400aのユーザへの割り当て状況を示す情報が含まれる。
【0050】
起動制御部220は、ユーザに対するゲートウェイ装置400,400aの割り当て指示を接続制御部120から受け付ける。すると、起動制御部220は、管理情報記憶部210を参照して、該ユーザに対するゲートウェイ装置400,400aの割り当てを行う。起動制御部220は、該ユーザと割り当てたゲートウェイ装置との対応を管理情報記憶部210に記録する。
【0051】
起動制御部220は、ユーザに対する仮想マシンの起動指示を接続制御部120から受け付ける。すると、起動制御部220は、管理情報記憶部210を参照して、仮想マシンおよび仮想ルータを起動させる実行サーバ装置を選択する。起動制御部220は、選択した実行サーバ装置に仮想マシンおよび仮想ルータを起動させる。起動制御部220は、該ユーザ、割り当てた実行サーバ装置、仮想マシンおよび仮想ルータの対応を管理情報記憶部210に記録する。起動制御部220は、管理情報記憶部210を参照して、接続制御部120からの問い合わせに応じる。例えば、実行サーバ装置、仮想マシンおよび仮想ルータの対応関係、仮想ルータと該仮想ルータ上の仮想のネットワークIFとの対応関係、仮想マシンとネットワークIFとの対応関係などの問い合わせに応じることができる。
【0052】
更に、起動制御部220は、ユーザによるサービスの選択内容を接続制御部120から受信すると、該ユーザに割り当てられた仮想マシンに該サービスを利用するためのソフトウェアを実行させる。
【0053】
実行サーバ装置300は、仮想ルータ310および仮想マシン320,320aを有する。実行サーバ装置300の構成要素の機能は、例えば実行サーバ装置300が備えるCPUが所定のプログラムを実行することにより、実行サーバ装置300上に実現される。実行サーバ装置300の構成要素の機能の全部または一部を専用のハードウェアで実装してもよい。
【0054】
仮想ルータ310は、ネットワーク21と仮想マシン320,320aとの間の通信を中継する。仮想ルータ310は、中継する通信データを監視する。具体的には、仮想ルータ310は、ルール管理部130から取得したフィルタルールに基づき通信のフィルタリングを行う。
【0055】
仮想マシン320,320aは、実行サーバ装置300上に実現された仮想マシンである。仮想マシン320,320aは、それぞれ独立にOSを実行している。仮想マシン320,320aが実行するOSは同一でもよいし、異なっていてもよい。仮想マシン320,320aは、それぞれが所定のサービスを利用するためのソフトウェアを実行する。仮想マシン320,320aで何れのサービスを利用可能とするかは、上述したようにユーザの選択により決定される。
【0056】
実行サーバ装置300aは、仮想ルータ310aおよび仮想マシン320b,320cを有する。仮想ルータ310aは、ネットワーク21と仮想マシン320bとの間の通信を中継する。また、仮想ルータ310aは、中継する通信データを監視する。仮想マシン320b,320cは、実行サーバ装置300a上に実現された仮想マシンであり、それぞれが所定のサービスを利用可能とするためのソフトウェアを実行する。
【0057】
ゲートウェイ装置400は、通信処理部410を有する。通信処理部410は、接続制御部120から取得した情報に基づいて、ネットワーク10とPPPoE接続を確立する。また、通信処理部410は、ルータ装置500との間でIP−VPN接続を確立する。
【0058】
ルータ装置500は、通信処理部510を有する。通信処理部510は、接続制御部120から取得した情報に基づいて、ネットワーク10、ゲートウェイ装置400および仮想ルータ310,310aとの間のL2VPN接続を確立する。また、通信処理部510は、サービスを選択するためのインタフェースをクライアント装置600,600aに提供する。ユーザは、該インタフェースにより、自身の利用したいサービスを選択する。通信処理部510は、サービスの選択内容を制御装置100に送信する。
【0059】
図5は、第2の実施の形態の仮想ルータの機能を示すブロック図である。仮想ルータ310は、ルール記憶部311、ネットワークIF312,313,314、トンネル処理部315、フィルタ処理部316およびルール設定部317を有する。
【0060】
ルール記憶部311は、制御装置100から受信した通信監視のためのルールを記憶する。
ネットワークIF312,313,314は、仮想ルータ310上に実現された仮想的なネットワークIFである。ネットワークIF312は、仮想マシン320と通信する。ネットワークIF313は、仮想マシン320aと通信する。
【0061】
ここで、以下の説明では、ネットワークIF312,313〜仮想マシン320,320aまでのネットワークを、仮想マシン側のネットワークということがある。ネットワークIF314は、ネットワーク21を介してゲートウェイ装置400と通信する。ネットワークIF314〜ゲートウェイ装置400〜ユーザ拠点30までのネットワークを、ユーザ側のネットワークということがある。
【0062】
トンネル処理部315は、EtherIPによるトンネル接続を終端する。具体的には、トンネル処理部315は、EtherIPによりカプセル化された通信データをネットワークIF314から取得すると、該通信データからEthernetフレームを取出して、フィルタ処理部316に出力する。また、トンネル処理部315は、フィルタ処理部316から取得したEthernetフレームをEtherIPによりカプセル化して、ネットワークIF314に出力する。
【0063】
フィルタ処理部316は、Ethernetフレームを監視して、ユーザ側のネットワークと仮想マシン側のネットワークの間の通信を制限する。具体的には、フィルタ処理部316は、ルール記憶部311に記憶されたフィルタルールに基づいて宛先や送信元の情報およびポート番号などによるフィルタリングを行う。
【0064】
ルール設定部317は、通信監視のためのルールを制御装置100から受信して、ルール記憶部311に格納する。ルール設定部317は、ルール記憶部311に既存のルールが格納されている場合には、新たに受信したルールにより既存のルールを更新する。
【0065】
ルール設定部317は、専用の仮想ネットワークIFを備え、ネットワーク21および制御装置100と該仮想ネットワークIFで通信する。ただし、フィルタ処理部316およびルール設定部317は、ネットワークIF314を介して制御装置100と通信してもよい。
【0066】
図6は、第2の実施の形態の接続リストテーブルの例を示す図である。接続リストテーブル111は、制御情報記憶部110に格納される。接続リストテーブル111には、ユーザID、SaaS種別およびネットワークIFを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのユーザに関する情報を示す。
【0067】
ユーザIDの項目には、ユーザIDが設定される。ユーザIDは、ユーザ拠点30を運営する事業者を識別する情報である。SaaS種別の項目には、サービスを示す識別情報が設定される。ネットワークIFの項目には、仮想ルータ310,310aにおける仮想マシン側のネットワークIFの識別情報が設定される。
【0068】
ここで、ユーザ拠点30を運営する事業者のユーザIDを“User1”とする。他のユーザ拠点を運営する事業者のユーザIDを“User2”とする。
また、仮想マシン320上で利用されているサービスのSaaS種別を“SaaS1”とする。仮想マシン320a上で利用されているサービスのSaaS種別を“SaaS2”とする。仮想マシン320b上で利用されているサービスのSaaS種別を“SaaS3”とする。仮想マシン320c上で利用されているサービスのSaaS種別を“SaaS4”とする。
【0069】
更に、ネットワークIF312の識別情報を“IF−S1”とする。ネットワークIF313の識別情報を“IF−S2”とする。仮想マシン320bと接続する仮想ルータ310a上のネットワークIFの識別情報を“IF−S3”とする。仮想マシン320cと接続する仮想ルータ310a上のネットワークIFの識別情報を“IF−S4”とする。例えば、各ネットワークIFの識別情報は、各ネットワークIFの属するネットワーク上のIPアドレスとしてもよい。
【0070】
例えば、接続リストテーブル111には、ユーザIDが“User1”、SaaS種別が“SaaS1”、ネットワークIFが“IF−S1”という情報が設定される。これは、ユーザ拠点30を運営する事業者(“User1”)がSaaS種別“SaaS1”のサービスを利用していることを示す。また、該サービスを利用するために仮想ルータ310上のネットワークIF312(“IF−S1”)を介して通信していることを示す。
【0071】
図7は、第2の実施の形態のフィルタ雛型テーブルの例を示す図である。フィルタ雛型テーブル112,112a,・・・は、SaaS種別ごとのフィルタルールの雛型(以下、フィルタ雛型という)を定義したものであり、制御情報記憶部110に格納される。フィルタ雛型テーブル112,112a,・・・は、仮想マシン側ネットワークとユーザ側ネットワークとの間のフィルタを定義したものである。フィルタ雛型テーブル112は、SaaS種別“SaaS1”に対するフィルタ雛型を定義したものである。フィルタ雛型テーブル112aは、SaaS種別“SaaS2”に対するフィルタ雛型を定義したものである。以下、フィルタ雛型テーブル112を説明するが、フィルタ雛型テーブル112a,・・・についても同様である。
【0072】
フィルタ雛型テーブル112には、Fromポート、Toポート、Protocol、From−IF、To−IFおよび許可/禁止の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのフィルタ雛型を示す。
【0073】
Fromポートの項目には、送信元のポート番号が設定される。Toポートの項目には、宛先のポート番号が設定される。Protocolの項目には、プロトコルの種別が設定される。From−IFの項目には、ユーザ側のネットワークと接続するネットワークIFの識別情報が設定される。To−IFの項目には、仮想マシン側のネットワークと接続するネットワークIFの識別情報が設定される。許可/禁止の項目には、通信を許可するか禁止するかを示す情報が設定される。
【0074】
例えば、フィルタ雛型テーブル112には、Fromポートが“80”、Toポートが“*”、Protocolが“TCP”、From−IFが“<Local>”、To−IFが“<User>”、許可/禁止が“Permit”という情報が設定される。これは、仮想マシン側のネットワークからユーザ側のネットワークに対するポート番号80でのTCPによる通信(HTTP(Hypertext Transfer Protocol)の通信)を許可することを示す。
【0075】
また、例えば、フィルタ雛型テーブル112には、Fromポートが“*”、Toポートが“80”、Protocolが“TCP”、From−IFが“<User>”、To−IFが“<Local>”、許可/禁止が“Permit”という情報が設定される。これは、ユーザ側のネットワークから仮想マシン側のネットワークに対するポート番号80でのTCPによる通信(HTTPの通信)を許可することを示す。
【0076】
また、例えば、フィルタ雛型テーブル112には、Fromポートが“*”、Toポートが“*”、Protocolが“TCP”、From−IFが“<Local>”、To−IFが“<User>”、許可/禁止が“Deny”という情報が設定される。これは、これは、仮想マシン側のネットワークからユーザ側のネットワークに対する全ての通信を禁止することを示す。
【0077】
また、例えば、フィルタ雛型テーブル112には、Fromポートが“*”、Toポートが“*”、Protocolが“TCP”、From−IFが“<User>”、To−IFが“<Local>”、許可/禁止が“Deny”という情報が設定される。これは、これは、ユーザ側のネットワークから仮想マシン側のネットワークに対する全ての通信を禁止することを示す。
【0078】
フィルタ雛型テーブル112では、上に記述されたルール程優先度が高い。すなわち、フィルタ雛型テーブル112によれば、HTTPの通信は、ユーザ側のネットワークと仮想マシン側のネットワークとの双方向で許可されるが、それ以外の通信は全て遮断されることを示す。
【0079】
なお、仮想ルータは、フィルタ雛型テーブル112で定義されたフィルタ雛型を取得すると、自身が備えるネットワークIFの識別情報をあてはめて、該仮想ルータ用のフィルタルールを生成する。具体的には、“<Local>”には、SaaS種別“SaaS1”のサービスを提供する仮想マシンと接続するネットワークIFの識別情報をあてはめる。“<User>”には、ユーザ側のネットワークと接続するネットワークIFの識別情報をあてはめる。次に、このようにして生成された仮想マシン320用のフィルタルール(フィルタテーブル)を例示する。
【0080】
図8は、第2の実施の形態のフィルタテーブルの例を示す図である。フィルタテーブル311aは、ルール記憶部311に格納される。フィルタテーブル311aは、フィルタ雛型テーブル112で定義されたフィルタ雛型を仮想ルータ310が取得した場合を例示している。フィルタテーブル311aには、Fromポート、Toポート、Protocol、From−IF、To−IFおよび許可/禁止の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのフィルタルールを示す。ここで、各項目の内容は、図7で説明したフィルタ雛型テーブル112の各項目の内容と同様である。
【0081】
フィルタテーブル311aとフィルタ雛型テーブル112とでは、From−IFおよびTo−IFの設定内容が相違する。フィルタテーブル311aでは、フィルタ雛型テーブル112中“<Local>”であった箇所が、仮想マシン320と接続するネットワークIF312の識別情報“IF−S1”に置換されている。また、フィルタテーブル311aでは、フィルタ雛型テーブル112中“<User>”であった箇所が、ネットワークIF314の識別情報“IF−U1”に置換されている。
【0082】
フィルタ処理部316は、フィルタテーブル311aを参照して、フィルタリングを行う。
次に、以上の構成の情報処理システムの処理手順を説明する。
【0083】
図9は、第2の実施の形態の仮想マシンの起動処理を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。
[ステップS11]通信処理部510は、ルータ装置500がネットワーク10と物理的に接続されると(例えば、WAN(Wide Area Network)ポートをネットワーク線で接続)、既定の接続情報によりネットワーク10との接続を確立する。更に、通信処理部510は、既定の接続情報によりゲートウェイ装置400との間のIP−VPN接続を初期設定用に確立する。既定の接続情報は、例えば、ネットワーク10とPPPoE接続するためのIDやパスワード、IP−VPNグループの情報などを含むものであり、ルータ装置500の工場出荷時などにルータ装置500が備えるメモリに記録される。なお、ゲートウェイ装置400は、ネットワーク10との間で少なくとも1つのPPPoE接続を、初期設定用に常時開設している。
【0084】
[ステップS12]通信処理部510は、制御装置100に接続通知を行う。接続通知には、起動する仮想マシンの情報(例えば、OSの種別、CPUの性能、メモリやHDDの容量などを指定する情報)およびユーザの識別情報が含まれる。仮想マシンの情報は、ルータ装置500の工場出荷時などにルータ装置500が備えるメモリに記録される。接続通知には、例えば、HTTPのリクエストを利用できる。具体的には、通信処理部510は、制御装置100のURL(Uniform Resource Locator)を指定したHTTPのPUTリクエストを利用して、起動する仮想マシンの情報を含む接続通知を行う。接続制御部120は、ルータ装置500から接続通知を受信する。例えば、接続制御部120は、Webサーバ機能を有し、ルータ装置500がHTTPリクエストとして送信した接続通知を受信する。
【0085】
[ステップS13]接続制御部120は、起動制御部220に対して実運用で利用する接続を確立するためのゲートウェイ装置の割り当てを依頼する。また、接続制御部120は、接続通知で指定された仮想マシンの要件を満たせる実行サーバ装置の割り当てを依頼する。起動制御部220は、管理情報記憶部210を参照して、該ユーザに対して、ゲートウェイ装置および実行サーバ装置の割り当てを行う。例えば、起動制御部220は、該ユーザに対してゲートウェイ装置400および実行サーバ装置300を割り当てたとする。接続制御部120は、ゲートウェイ装置400とルータ装置500との間のIP−VPN接続を確立する。
【0086】
[ステップS14]起動制御部220は、実行サーバ装置300に仮想マシン320と、該仮想マシンに対する通信を中継させるための仮想ルータ310を起動させる。起動制御部220は、仮想ルータ310および仮想マシン320の起動が完了したことを実行サーバ装置300に確認すると、接続制御部120にその旨を通知する。ここで、起動された仮想ルータ310および仮想マシン320が該ユーザに割り当てられる。
【0087】
[ステップS15]接続制御部120は、ステップS14で起動された仮想ルータ310とルータ装置500との間のL2VPN接続を確立する。接続制御部120は、L2VPN接続を確立した後、ゲートウェイ装置400とルータ装置500との間の初期設定用のIP−VPN接続を切断させる。また、ルータ装置500とネットワーク10との間の初期設定用のPPPoE接続を切断させる。
【0088】
上記処理につき、装置間の関連をシーケンス図で説明する。
図10は、第2の実施の形態の仮想マシンの起動処理を示すシーケンス図である。以下、図10に示す処理をステップ番号に沿って説明する。
【0089】
[ステップST101]ルータ装置500は、ネットワーク10に接続する。すると、ルータ装置500は、既定のIDおよびパスワードにより、PPPoE認証を行い、PPPoE網に接続する。また、ルータ装置500は、既定のIP−VPNグループ情報により、ゲートウェイ装置400との間のIP−VPN接続を確立する。
【0090】
[ステップST102]ルータ装置500は、制御装置100に接続通知を送信する。接続通知には、起動する仮想マシンの情報やユーザIDが含まれる。
[ステップST103]ルータ装置500は、該ユーザに対する実行サーバ装置およびゲートウェイ装置の割当を、仮想マシン管理装置200に依頼する。
【0091】
[ステップST104]仮想マシン管理装置200は、実行サーバ装置300およびゲートウェイ装置400を割り当てると、割当結果を制御装置100に通知する。
[ステップST105]制御装置100は、IP−VPN用のPPPoE接続情報(IDおよびパスワード)とIP−VPNグループの接続情報とを、2組分、通信事業者サーバ装置700から取得する。制御装置100は、そのうちの1組をルータ装置500に送信する。
【0092】
[ステップST106]制御装置100は、ステップST105で取得したPPPoE接続情報およびIP−VPNグループの接続情報のうちのもう一方の1組をゲートウェイ装置400に送信する。
【0093】
[ステップST107]ルータ装置500およびゲートウェイ装置400は、制御装置100から受信したPPPoE接続情報とIP−VPNグループの情報により、IP−VPN接続を確立する。
【0094】
[ステップST108]制御装置100は、仮想マシン管理装置200に、仮想マシンおよび仮想ルータの起動指示を送信する。
[ステップST109]仮想マシン管理装置200は、割り当てた実行サーバ装置300に対して、仮想ルータ310および仮想マシン320の起動を指示する。
【0095】
[ステップST110]実行サーバ装置300は、仮想ルータ310および仮想マシン320の起動が完了すると、仮想マシン管理装置200に起動完了を通知する。
[ステップST111]仮想マシン管理装置200は、実行サーバ装置300上で、仮想ルータ310および仮想マシン320の起動が完了した旨を、制御装置100に通知する。
【0096】
[ステップST112]制御装置100は、仮想ルータ310およびルータ装置500の間のL2VPN接続を確立する。具体的には、制御装置100は仮想ルータ310のIPアドレスをルータ装置500に送信して、該IPアドレスに対するEthernetフレームのEtherIPによるカプセル化のための設定を行わせる。また、制御装置100は、ルータ装置500のIPアドレスを仮想ルータ310に送信して、該IPアドレスに対するEthernetフレームのEtherIPによるカプセル化のための設定を行わせる。制御装置100は、L2VPN接続が確立されると、ステップST101で確立された初期設定用のIP−VPN接続や初期設定用のPPPoE接続を切断させる。
【0097】
このようにして、制御装置100は、ルータ装置500とゲートウェイ装置400との間で確立された初期設定用のIP−VPN接続により、ルータ装置500から接続通知を受け付ける。制御装置100は、通信事業者サーバ装置700より、実運用で用いるためのIP−VPN接続のための情報を取得し、ルータ装置500とゲートウェイ装置400との間で該IP−VPN接続を確立させる。制御装置100は、仮想ルータ310が起動すると、仮想ルータ310とルータ装置500との間のL2VPN接続を確立させる。
【0098】
なお、上記ステップST105〜ST107およびステップST108〜ST111の処理は並行に実行されてもよい。
図11は、第2の実施の形態のフィルタ設定処理を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
【0099】
[ステップS21]接続制御部120は、ルータ装置500からユーザが選択したサービスを受け付ける。接続制御部120は、ルール管理部130および起動制御部220に、該ユーザによるサービスの選択内容を送信する。サービスの選択内容には、該ユーザに割り当てられた仮想マシンを指定する情報およびサービスのSaaS種別が含まれる。仮想マシン320を指定する情報およびSaaS種別“SaaS1”を示す情報が含まれるとする。
【0100】
[ステップS22]ルール管理部130は、制御情報記憶部110を参照して、選択されたサービスのSaaS種別に対応するフィルタ雛型を選択する。選択されたサービスのSaaS種別が“SaaS1”であるので、ルール管理部130はフィルタ雛型テーブル113を選択する。
【0101】
[ステップS23]ルール管理部130は、指定された仮想マシンの通信を中継する仮想ルータを選択する。例えば、仮想マシン320が指定されている場合、仮想ルータ310を選択する。ルール管理部130は、仮想マシン320に対応する仮想ルータおよび仮想マシン320と接続するネットワークIFを起動制御部220に問い合わせてもよい。
【0102】
[ステップS24]ルール管理部130は、ステップS22で選択したフィルタ雛型を仮想ルータ310に送信する。このとき、ルール管理部130は、SaaS種別“SaaS1”のサービスを利用可能な仮想マシン320と接続するネットワークIF312の情報(“IF−S1”)を仮想ルータ310に通知する。ネットワークIF312の情報は、雛型の<Local>の設定に相当する。
【0103】
[ステップS25]ルール設定部317は、フィルタ雛型を受信する。ルール設定部317は、フィルタ雛型のFrom−IFおよびTo−IFの項目に記述された“<Local>”の文字列をネットワークIF312を示す“IF−S1”に置換する。また、ルール設定部317は、該各項目に記述された“<User>”の文字列をユーザ側ネットワークと接続するネットワークIF314を示す“IF−U1”に置換する。ルール設定部317は、このようにして生成したフィルタルールをルール記憶部311のフィルタテーブル311aに設定する。
【0104】
[ステップS26]ルール設定部317は、フィルタルールの設定が完了した旨をルール管理部130に通知する。ルール管理部130は、該通知によりフィルタルールの設定完了を受け付ける。
【0105】
[ステップS27]ルール管理部130は、制御情報記憶部110に記憶された接続リストテーブル111を更新する。具体的には、ルール管理部130は、新たに選択されたサービスのSaaS種別とユーザとそのユーザが利用するネットワークIFとの対応関係を設定する。より具体的には、上記ステップS21〜S26の処理に対して、ルール管理部130は、ユーザ“User1”、SaaS種別“SaaS1”、ネットワークIF“IF−S1”の対応関係を接続リストテーブル111に設定する。
【0106】
このようにして、ルール管理部130は、選択されたサービスのSaaS種別に応じたフィルタルールを選択して、仮想ルータ310に送信する。
上記処理につき装置間の関連をシーケンス図で説明する。
【0107】
図12は、第2の実施の形態のフィルタ設定処理を示すシーケンス図である。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップST121]クライアント装置600は、ユーザ(“User1”)によるサービスの選択内容を受け付ける。サービスの選択内容には、該ユーザにより指定された仮想マシン320を示す情報およびサービスのSaaS種別“SaaS1”が含まれる。クライアント装置600は、サービスの選択内容をルータ装置500に入力する。ルータ装置500は、サービスの選択内容を、ゲートウェイ装置400を介して制御装置100に送信する。
【0108】
[ステップST122]制御装置100は、選択されたサービスのSaaS種別“SaaS1”に応じたフィルタ雛型テーブル112を制御情報記憶部110から取得する。制御装置100は、フィルタ雛型テーブル112のフィルタ雛型(ルール)を実行サーバ装置300上の仮想ルータ310に送信する。
【0109】
[ステップST123]仮想ルータ310は、受信したフィルタ雛型に、自身が備えるネットワークIFの情報をあてはめてフィルタルールを生成し、ルール記憶部311のフィルタテーブル311aに設定する。仮想ルータ310は、フィルタルールの設定が完了した旨を制御装置100に通知する。仮想ルータ310は、該フィルタルールによるフィルタリングを開始する。
【0110】
[ステップST124]制御装置100は、仮想マシン管理装置200にサービスの選択内容を通知する。仮想マシン管理装置200は、該通知に基づき、実行サーバ装置300上の仮想マシン320に、該サービスを利用するためのソフトウェアを実行させる。
【0111】
[ステップST125]制御装置100は、ユーザ“User1”とSaaS種別“SaaS1”とネットワークIF“IF−S1”との対応関係を制御情報記憶部110の接続リストテーブル111に設定する。
【0112】
[ステップST126]クライアント装置600は、ユーザによる操作を受け付け、実行サーバ装置300上の仮想マシン320で実行されるソフトウェアに処理要求を送信する。こうして、該ユーザは、該ソフトウェアにより実現されるサービスを利用可能となる。
【0113】
このようにして、制御装置100は、ユーザにより選択されたサービスに応じたフィルタルールを、仮想ルータ310に送信する。
これにより、通信監視のルールを容易に設定可能となる。具体的には、仮想マシン320上のサービスが選択されたときに、サービスごとに定義されたフィルタ雛型を、仮想マシン320の通信を中継する仮想ルータ310に送信することで、該サービスのためのルールを、仮想ルータ310に容易に設定できる。複数の情報処理装置上で複数の仮想マシンが動作している場合でも、各仮想マシンに対して選択されたサービスに対するルールを自動的に取得し、各仮想マシンに対応する仮想ルータに送信する。このため、システム管理者による設定のための作業負担を軽減できる。また、上記情報処理システムのように、仮想マシン上で利用するサービスが、ユーザにより事後的に選択される場合でも、選択されたサービスに応じた適切なルールを仮想ルータに容易に設定可能となる。
【0114】
また、セキュリティの観点からは、上述のように該サービスが利用可能となる前に、仮想ルータ310にフィルタルールが設定されていることが好ましい。すなわち、仮想マシン管理装置200は、フィルタルール設定完了後のステップST124で仮想マシン320に該ソフトウェアの実行を指示する。フィルタルールが設定されるまで、該サービスへの通信を適切にフィルタリングできないためである。このようにすれば、サービスに対する通信の安全性を事前に確保した状態で、サービスの利用を開始することができる。ただし、ステップST122の前にステップST124を実行してもよい。
【0115】
ここで、第2の実施の形態の情報処理システムでは、ユーザ拠点30のネットワーク31と仮想マシン320,320a,320bがVPN接続される。このため、これらの仮想マシンは、ネットワーク31(イントラネット)の延長上に接続された形態となる。その場合、通信のセキュリティ機能をどのように確保するか問題となる。例えば、ユーザ側の責任において設定させる場合、ユーザに対してフィルタ設定のための知識を要求することになる。一方、サービス事業者側の責任において設定する場合、多数の仮想マシンが稼働し得る情報処理システムにおいて、設定のための作業負担が問題となる。これに対し、上述のように、サービスが選択されたときに、該サービスに応じたフィルタ雛型を仮想ルータに送信することで、ユーザ側/サービス事業者側の負担を軽減して、通信のセキュリティを容易に確保できる。
【0116】
第2の実施の形態のフィルタ雛型テーブル112,112a,・・・では、仮想マシン側ネットワークとユーザ側ネットワークとの間のフィルタルールを例示した。該フィルタルールによって、これらネットワーク間での通信のセキュリティ向上を図れる。
【0117】
更に、ユーザがサービスの利用を中止することも考えられる。ユーザは、そのための操作を、例えば、ルータ装置500が提供するインタフェースにより行える。その場合、制御装置100は、該サービスの中止を受け付けた旨を仮想マシン管理装置200および該サービスを提供する仮想マシンの通信を中継する仮想ルータに通知する。すると、該仮想ルータは、そのサービスに対応するフィルタルールを削除する。例えば、SaaS種別“SaaS1”のサービスの利用を停止する場合、フィルタテーブル311aのFrom−IFの項目に、“IF−S1”が設定されたレコードを削除する。
【0118】
[第3の実施の形態]
次に、第3の実施の形態を説明する。前述の第2の実施の形態との相違点を主に説明し、同様の事項の説明を省略する。
【0119】
第2の実施の形態では、仮想マシン側ネットワークとユーザ側ネットワークとの間のフィルタルールの設定を例示した。ここで、仮想マシンでサービスを利用可能とするために、該仮想マシンから、そのユーザに割り当てられた他の仮想マシンと通信することもある。その場合、仮想マシン間の通信でもフィルタリングを行うことが好ましい。第3の実施の形態では、仮想マシン間でのフィルタルールを容易に設定可能とする方法を提供する。
【0120】
ここで、第3の実施の形態の情報処理システムの構成は、図2で説明した第2の実施の形態の情報処理システムの構成と同様である。第3の実施の形態では、第2の実施の形態と同一の符号・名称により、各装置および各装置の構成要素を指し示す。
【0121】
図13は、第3の実施の形態のフィルタ雛型テーブルの例を示す図である。フィルタ雛型テーブル113,113a,・・・は、あるSaaS種別のサービスを実行する仮想マシンと該SaaS種別のサービスが連携する他のサービスを実行する他の仮想マシンとの間のフィルタ雛型を定義したものである。すなわち、フィルタ雛型テーブル113,113a,・・・は、仮想マシン側ネットワークでのフィルタを定義したものである。フィルタ雛型テーブル113,113a,・・・は、制御情報記憶部110に格納される。
【0122】
フィルタ雛型テーブル113は、SaaS種別“SaaS1”と他のSaaS種別との連携に対するフィルタ雛型を定義したものである。フィルタ雛型テーブル113aは、SaaS種別“SaaS2”と他のSaaS種別との連携に対するフィルタ雛型を定義したものである。以下、フィルタ雛型テーブル113を説明するが、フィルタ雛型テーブル113a,・・・についても同様である。
【0123】
フィルタ雛型テーブル113には、Fromポート、Toポート、Protocol、From−IF、To−IF、Flagおよび許可/禁止の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのフィルタ雛型を示す。ここで、Flagの項目以外の各項目の内容は、図7で説明した第2の実施の形態のフィルタ雛型テーブル112の各項目の内容と同様である。
【0124】
Flagの項目には、TCPによる発呼方向などを制限するための情報が設定される。
例えば、フィルタ雛型テーブル113には、Fromポートが“*”、Toポートが“*”、Protocolが“TCP”、From−IFが“<Local>”、To−IFが“<SaaS>”、Flagが“NEW,Established”、許可/禁止が“Permit”という情報が設定される。これは、仮想ルータにおいて、SaaS種別“SaaS1”のネットワークIFから、他のSaaS種別のサービスを提供する仮想マシンが接続するネットワークIFへのTCPによる通信の一部を許可することを示す。許可されるのは、TCPセッションの新規確立用のパケット(“NEW”)および既に確立済のTCPセッションのパケット(“Established”)である。
【0125】
また、例えば、フィルタ雛型テーブル113には、Fromポートが“*”、Toポートが“*”、Protocolが“TCP”、From−IFが“<SaaS>”、To−IFが“<Local>”、Flagが“Established”、許可/禁止が“Permit”という情報が設定される。これは、仮想ルータにおいて、他のSaaS種別のサービスを提供する仮想マシンが接続するネットワークIFから、SaaS種別“SaaS1”のサービスを提供する仮想マシンが接続するネットワークIFへのTCPによる通信の一部を許可することを示す。許可されるのは、既に確立済のTCPセッションのパケットである。
【0126】
また、例えば、フィルタ雛型テーブル113には、Fromポートが“*”、Toポートが“*”、Protocolが“*”、From−IFが“<Local>”、To−IFが“<SaaS>”、Flagが“−”(ハイフン)、許可/禁止が“Deny”という情報が設定される。これは、仮想ルータにおいて、SaaS種別“SaaS1”のサービスを提供する仮想マシンが接続するネットワークIFから、他のSaaS種別のサービスを提供する仮想マシンが接続するネットワークIFへの全ての通信を遮断することを示す。
【0127】
また、例えば、フィルタ雛型テーブル113には、Fromポートが“*”、Toポートが“*”、Protocolが“*”、From−IFが“<SaaS>”、To−IFが“<Local>”、Flagが“−”(ハイフン)、許可/禁止が“Deny”という情報が設定される。これは、仮想ルータにおいて、他のSaaS種別のサービス提供する仮想マシンが接続するネットワークIFから、SaaS種別“SaaS1”のサービスを提供する仮想マシンが接続するネットワークIFへの全ての通信を遮断することを示す。
【0128】
フィルタ雛型テーブル113では、上に記述されたルール程優先度が高い。フィルタ雛型テーブル113によれば、SaaS種別“SaaS1”のサービスを提供する仮想マシンが接続するネットワークIFから、他のSaaS種別のサービスを提供する仮想マシンが接続するネットワークIFへのTCPセッションの開設が許可される。ただし、逆方向(他のSaaS種別のネットワークIFから“SaaS1”のネットワークIFへ向かう方向)へのTCPセッションの開設は禁止される。以後、両仮想マシン間で開設されたTCPセッションでの通信が許可される。それ以外の通信は、全て遮断される。
【0129】
なお、仮想ルータは、フィルタ雛型テーブル113で定義されたフィルタ雛型を取得すると、自身が備えるネットワークIFの識別情報をあてはめて、該仮想ルータ用のフィルタルールを生成する。具体的には、“<Local>”には、SaaS種別“SaaS1”のサービスを提供する仮想マシンと接続するネットワークIFの識別情報をあてはめる。“<SaaS>”には、他のSaaS種別のサービスを提供する仮想マシンと接続するネットワークIFの識別情報をあてはめる。次に、このようにして生成された仮想マシン320用のフィルタルール(フィルタテーブル)を例示する。
【0130】
図14は、第3の実施の形態のフィルタテーブルの例を示す図である。フィルタテーブル311bは、ルール記憶部311に格納される。フィルタテーブル311bは、フィルタテーブル311aに、フィルタ雛型テーブル113,113aで定義されたフィルタ雛型を追加設定した場合を例示している。ただし、フィルタテーブル311aで示した設定内容は図示を省略する。フィルタテーブル311bには、Fromポート、Toポート、Protocol、From−IF、To−IF、Flagおよび許可/禁止の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つのフィルタルールを示す。ここで、各項目の内容は、図13で説明したフィルタ雛型テーブル113の各項目の内容と同様である。
【0131】
フィルタテーブル311bとフィルタ雛型テーブル113,113a,・・・とでは、From−IFおよびTo−IFの設定内容が相違する。ここで、フィルタテーブル311b中、設定A,Bが示されている。設定Aは、フィルタ雛型テーブル113に基づく仮想マシン320,320a間の通信のフィルタルールである。設定Bは、フィルタ雛型テーブル113aに基づく仮想マシン320,320a間の通信のフィルタルールである。
【0132】
設定Aでは、フィルタ雛型テーブル113中“<Local>”であった箇所が、SaaS種別“SaaS1”のサービスを提供する仮想マシン320と接続するネットワークIF312の識別情報“IF−S1”に置換されている。また、フィルタテーブル311bでは、フィルタ雛型テーブル113中“<SaaS>”であった箇所が、SaaS種別“SaaS2”(他のSaaS種別)のサービスを提供する仮想マシン320aと接続するネットワークIF313の識別情報“IF−S2”に置換されている。
【0133】
設定Bでは、フィルタ雛型テーブル113a中“<Local>”であった箇所が、SaaS種別“SaaS2”のサービスを提供する仮想マシン320aと接続するネットワークIF313の識別情報“IF−S2”に置換されている。また、フィルタテーブル311bでは、フィルタ雛型テーブル113a中“<SaaS>”であった箇所が、SaaS種別“SaaS1”(他のSaaS種別)のサービスを提供する仮想マシン320と接続するネットワークIF312の識別情報“IF−S1”に置換されている。
【0134】
フィルタテーブル311bには、ユーザにより選択されたSaaS種別のサービスを提供する仮想マシンと接続するネットワークIFと、該ユーザに割り当てられた他の仮想マシンと接続するネットワークIFと、の組の分だけルールが設定される。
【0135】
例えば、“User1”のユーザは、実行サーバ300a上の仮想マシン320bでSaaS種別“SaaS3”のサービスを利用している。このため、フィルタテーブル311bには、フィルタ雛型テーブル113に基づいて、仮想マシン320,320b間の通信のフィルタルールも設定される。また、フィルタテーブル311bには、フィルタ雛型テーブル113aに基づいて、仮想マシン320a,320b間の通信のフィルタルールも設定される。このようにして、該ユーザに割り当てた仮想マシン間で網羅的にフィルタルールが設定される。
【0136】
次に、以上の構成の情報処理システムの処理手順を説明する。ここで、仮想マシンの起動処理は、図9で説明した第2の実施の形態の仮想マシンの起動処理と同様である。
図15は、第3の実施の形態のフィルタ設定処理を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
【0137】
[ステップS31]接続制御部120は、ルータ装置500からユーザが選択したサービスを受け付ける。接続制御部120は、ルール管理部130および起動制御部220に、該ユーザによるサービスの選択内容を送信する。サービスの選択内容には、該ユーザに割り当てられた仮想マシンを指定する情報およびサービスのSaaS種別が含まれる。仮想マシン320を指定する情報およびSaaS種別“SaaS1”を示す情報が含まれるとする。
【0138】
[ステップS32]ルール管理部130は、制御情報記憶部110を参照して、選択されたサービスのSaaS種別に対応するフィルタ雛型を選択する。選択されたサービスのSaaS種別が“SaaS1”であるので、ルール管理部130はフィルタ雛型テーブル113を選択する。
【0139】
[ステップS33]ルール管理部130は、指定された仮想マシンの通信を中継する仮想ルータを選択する。例えば、仮想マシン320が指定されている場合、仮想ルータ310を選択する。ルール管理部130は、仮想マシン320に対応する仮想ルータおよび仮想マシン320と接続するネットワークIFを起動制御部220に問い合わせてもよい。
【0140】
[ステップS34]ルール管理部130は、ステップS32で選択したフィルタ雛型を仮想ルータ310に送信する。このとき、ルール管理部130は、SaaS種別“SaaS1”のサービスを利用可能な仮想マシン320と接続するネットワークIF312の情報(“IF−S1”)を仮想ルータ310に通知する。ネットワークIF312の情報は、雛型の<Local>の設定に相当する。
【0141】
[ステップS35]ルール設定部317は、フィルタ雛型を受信する。ルール設定部317は、フィルタ雛型のFrom−IFおよびTo−IFの項目に記述された“<Local>”の文字列をネットワークIF312を示す“IF−S1”に置換する。また、ルール設定部317は、該各項目に記述された“<User>”の文字列をユーザ側ネットワークと接続するネットワークIF314を示す“IF−U1”に置換する。ルール設定部317は、このようにして生成したフィルタルールをルール記憶部311のフィルタテーブル311bに設定する。
【0142】
[ステップS36]ルール設定部317は、フィルタルールの設定が完了した旨をルール管理部130に通知する。ルール管理部130は、該通知によりフィルタルールの設定完了を受け付ける。
【0143】
[ステップS37]ルール管理部130は、制御情報記憶部110に記憶された接続リストテーブル111を更新する。具体的には、ルール管理部130は、新たに選択されたサービスのSaaS種別とユーザとそのユーザが利用するネットワークIFとの対応関係を設定する。より具体的には、上記ステップS31〜S36の処理に対して、ルール管理部130は、ユーザ“User1”、SaaS種別“SaaS1”、ネットワークIF“IF−S1”の対応関係を接続リストテーブル111に設定する。
【0144】
[ステップS38]ルール管理部130は、該ユーザが他のSaaS種別のサービスを利用中であるかを判定する。該ユーザが他のSaaS種別のサービスを利用中である場合、処理をステップS39に進める。該ユーザが他のSaaS種別のサービスを利用中でない場合、処理を終了する。この判定は、ルール管理部130は、接続リストテーブル111を参照して、該ユーザに対応する他のSaaS種別があるか判断することで行える。他のSaaS種別があれば他のSaaS種別のサービスを利用中であり、なければ他のSaaS種別のサービスを利用中でない。例えば、接続リストテーブル111の例では、“User1”に対して、“SaaS1”以外にもSaaS種別“SaaS2”および“SaaS3”が対応付けられている。よって、“User1”は、SaaS種別“SaaS1”以外の他のSaaS種別のサービスを利用中である。
【0145】
[ステップS39]ルール管理部130は、制御情報記憶部110を参照して、ステップS31で選択されたSaaS種別に対し、他のSaaS種別との間のフィルタ雛型があるか否か判定する。他のSaaS種別との間のフィルタ雛型がある場合、処理をステップS40に進める。他のSaaS種別との間のフィルタ雛型がない場合、処理を終了する。ここで、制御情報記憶部110には、“SaaS1”と他のSaaS間の接続用のフィルタ雛型を定義したフィルタ雛型テーブル113が存在する。したがって、ルール管理部130は、ステップS31で選択されたSaaS種別“SaaS1”に対し、他のSaaS種別との間のフィルタ雛型があると判定する。
【0146】
[ステップS40]ルール管理部130は、ステップS33で選択した仮想ルータ310にフィルタ雛型テーブル113のフィルタ雛型を送信する。このとき、ルール管理部130は、SaaS種別“SaaS1”のサービスを利用可能な仮想マシン320と接続するネットワークIF312の情報(“IF−S1”)を仮想ルータ310に通知する。ネットワークIF312の情報は、雛型の<Local>の設定に相当する。また、ルール管理部130は、該ユーザが利用する他のSaaS種別“SaaS2”、“SaaS3”を利用可能な仮想マシン320a,320bと接続するネットワークIFの情報(“IF−S2”、“IF−S3”)を仮想ルータ310に送信する。該ネットワークIFの情報は、雛型の<SaaS>の設定に相当する。
【0147】
[ステップS41]ルール設定部317は、フィルタ雛型を受信する。ルール管理部130は、ルール管理部130から受信した“<Local>”の設定と“<SaaS>”の設定との組ごとにフィルタルールを生成する。具体的には、ルール設定部317は、フィルタ雛型とともに“<Local>”の設定として“IF−S1”を受信している。また、“<SaaS>”の設定として“IF−S2”、“IF−S3”を受信している。よって、(<Local>,<SaaS>)の組として、2つの組(IF−S1,IF−S2)、(IF−S1,IF−S3)が得られる。ルール設定部317は、フィルタ雛型テーブル113の“<Local>”を“IF−S1”に、“<SaaS>”を“IF−S2”に置換したフィルタルールを生成してフィルタテーブル311bに設定する。同様に、ルール設定部317は、フィルタ雛型テーブル113の“<Local>”を“IF−S1”に、“<SaaS>”を“IF−S3”に置換したフィルタルールを生成してフィルタテーブル311bに設定する。
【0148】
[ステップS42]ルール設定部317は、仮想マシン間でのフィルタルールの設定が完了した旨をルール管理部130に通知する。ルール管理部130は、該通知により仮想マシン間でのフィルタルールの設定完了を受け付ける。
【0149】
このようにして、ルール管理部130は、仮想マシン間の通信をフィルタリングするためのフィルタ雛型を仮想ルータ310に送信する。このとき、仮想ルータ310は、フィルタ雛型に基づき、ユーザにより選択されたSaaS種別(例えば、“SaaS1”)と、該ユーザが利用中の他のSaaS種別(例えば、“SaaS2”、“SaaS3”)との組合わせごとのフィルタルールを生成する。
【0150】
これにより、第2の実施の形態と同様の効果を得られる。加えて、該ユーザが選択したサービスに対して、他のサービスとの間のフィルタルールを容易に設定可能となる。特に、ユーザが利用中のサービスが多数存在している場合に有効である。
【0151】
他のサービスとの間のフィルタルールを設定した後に、選択された仮想マシンに該サービスを利用するためのソフトウェアを実行させてもよい。このようにすれば、他のサービスとの間の通信につき、フィルタによるセキュリティを確保した状態で選択されたサービスの提供を開始できる。
【0152】
なお、上記の説明では、SaaS種別“SaaS1”のサービスが選択された場合の例を示した。一方、ユーザが“SaaS1”,“SaaS3”が利用中に“SaaS2”のサービスが選択された場合も同様にして、“SaaS2”と“SaaS1”との組および“SaaS2”と“SaaS3”との組に関する設定をフィルタテーブル311bに追加する。
【0153】
更に、ユーザがサービスの利用を中止することも考えられる。ユーザは、そのための操作を、例えば、ルータ装置500が提供するインタフェースにより行える。その場合、制御装置100は、該サービスの中止を受け付けた旨を仮想マシン管理装置200および該サービスを提供する仮想マシンの通信を中継する仮想ルータに通知する。すると、該仮想ルータは、そのサービスに対応するフィルタルールを削除する。例えば、SaaS種別“SaaS1”のサービスの利用を停止する場合、フィルタテーブル311bのFrom−IFおよびTo−IFの項目に、“IF−S1”が設定されたレコードを削除する。
【0154】
また、第2,第3の実施の形態では、サービスの選択を受け付けたとき、フィルタ雛型を仮想ルータに送信して該フィルタ雛型に基づくフィルタルールによる監視を行わせるものとした。しかしながら、送信するルールは、フィルタルールに限らない。例えば、IDS(Intrusion Detection System)やIPS(Intrusion Prevention System)に用いられる不正アクセスを検知するためのルール(シグネチャやアノマリと呼ばれることもある)の雛型をサービスごとに定義してもよい。このとき、雛型では、通信の宛先(To−IF)や送信元(From−IF)を示す箇所にフィルタ雛型テーブル112,113のように、“<Local>”、“<User>”、“<SaaS>”などの文字列を設定しておく。そして、サービスが選択されたときに、該サービスを利用するためのソフトウェアを実行させる仮想マシンに、該ルールの雛型を送信して、各文字列を各仮想マシンのネットワークIFの識別情報に置換させる。このようにすれば、フィルタルールと同様に、サービスごとの不正アクセス検知のためのルールを、仮想ルータに容易に設定することが可能となる。
【符号の説明】
【0155】
1,2 情報処理装置
1a 記憶部
1b 制御部
2a 仮想ルータ
2b 仮想マシン
【特許請求の範囲】
【請求項1】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な他の情報処理装置と通信する情報処理装置であって、
サービスごとに定義された、前記仮想ルータによる通信監視のルールを記憶する記憶部と、
前記仮想マシン上で利用するサービスが選択されると、前記記憶部を参照して、選択された該サービスに応じた前記通信監視のルールを前記仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる制御部と、
を有する情報処理装置。
【請求項2】
前記記憶部は、前記仮想ルータ上のインタフェース部が何れのサービスを提供する仮想マシンと通信するか管理するためのリストを記憶し、
前記制御部は、前記記憶部に記憶された前記リストを参照して、選択された前記サービスに対応するインタフェース部につき前記通信監視のルールに基づく監視を前記仮想ルータに行わせる、
請求項1記載の情報処理装置。
【請求項3】
前記仮想ルータは、前記サービスを選択したユーザのネットワークと通信するユーザ側インタフェース部を有しており、
前記制御部は、前記記憶部に記憶された前記リストを参照して、選択された前記サービスに対応するインタフェース部と前記ユーザ側インタフェース部との間の通信につき、前記通信監視のルールに基づく監視を前記仮想ルータに行わせる、
請求項2記載の情報処理装置。
【請求項4】
前記仮想ルータは、前記サービスを選択したユーザが利用中の他のサービスを提供する他の仮想マシンと通信する他のインタフェース部を有しており、
前記制御部は、前記記憶部に記憶された前記リストを参照して、選択された前記サービスに対応するインタフェース部と前記他のインタフェース部との通信につき、前記通信監視のルールに基づく監視を前記仮想ルータに行わせる、
請求項2または3記載の情報処理装置。
【請求項5】
前記制御部は、選択された前記サービスを前記仮想マシンに提供開始させる前に、前記通信監視のルールを送信する、請求項1乃至4の何れか一項に記載の情報処理装置。
【請求項6】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な情報処理装置と通信するコンピュータに、
前記仮想マシン上で利用するサービスが選択されると、サービスごとに定義された、前記仮想ルータによる通信監視のルールを記憶する記憶部を参照して、選択された該サービスに応じた前記通信監視のルールを前記仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる、
処理を実行させる情報処理プログラム。
【請求項7】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な他の情報処理装置と通信する情報処理装置が実行する管理方法であって、
前記仮想マシン上で利用するサービスが選択されると、サービスごとに定義された、前記仮想ルータによる通信監視のルールを記憶する記憶部を参照して、選択された該サービスに応じた前記通信監視のルールを前記仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる、
管理方法。
【請求項1】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な他の情報処理装置と通信する情報処理装置であって、
サービスごとに定義された、前記仮想ルータによる通信監視のルールを記憶する記憶部と、
前記仮想マシン上で利用するサービスが選択されると、前記記憶部を参照して、選択された該サービスに応じた前記通信監視のルールを前記仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる制御部と、
を有する情報処理装置。
【請求項2】
前記記憶部は、前記仮想ルータ上のインタフェース部が何れのサービスを提供する仮想マシンと通信するか管理するためのリストを記憶し、
前記制御部は、前記記憶部に記憶された前記リストを参照して、選択された前記サービスに対応するインタフェース部につき前記通信監視のルールに基づく監視を前記仮想ルータに行わせる、
請求項1記載の情報処理装置。
【請求項3】
前記仮想ルータは、前記サービスを選択したユーザのネットワークと通信するユーザ側インタフェース部を有しており、
前記制御部は、前記記憶部に記憶された前記リストを参照して、選択された前記サービスに対応するインタフェース部と前記ユーザ側インタフェース部との間の通信につき、前記通信監視のルールに基づく監視を前記仮想ルータに行わせる、
請求項2記載の情報処理装置。
【請求項4】
前記仮想ルータは、前記サービスを選択したユーザが利用中の他のサービスを提供する他の仮想マシンと通信する他のインタフェース部を有しており、
前記制御部は、前記記憶部に記憶された前記リストを参照して、選択された前記サービスに対応するインタフェース部と前記他のインタフェース部との通信につき、前記通信監視のルールに基づく監視を前記仮想ルータに行わせる、
請求項2または3記載の情報処理装置。
【請求項5】
前記制御部は、選択された前記サービスを前記仮想マシンに提供開始させる前に、前記通信監視のルールを送信する、請求項1乃至4の何れか一項に記載の情報処理装置。
【請求項6】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な情報処理装置と通信するコンピュータに、
前記仮想マシン上で利用するサービスが選択されると、サービスごとに定義された、前記仮想ルータによる通信監視のルールを記憶する記憶部を参照して、選択された該サービスに応じた前記通信監視のルールを前記仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる、
処理を実行させる情報処理プログラム。
【請求項7】
仮想マシンおよび該仮想マシンの通信を中継する仮想ルータが動作可能な他の情報処理装置と通信する情報処理装置が実行する管理方法であって、
前記仮想マシン上で利用するサービスが選択されると、サービスごとに定義された、前記仮想ルータによる通信監視のルールを記憶する記憶部を参照して、選択された該サービスに応じた前記通信監視のルールを前記仮想ルータに送信し、該通信監視のルールに基づく監視を行わせる、
管理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2013−12865(P2013−12865A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−143675(P2011−143675)
【出願日】平成23年6月29日(2011.6.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願日】平成23年6月29日(2011.6.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]