(58)【調査した分野】(Int.Cl.,DB名)
第1のVPNエージェントにおいて、ハイブリッド・クラウド環境内の第1のクラウドと第2のクラウドとの間の複数のVPNトンネルにおける第1のVPNトンネルを管理することと、
VPNマネージャから、前記複数のVPNトンネルにおける前記第1のVPNトンネルに関する第1の組の要件を含む要求を受け取ることと、
前記第1の組の要件に従って前記第1のVPNトンネルを作成することと、
前記VPNマネージャから、前記複数のVPNトンネルにおける第2のVPNトンネルに関する第2の組の要件を含む修正要求を受け取ることと、
前記第2の組の要件に従って前記第1のVPNトンネルを調整することと、
を含み、
前記調整することは、前記第1のVPNトンネルと前記第2のVPNトンネルを併合することを含み、前記修正要求は、前記第1の組の要件と前記第2の組の要件が両立できるとの判断に基づくものであり、併合後の前記第1のVPNトンネルが前記第1のクラウドと前記第2のクラウドとの間の通信の提供を継続する、方法。
前記第1の組の要件は第1の組のセキュリティ要件を含み、前記第2の組の要件は第2の組のセキュリティ要件を含み、前記装置は、前記第1のVPNトンネルと前記第2のVPNトンネルを併合する前に、前記第1及び第2の組のセキュリティ要件が両立できるかどうかを判断するように動作可能なプログラム・コードをさらに含む、請求項7に記載の装置。
前記VPNマネージャから、前記第1のVPNトンネルを第3のVPNトンネル及び前記第1のVPNトンネルに分割する分割要求を受け取るように動作可能なプログラム・コードと、
前記第1のVPNトンネルを前記第1のVPNトンネルと前記第3のVPNトンネルに分割するように動作可能なプログラム・コードと、
をさらに含む、請求項8に記載の装置。
【発明を実施するための形態】
【0014】
ハイブリッド・クラウド環境は、異なるクラウド・ホスティング環境間の、アプリケーション間のセキュア通信に対する必要性を促進する。アプリケーション及びプラットフォームの数が増大すると、セキュア保護する必要がある通信経路の数は急速に増大する。今日、顧客は、ハイブリッド・クラウド環境における異なるクラウド間を架橋するために、専用VPNをインストールすることが多いが、専用VPNは、柔軟性の制限、セキュア保護する必要がある環境内への大きな通信の穴の生成(通信を可能にするためにファイアウォールを開けることによる)を含む多数の欠点を伴う。ハイブリッド・クラウド環境にわたるイベント管理のような高粒度の要件の場合、多量のデバイスから中央サーバに小さいログを送ることはできるが、従来のVPN選択肢は、ソース・デバイスと中央サーバとの間に、少量のデータを伝送するのに必要とされるものをはるかに上回る広い通信チャネルを開けることを必要とする。本発明は、従来技術の解決法に比べて、ハイブリッド・クラウド環境に関するアプリケーション要件及びトポロジ要件に基づく高度に調整されたVPNを提供するための手段を提供する。
【0015】
「ハイブリッド・クラウド環境」とは、コンピューティング・リソースが組織により所有され、その組織のためだけにサービスを提供するプライベート・クラウド、及び、別の組織が、該組織を含む複数の「テナント」のためにコンピューティング・サービスを提供するパブリック・クラウドの両方を含むクラウド環境である。
【0016】
「ノード」は、任意の電子デバイス、クライアント、サーバ、ピア、サービス、アプリケーション、又はネットワーク内の通信チャネル上で情報を送信、受信、又は転送することができる他のオブジェクトとすることができる。
【0017】
「VPNエージェント」は、トンネルのエンドポイントである2つのノードの1つにおいてVPNトンネルを管理するアプリケーションである。
【0018】
「VPNマネージャ」は、ハイブリッド・クラウド環境におけるVPNトンネルのインフラストラクチャを管理するクラウド・アプリケーションである。好ましい実施形態において、VPNマネージャは、VPNエージェントのインフラストラクチャも管理し、次にそれぞれのVPNトンネルを管理する。
【0019】
「VPNトンネル」は、任意の適切な暗号トンネリング・プロトコルに従ってデータのインターネット・プロトコル(IP)パケットをカプセル化することによってデータを搬送する、2つのノード間の通信チャネルである。
【0020】
ここで図面を、特に
図1〜
図2を参照して、本開示の例証となる実施形態を実装することができるデータ処理環境の例示的な図が提供される。
図1〜
図2は、例示にすぎず、開示される主題の態様又は実施形態を実装することができる環境に関するいずれかの制限を主張又は含意することを意図するものではないことを理解されたい。本発明の趣旨及び範囲から逸脱することなく、示される環境への多くの修正をなすことができる。
【0021】
ここで図を参照すると、
図1は、例証となる実施形態の態様を実装することができる例示的な分散型データ処理システムの図形的表現を示す。分散型データ処理システム100は、例証となる実施形態の態様を実装することができるコンピュータのネットワークを含むことができる。分散型データ処理システム100は、分散型データ処理システム100内で互いに接続された種々のデバイス及びコンピュータ間の通信リンクを提供するために使用される媒体である少なくとも1つのネットワーク102を含む。ネットワーク102は、有線、無線通信リンク、又は光ファイバ・ケーブルのような接続を含むことができる。
【0022】
示される例において、サーバ104及びサーバ106は、ストレージ・ユニット108と共に、ネットワーク102に接続される。さらに、クライアント110、112及び114もまた、ネットワーク102に接続される。これらのクライアント110、112及び114は、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータ等とすることができる。示される例において、サーバ104は、起動ファイル、オペレーティング・システムのイメージ及びアプリケーションのようなデータを、クライアント110、112及び114に供給する。示される例において、クライアント110、112及び114は、サーバ104に対するクライアントである。分散型データ処理システム100は、付加的なサーバ、クライアント及び図示されていない他のデバイスを含むことができる。
【0023】
示される例において、分散型データ処理システム100は、ネットワーク102を有するインターネットであり、インターネットは、互いに通信するためにプロトコルの通信制御プロトコル/インターネット・プロトコル(Transmission Control Protocol/Internet Protocol:TCP/IP)スイートを用いるネットワーク及びゲートウェイのワールドワイドの集合を表す。インターネットの中心は、データ及びメッセージを経路指定する多数の商用、行政用、教育用又は他のコンピュータ・システムから成る、主要ノード又はホスト・コンピュータ間の高速データ通信ラインのバックボーンである。当然のことながら、分散型データ処理システム100は、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)及び/又は広域ネットワーク(WAN)等のような多数の異なるタイプのネットワークを含むように実装することもできる。上述のように、
図1は、一例であることを意図したものであり、開示される主題の異なる実施形態についてのアーキテクチャ上の限定を意図したものではなく、従って、
図1に示される特定の要素は、本発明の例証となる実施形態を実装することができる環境に関する限定であると考えるべきではない。
【0024】
ここで
図2を参照すると、例証となる実施形態の態様を実装することができる例示的なデータ処理システムのブロック図が示される。データ処理システム200は、
図1のクライアント110のようなコンピュータの一例であり、その中に、本開示の例証となる実施形態についてプロセスを実装するコンピュータ使用可能コード又は命令を配置することができる。
【0025】
ここで
図2を参照すると、例証となる実施形態を実装することができるデータ処理システムのブロック図が示される。データ処理システム200は、
図1のサーバ104又はクライアント110のようなコンピュータの一例であり、その中に、例証となる実施形態についてプロセスを実装するコンピュータ使用可能プログラム・コード又は命令を配置することができる。この説明に役立つ実例において、データ処理システム200は、プロセッサ・ユニット204、メモリ206、永続的ストレージ208、通信ユニット210、入力/出力(I/O)ユニット212、及びディスプレイ214の間の通信を提供する通信ファブリック202を含む。
【0026】
プロセッサ・ユニット204は、メモリ206にロードすることができるソフトウェアのための命令を実行する役目を果たす。プロセッサ・ユニット204は、特定の実装形態に応じて、1つ又は複数のプロセッサの組とすることも、又はマルチプロセッサ・コアとすることもできる。さらに、プロセッサ・ユニット204は、主プロセッサが二次プロセッサと共にシングル・チップ上に存在する1つ又は複数の異種プロセッサ・システムを用いて実装することができる。別の説明に役立つ実例として、プロセッサ・ユニット204は、同じタイプの複数のプロセッサを含む対称型マルチ・プロセッサ(SMP)システムとすることができる。
【0027】
メモリ206及び永続的ストレージ208は、ストレージ・デバイスの例である。ストレージ・デバイスは、情報を一時的に及び/又は永続的に格納することができるハードウェアのいずれかの一部である。これらの例におけるメモリ206は、例えば、ランダム・アクセス・メモリ又は他のいずれかの適切な揮発性若しくは不揮発性のストレージ・デバイスとすることができる。永続的ストレージ208は、特定の実装形態に応じて種々の形態を取ることができる。例えば、永続的ストレージ208は、1つ又は複数のコンポーネント又はデバイスを含むことができる。例えば、永続的ストレージ208は、ハード・ドライブ、フラッシュ・メモリ、再書き込み可能光ディスク、再書き込み可能磁気テープ、又は上記の何らかの組み合わせとすることができる。永続的ストレージ208によって用いられる媒体は、取り外し可能とすることもできる。例えば、取り外し可能ハード・ドライブを永続的ストレージ208に用いることができる。
【0028】
これらの例における通信ユニット210は、他のデータ処理システム又はデバイスとの通信を提供する。これらの例では、通信ユニット210は、ネットワーク・インターフェース・カードである。通信ユニット210は、物理通信リンク及び無線通信リンクの一方又は両方の使用を通じて、通信を提供することができる。
【0029】
入力/出力ユニット212は、データ処理システム200に接続することができる他のデバイスとのデータの入力及び出力を可能にする。例えば、入力/出力ユニット212は、キーボード及びマウスを通じたユーザ入力のための接続を提供することができる。さらに、入力/出力ユニット212は、プリンタに出力を送信することができる。ディスプレイ214は、情報をユーザに表示するための機構を提供する。
【0030】
オペレーティング・システム及びアプリケーション又はプログラムのための命令は、永続的ストレージ208上に配置することができ、これらの命令は、メモリ206にロードし、プロセッサ・ユニット204によって実行することができる。異なる実施形態のプロセスは、メモリ206のようなメモリ内に配置することができるコンピュータ実装命令を用いて、プロセッサ・ユニット204によって実施することができる。これらの命令は、プロセッサ・ユニット204のプロセッサによって読み出し及び実行することができる、プログラム・コード、コンピュータ使用可能プログラム・コード、又はコンピュータ可読プログラム・コードと呼ばれる。異なる実施形態においては、プログラム・コードは、メモリ206又は永続的ストレージ208といった異なる物理又は有形コンピュータ可読媒体上に具体化することができる。
【0031】
プログラム・コード216は、選択的に取り外し可能なコンピュータ可読媒体218上に機能的形態で配置されており、データ処理システム200にロード又は転送して、プロセッサ・ユニット204により実行することができる。これらの例では、プログラム・コード216及びコンピュータ可読媒体218によって、コンピュータ・プログラム製品220が形成される。一例において、コンピュータ可読媒体218は、例えば光又は磁気ディスクのような有形形態とすることができ、光又は磁気ディスクは、永続的ストレージ208の一部であるドライブ又は他のデバイスに挿入され又は置かれ、永続的ストレージ208の一部であるハード・ドライブのようなストレージ・デバイスに移される。有形形態において、コンピュータ可読媒体218は、データ処理システム200に接続された、ハード・ドライブ、サム・ドライブ、又はフラッシュ・メモリといった永続的ストレージの形態を取ることもできる。コンピュータ可読媒体218の有形形態は、コンピュータ記録可能ストレージ媒体とも呼ばれる。幾つかの例においては、コンピュータ可読媒体218は、取り外しできないようにしてもよい。
【0032】
代替的に、プログラム・コード216は、通信ユニット210への通信リンクを通じて及び/又は入力/出力ユニット212への接続を通じて、コンピュータ可読媒体218からデータ処理システム200へ転送することができる。説明に役立つ例において、通信リンク及び/又は接続は、物理的なものであっても、又は無線式であってもよい。コンピュータ可読媒体はまた、プログラム・コードを含む通信リンク又は無線伝送のような無形の媒体の形態を取ることもできる。データ処理システム200において示される異なるコンポーネントは、異なる実施形態を実装することができる方法に関してアーキテクチャ上の制限を与えることを意味するものではない。異なる例証となる実施形態は、データ処理システム200において示されたコンポーネントに追加した又はその代わりのコンポーネントを含むデータ処理システムにおいて実装することができる。
図2に示される他のコンポーネントは、示される説明に役立つ実例とは異なる場合がある。一例として、データ処理システム200内のストレージ・デバイスは、データを格納することがきるに任意のハードウェア装置である。メモリ206、永続的ストレージ208及びコンピュータ可読媒体218は、有形の形態のストレージ・デバイスの例である。
【0033】
別の例では、バス・システムは、通信ファブリック202を実装するのに用いることができ、システム・バス又は入力/出力バスといった1つ又は複数のバスを含むことができる。当然のことながら、バス・システムは、バス・システムに取り付けられた異なるコンポーネント又はデバイス間のデータ転送を提供するいずれかの適切なタイプのアーキテクチャを用いて実装することができる。さらに、通信ユニットが、モデム又はネットワーク・アダプタといった、データの送信及び受信に用いられる1つ又は複数のデバイスを含むことができる。さらに、メモリは、メモリ206、又は、通信ファブリック202内に存在することがあるインターフェース及びメモリ・コントローラ・ハブにおいて見られるもののようなキャッシュとすることができる。
【0034】
本発明の態様の操作を実行するためのコンピュータ・プログラム・コードは、Java(商標)、SmallTalk、C++、C#、Objective−C等のようなオブジェクト指向型プログラミング言語、及び、従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。プログラム・コードは、全体がユーザのコンピュータ上で実行される場合もあり、独立型ソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は全体が遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。
【0035】
当業者であれば、
図1〜
図2のハードウェアは、実装形態に応じて変化し得ることを理解するであろう。
図1〜
図2に示されるハードウェアに加えて又はその代わりに、フラッシュ・メモリ、同等の不揮発性メモリ、又は光ディスク・ドライブ等といった他の内部ハードウェア若しくは周辺機器を用いることもできる。また、開示される主題の趣旨及び範囲から逸脱することなく、例証となる実施形態のプロセスを、既述のSMPシステム以外のマルチプロセッサ・データ処理システムに適用することもできる。
【0036】
見られるように、本明細書で説明される技術は、クライアント・マシンが1つ又は複数のマシンの組上で実行されているインターネットでアクセス可能なウェブ・ベースのポータルと通信する、
図1に示されるような標準的なクライアント・サーバ・パラダイムと共に動作することができる。エンドユーザは、ポータルにアクセスし、これと対話することができる、インターネットに接続可能なデバイス(例えば、デスクトップ・コンピュータ、ノートブック・コンピュータ、インターネット接続可能(Internet-enabled)モバイル機器等)を作動させる。一般的には、各クライアント又はサーバ・マシンは、ハードウェア及びソフトウェアを含む、
図2に示されるようなデータ処理システムであり、これらのエンティティは、インターネット、イントラネット、エクストラネット、プライベート・ネットワーク、又は他の通信媒体若しくはリンクのようなネットワーク上で互いに通信する。データ処理システムは、一般的には、1つ又は複数のプロセッサ、オペレーティング・システム、1つ又は複数のアプリケーション、及び1つ又は複数のユーティリティを含む。データ処理システム上のアプリケーションは、制限なく、とりわけ、HTTP、SOAP、XML、WSDL、UDDI及びWSFLへのサポートを含む、ウェブ・サービスへのネイティブ・サポートを提供する。SOAP、WSDL、UDDI及びWSFLに関する情報は、これらの標準の開発及び維持を担当するワールド・ワイド・ウェブ・コンソーシアム(World Wide Web Consortium、W3C)から入手可能であり、HTTP及びXMLに関するさらなる情報は、インターネット技術タスクフォース(Internet Engineering Task Force、IETF)から入手可能である。これらの標準を熟知していると仮定される。
【0037】
クラウド・コンピューティングは、最小限の管理労力又はサービス・プロバイダとの対話で迅速にプロビジョニング及び解放することができる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの、便利なオンデマンドのネットワーク・アクセスを可能にするサービス配信のモデルである。このクラウド・モデルは、全てが非特許文献1により具体的に記載され、定められるような、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つのデプロイメント・モデルを含むことができる。
【0038】
特に、以下が典型的な特徴である。
オンデマンド・セルフサービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないが、より高レベルの抽象化では位置(例えば、国、州、又はデータセンタ)を特定できる場合があるという点で、位置とは独立しているといえる。
迅速な弾力性:機能は、迅速かつ弾力的に、場合によっては自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を利用することによって、リソースの使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告し、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
【0039】
サービス・モデルは以下の通りである。
Software as a Service(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定の考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成又は取得したアプリケーションを、クラウド・インフラストラクチャ上にデプロイするために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、デプロイされたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対して制御を有する。
Infrastructure as a Service(IaaS):コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアをデプロイし動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択の限定された制御を有する。
【0040】
デプロイメント・モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス(構内、on-premise)又はオフプレミス(構外、off-premise)に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスに存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移植性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられる2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
【0041】
クラウド・コンピューティング環境は、無国籍性、低結合性、モジュール性、及びセマンティック相互運用性に焦点を置くことを指向するサービスである。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。代表的なクラウド・コンピューティング・ノードは、上記の
図2に示されるようなものである。特に、クラウド・コンピューティング・ノードには、他の多数の汎用又は専用コンピューティング・システム環境又は構成で動作可能な、コンピュータ・システム/サーバが存在する。コンピュータ・システム/サーバと共に用いるのに好適であり得る周知のコンピューティング・システム、環境、及び/又は構成の例としては、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能民生電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上述のシステム又はデバイス等のいずれかを含む分散型クラウド・コンピューティング環境が含まれる。コンピュータ・システム/サーバは、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバは、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体内に配置することができる。
【0042】
ここで
図3を参照すると、付加的な背景として、クラウド・コンピューティング環境によって提供される機能抽象化層の組が示される。
図3に示されるコンポーネント、層、及び機能は単に例示であることを意図し、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層及び対応する機能が提供される。
【0043】
ハードウェア及びソフトウェア層300は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、IBM(登録商標) zSeries(登録商標)システムを一例とするメインフレームと;IBM(登録商標) pSeries(登録商標)システムを一例とするRISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベースのサーバと;IBM(登録商標) xSeries(登録商標)システムと;IBM(登録商標) BladeCenter(登録商標)システムと;ストレージ・デバイスと;ネットワーク及びネットワーク・コンポーネントと、が含まれる。ソフトウェア・コンポーネントの例として、IBM(登録商標) WebSphere(登録商標)アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェアと、IBM(登録商標) DB2(登録商標)データベース・ソフトウェアを一例とするデータベース・ソフトウェアとが含まれる。(IBM、zSeries、xSeries、BladeCenter、WebSphere、及びDB2は、世界中の多数の管轄区域において登録されているインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。)
【0044】
仮想化層302は、抽象化層を提供し、この層により、仮想エンティティの以下の例、すなわち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティング・システム、並びに仮想クライアントを提供することができる。
【0045】
一例においては、管理層304は、以下で説明される機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格決定は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡と、リこれらのソースの消費に対する課金又は請求とを提供する。一例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクに対する識別情報の検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータルは、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(Service Level Agreement、SLA)の計画及び履行は、SLAに従って将来の要件が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
【0046】
ワークロード層306は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロード及び機能の例には、マッピング及びナビゲーション、ソフトウェア開発及びライフサイクル管理、仮想教室教育配信、データ分析処理、及びトランザクション処理及び他のもの(例えば、プライベート・クラウドにおける企業固有の機能)が含まれる。
【0047】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書で挙げられる教示の実装形態は、クラウド・コンピューティング環境に限定されないことが予め理解される。どちらかと言えば、本発明の実施形態は、現在知られている又は後に開発される他のいずれかのタイプのコンピューティング環境と共に実施することができる。
【0048】
ハイブリッド・クラウド環境は、異なるホスティング環境間の、アプリケーション間のセキュア通信に対する必要性を促進する。アプリケーション及びプラットフォームの数が増大すると、セキュア通信経路の数は急速に増大する。従来技術の専用VPNは、セキュア保護する必要がある環境内に大容量の通信チャネルを作成する。多くの伝送の必要性は、イベント管理のような高粒度の要件であり、そこで、ログ・データは、多くのデバイスから中央サーバへ送られ、従来のVPNは、必要とされず、セキュリティ・リスクをもたらす広い通信チャネルを使用する。クラウド間で少量のデータを伝送するアプリケーションの他の例は、例えば月に一度など定期的にデータの同期を試みるアプリケーション、又は規則的ではあるが少量のデータを送る監視アプリケーションを含む。
【0049】
従来技術のソフトウェアVPNは、特定のアプリケーション又は特定のクラウドのために通信経路を作成することにより、この問題を部分的に解決することができるが、アプリケーション・ベースの解決法は、一般に、単一のアプリケーションのみに適用され、管理及び監視が難しい場合があり、規模の効率性(efficiency of scale)を生かせない。
【0050】
本発明は、複数のアプリケーションからのアプリケーション要件に基づいて、高度に調整されたVPNを動的にデプロイ及び再構成し、ハイブリッド・クラウド環境のための最適なトポロジを提供する環境を含む。
【0051】
高レベルで、本発明の実施形態についての一般的なプロセスが、
図4に示される。ステップ401に示されるように、クラウド・アプリケーションが、それらがプライベート・クラウド内にあろうと又はパブリック・クラウド内にあろうと、中央VPNマネージャと対話して、トンネルの作成を要求する。中央VPNマネージャを、パブリック・クラウド又はプライベート・クラウドのいずれかにインストールして、SaaS、PaaS又はIaaS機能として組織に提供することができる。簡単にするために、単一のクラウド・アプリケーションの要求からもたらされるフローが示される。しかしながら、好ましい実施形態においては、複数のクラウド・アプリケーションが、同時にVPNマネージャと対話し、
図4に示されるプロセスは、それぞれのアプリケーションについての異なる段階におけるものとすることができる。ステップ403において、VPNトンネルの作成を要求しているアプリケーションは、プロトコル、ポート、帯域幅制限、並びに、例えばセキュリティ品質及びスループット能力などの他の特性のような、VPNトンネルに関する所望の要件を提供する。
【0052】
次に、ステップ405において、VPNマネージャは、要求中のマシン又は同じクラウド内の別のマシン上にインストールするための、VPNエンドポイント・エージェント、又は単に「VPNエージェント」を提供する。好ましい実施形態において、VPNエージェントは、ターゲット・マシン内にインストールされる。VPNエンドポイント・エージェントは、例えばLinuxベースのシステム対iOSベースのシステムなど、要求中のマシンの要件に適合するように僅かに変化させることができる。本発明の幾つかの実施形態において、VPNエージェントは、異なるタイプで特殊化し、構成することができ、特定のVPNトンネルに割り当てられたVPNエージェントのタイプは、VPNトンネルについての要求される品質及び能力によって異なる。本発明の他の実施形態において、種々のVPNトンネル・タイプを提供できる一般的なフル機能のVPNエージェントが使用される。要求がアプリケーションのものか、又は同じマシン上にある別のアプリケーションが以前に要求したものかによって、VPNエージェントは、既にエンドポイントに存在する又は近くのマシンに存在し得る。さらに、本発明の実施形態は、VPNエージェントをデプロイするのではなく、シェフ・エージェントなどの既存のエージェント又は既存のVPNコントローラへのAPIを使用する。従って、本発明の多くの実施形態において、ステップ405は随意的なものである。ステップ407において、VPNエージェントは、VPNマネージャと通信して、アプリケーションが以前に要求したようなデプロイメント構成の詳細を受け取り、それらの詳細に従って、VPNトンネルをデプロイする。
【0053】
ステップ409に示されるように、要求中のアプリケーションは、VPNトンネルについてのアプリケーション・ライフサイクル全体にわたって、所望の要求されるセキュリティ品質及びスループット能力を変更することができる。VPNトンネルの「調整(tuning)」は、トンネルのセキュリティ及び他の能力を変更することができ、又は以下に説明されるように、クラウド・アプリケーションの要件の変更に適合させるために、VPNトンネルを併合すること又は分割することを含むことができる。例えば、VPNトンネルの特性を変更する場合、VPNマネージャは、生産のために、VPNトンネルを、デプロイメントの際に使用される大きなVPNパイプのツーウェイの迅速なセキュリティ・プロトコル・トンネルから、小さなワンウェイの非常にセキュアなVPNパイプであるVPNトンネルに変化させるよう、VPNエージェントに指示することができる。最小数のVPNトンネル上の許可されたアプリケーションが必要とするトラフィック及び許可のみを可能にすることによりセキュリティを最適化するように、VPNネットワークを調整することができる。可能なセキュリティ・コストで、より多くのVPNトンネルにより許容されるより高い帯域幅を提供することによって、トラフィック性能を高めることができる。1つの好ましい実施形態において、アプリケーションは、VPNマネージャに通信し、次いで、VPNマネージャは、VPNトンネルの2つのエンドポイント上のVPNエージェントに通信することができる。このステップ、つまり、VPNトンネルのスルーアウト及びセキュリティ品質を動的に変更することは、アプリケーション・ライフサイクルの全体にわたって繰り返すことができる。
【0054】
ステップ411に見られるように、アプリケーションは、VPNフィルタ・プラグインをVPNマネージャに提供することができる。VPNフィルタは、VPNトンネルを通り過ぎるトラフィックをフィルタ処理するために使用される。VPNフィルタは、一般にどのIP/ポートを許可又は拒否すべきかについてACLフィールド列挙することによって、VPNトンネルを出た後のトラフィック及びVPNトンネルに入る前のトラフィックを許可又は拒否する能力を提供する。このステップは、要求ステップ403の一部として行うことができ、又は、例えば、ステップ409における変更要求の一部としてなど、セキュリティ品質の変更の一部として後で行うことができる。ステップ403において最初に要求されたVPNフィルタが、後で要求されるVPNフィルタにより取って代わること又は補完することが可能である。新しいVPNフィルタを要求するこのステップは、アプリケーション・ライフサイクル全体にわたって繰り返すことができる。VPNトンネルが他のVPNトンネルと併合されたとき又は複数のVPNトンネルに分割されたとき、VPNトンネルの通信帯域幅を共有する他のアプリケーションからの要求に応答して、特定のVPNトンネル上のVPNフィルタを修正することができる。
【0055】
イベント及びトラフィック・ロギングにより、VPNマネージャは、ステップ413として示されるVPN構成への可視性をもたらす。本発明の最も好ましい実施形態において、イベント・ロギングが提供される。幾つかの実施形態においては、トラフィック・ロギングも提供される。1つの好ましい実施形態において、イベント及びトラフィック・ロギングは、VPNマネージャ関連の監査イベントである。本発明の他の実施形態において、VPNエージェントを介して、他のアプリケーションに接続するアプリケーションに関連したイベントをログ記録することができる。例えば、VPNエージェントにより、帯域幅履歴を含む、アプリケーションにより使用される帯域幅をログ記録することができる。さらに他の実施形態においては、エージェントにより、アプリケーション通信トラフィックをログ記録することができる。セキュリティ侵害を監視するために、セキュリティ・オペレーション・センター(SOC)により、セキュリティ関連イベントが消費される。イベント及びトラフィック・ロギングは、
図10に関連して以下により詳細に説明される。
【0056】
本発明の好ましい実施形態において、VPNマネージャは、既存のVPNエージェントにわたるトラフィックを経路指定及び再経路指定し、必要に応じて、新しいVPNエージェントをデプロイし、トラフィック・フローを最適化する。例えば、格納及び監視される利用可能なトラフィック・ログを用いてトラフィックの低下を検出することに応答して、2つのVPNトンネル上のトラフィックに関するセキュリティ要件が両立できる場合、VPNマネージャは、VPNトンネルを併合するよう、VPNエージェントに指示することができる。検出は、アプリケーション・トラフィックを監視するVPNエージェントにおいて実施することができる。代替的に、正常に動作する(well-behaved)アプリケーションに応答して、VPNトンネルの併合デプロイメント段階から生産段階に移行し、従って、より少ない帯域幅しか必要としないというメッセージを、VPNマネージャに送ることができる。VPNマネージャは、予想されるデマンドの低下を考慮して、VPNトンネルを併合する機会があると判断する。代替的に、新しい又は既存のアプリケーションからの新しい要求により、新しいVPNエージェントが作成され、新しい予期されるロード又は要件を処理する。アプリケーションのセキュリティ要件は、アプリケーション・ライフサイクルにおいて変更することがあり、それにより、新しいVPNエージェントに対する必要性が作成され得る。このステップは、異なるVPNエージェントを異なるVPNトンネルに再割り当てすること、不要なVPNエージェントを削除すること、新しいトラフィックが予想される場合に、新しいVPNエージェントを作成及び提供し、併合されるVPNトンネルを処理する又は新しいVPNトンネルを処理することを必要とする。
【0057】
同じくステップ417として示されるように、アプリケーションのライフサイクル中にアプリケーションによりなされた要求、監視されたトラフィックの変更、又はアプリケーションが常駐するマシンにおける変更のために、VPNトンネルを再構成する必要がある場合がある。アプリケーション・トポロジが変更し、マシンが移動されると、VPNマネージャは、必要に応じてVPNを再構成、併合、分割するよう、VPNエージェントに指示する。本発明によると。VPNトンネルの「分割」は、単一のVPNトンネルによって以前に処理された既存のアプリケーション又はマシンからのトラフィックを、2つのVPNトンネルに再経路指定することを意味する。対照的に、新しいVPNトンネルの付加又は作成は、VPNマネージャにより以前に供給されなかったアプリケーションからの新しいアプリケーション要求に応えるが、新しいソースからのトラフィックしか含まない。VPNトンネルの分割は、分割と見なされる新しいソースからのトラフィックを含むことができるが、VPNトンネルの各々のトラフィックの一部は、既存のソースから来てしまう。VPNエージェントをVPNトンネルと同時に再構成及び再割り当てする必要があるとき、ある程度、VPNトンネルの再構成及びVPNエージェントを再構成する先行するステップは、類似したステップであるが、図においては、明確にするために、VPNエージェントの再構成及びVPNトンネルの再構成は別個のステップとして示される。
【0058】
本発明の好ましい実施形態において、VPNマネージャの機能は、エンドポイントにおけるVPNエージェントと協調して、ハイブリッド・クラウド環境内の異なるクラウド間に新しいVPNトンネルを作成する能力を含む。VPNマネージャは、帯域幅閾値(最小及び最大)のようなトンネル・ポリシー及びセキュリティ・ポリシーを構成する能力を有する。VPNマネージャは、他のクラウド環境を管理する他のVPNマネージャとフェデレートする(federate)能力を有する。VPNマネージャは、新しい要求、アプリケーション・ライフサイクルの変更、トラフィック若しくはネットワーク再構成の変更、又は既存のVPNトンネルに関するVPNトンネル仕様の動的構成に応答して、VPNトンネルを動的に併合又は分割することにより、VPNトンネル・インフラストラクチャを最適化することができる。VPNトンネル・ポリシーは、提案された最適化が許容されるかどうか、及びVPNサービスに対する新しい要求が、既存のVPNトンネル・インフラストラクチャによりに適合され得るかどうかを判断するためにVPNマネージャにより使用され、又は、VPNトンネルが併合、付加、分割、又は再構成することを要求する。
【0059】
VPNトンネルの作成及び維持は、従来技術においてよく知られている。VPNトンネルは、管理者又は要求中のアプリケーションにより指定される要件に従って作成することができる。VPNトンネルは、ソフトウェア・アプリケーション又は専用ハードウェア・デバイスによって作成することができる。本発明が対処する問題は、ひとたび作成されると、従来技術のVPNトンネルは静的(static)であり、アプリケーション・ライフサイクルの変更及びネットワーク・トポロジの変更といったクラウド環境における変化に適合しないことである。静的性質のため、従来技術のVPNトンネルは、本発明のVPNトンネルよりも多くのセキュリティ暴露(security exposure)を呈する。本発明は、VPNトンネルのインフラストラクチャを調整して、ハイブリッド・クラウド環境全体におけるクラウド環境間の必要なトラフィックのみを可能にする。
【0060】
選択された例証となる実施形態のより詳細な説明が以下に与えられる。
図5に示されるように、本発明の1つの好ましい実施形態が、プライベート・クラウドをホストするオンプレミス・インフラストラクチャ501、IaaSインフラストラクチャ503上のクラウド・ワークロード、及びSaaS環境505内のアプリケーションを統合するハイブリッド・クラウド環境において用いられる。図は、一般的なクラウド環境507において動作するVPNマネージャ508も示す。VPNマネージャ508が常駐する一般的なクラウド環境507は、プライベート・クラウド又はパブリック・クラウドのいずれかとすることができる。マシンA〜Dは、IaaSインフラストラクチャ503内にあるように示され、マシンE及びFは、SaaS環境505内に示され、マシンK及びLは、一般的なクラウド環境507内に示される。ログ及びイベント・マネージャ512は、マシンM上にあるように示される。VPNマネージャ508は、マシンK又はマシンLのいずれかの上にある。
【0061】
図5に示されるように、VPNトンネル509及び511は、本発明の例証となる実施形態に従って構成される。本発明のこの実施形態において、管理者は、ユーザ・インターフェースを用いてVPNトンネルを構成している。本発明の他の実施形態において、VPNマネージャ・アウェア・アプリケーションは、VPNマネージャに直接要求を行う。管理者は、マシンAをVPNマネージャ508に接触させ、ログ及びイベント情報をログ及びイベント・マネージャ512に報告できるように、マシンMへのVPNトンネル接続511を要求する。この要求の一部として、マシンAは、VPNトンネルに関する所望の要件513:
プロトコル:SYSLOG
ポート:541
ソース:10.1.1.5
ターゲット:9.1.2.20
帯域幅:制限なし
フィルタ:A(/^app1[a−z]{0,10}$/)
セキュリティ・ポリシーA
を提供する。
当業者であれば、他のパラメータをVPNトンネル要件として与えることができること、そして、これらは例証にすぎないことを理解する。
【0062】
セキュリティ・ポリシーを含めることは、随意的である。セキュリティ・ポリシーは、VPNマネージャ・アウェア(aware)アプリケーションにより含ませられる可能性が最も高い。セキュリティ・ポリシーを提供する代わりに、VPNマネージャは、要求中のマシン又はアプリケーションにより与えられる要件からセキュリティ・ポリシーを構成する。さらに、ハイブリッド・クラウド環境内のそれぞれのクラウド間の通信に関するデフォルトのセキュリティ・ポリシーが存在する場合もある。デフォルト・セキュリティ・ポリシーと提供される又は構成されるセキュリティ・ポリシーとの間の競合のイベントにおいて、VPNマネージャは、ユーザ・インターフェースを介して管理者に警告を発行する、又は提供されるセキュリティ・ポリシーがデフォルト・セキュリティ・ポリシーに優先するといった、こうした競合を解決するための規則を有することができる。本発明の実施形態において、セキュリティ要件及びセキュリティ・ポリシーの両方を用いることができるが、本発明の好ましい実施形態において、これらの用語は、以下の意味を有する。「セキュリティ要件」とは、要求中のマシンが、VPNトンネル内に存在することを要求するセキュリティ・タイプのパラメータである。セキュリティ要件の例は、VPNプロトコル及び暗号化セキュリティ・プロトコルの使用を含む。「セキュリティ・ポリシー」は、セキュリティ要件が、VPNトンネルにおいてどのように使用されるかを示す。セキュリティ・ポリシーは、VPNが、リクエスタにより指定されるセキュリティ要件のみを使用するという指令であってもよい。別の例として、リクエスタがセキュリティ要件を指定した場合、別のリクエスタにより要求される又は別のVPNトンネルにより使用される場合、両立性のあるプロトコルの制限されたサブセットが、既存のVPNトンネルを結合するための又はVPNトンネルの併合のための基礎を形成する。代替的に、セキュリティ・ポリシーは、許容的(permissive)であり、同じクラウドからのリクエスタにより指定されるいずれのセキュリティ要件もVPNトンネル内に含まれることを許容するが、許可されたマシンにより要求されていない場合、他のセキュリティ・プロトコルがVPNトンネル内に含まれることを許容しない場合もある。別の例として、セキュリティ・ポリシーが、特定のセキュリティ要件は、同じVPNトンネル内で両立できないと述べることがある。従って、「セキュリティ・ポリシー」を用いて、複数のアプリケーション又は複数のVPNトンネルの「セキュリティ要件」が両立できるかどうかを評価することができる。
【0063】
1つの好ましい実施形態において、VPNマネージャ508が、マシンMと事前に接触しない場合、VPNマネージャ508は、マシンMからの接続を待つ。この実施形態において、管理者は、マシンMをVPNマネージャに登録する。要求又は登録に応答して、VPNマネージャ508は、マシンM及びマシンA上に、それぞれVPNエージェント515、517をインストールする。次に、インストールされたVPNエージェント515、517を介して作用し、VPNマネージャ508は、マシンAの要求513における指定されたパラメータ(SYSLOG、ポート、単向性、帯域幅等)を有するように、マシンAとマシンMとの間にVPN511を構成する。つまり、VPNマネージャ508は、VPNエージェント(又は、他の既存のエンティティ)が実行する命令及び構成要件をVPNエージェントに発行する。当業者には周知のように、VPNトンネルは、インターネット・プロトコル・セキュリティ(IPsec)、Secure Socket Layer/Transport Layer Security(SSL/TLS)、又はマルチプロトコル・ラベル・スイッチング(MPLS)のような選択されたVPNセキュリティ技術を用いて、トンネルをセキュア保護する。他のVPNセキュリティ・プロトコルは、Datagram Transport LayerSecurity(DTLS)、Microsoft Point−to−Point Encrption(MPPE)、及びSecure Shell(SSH)プロトコルを含む。マシンAにおけるVPNセキュリティ要件は、VPNセキュリティ・プロトコルの選択、並びにsupport data encryption standards(DES)/Triple DES(3DES)及び異なるキーサイズ若しくはマルチキャストを有するAdvanced Encryption Standard(AES)、又はグループ暗号化標準のような、異なる暗号化標準に従ってデータを暗号化する能力を含む。VPNセキュリティ要件は、暗号化の前にLempel−Ziv−Stac(LZS)のような標準に従ってデータを圧縮する能力を含むことができる。
【0064】
管理者は次に、マシンBをVPNマネージャに接触させ、マシンMへのVPN接続を要求する。この要求の一部として、マシンBは、VPNに関する所望の要件519:
プロトコル:SCP
ポート:22
ソース:10.1.1.5
ターゲット:9.1.2.20
帯域幅:制限なし
フィルタ:B(/^app2[a−z]{0,30}$/)
セキュリティ・ポリシーB
を提供する。
【0065】
要求に応答して、VPNマネージャ508は、マシンB上にVPNエージェントをインストールする。VPNマネージャは、マシンAから生じる既存の近くのVPNトンネル511を識別する。マシンAのセキュリティ・ポリシーとマシンBのセキュリティ・ポリシーが両立できることが明らかになった後、VPNマネージャ508は、マシンB上のVPNエージェントを介して、マシンBを、指定されたトラフィックをマシンAに送るように構成する。指定されたトラフィックは、セキュリティ・ポリシーにより許容されるトラフィックである。例えば、特定のセキュリティ・ポリシーは、httpトラフィックのみを許容し、VPNトンネル上のftpトラフィックを許容しない。次に、VPNマネージャ508は、AからMへのVPNトンネル511を、マシンBの要件519からのVPNフィルタを含ませるように再構成する。このように、1つのマシンからの既存のVPNトンネル511を、同じクラウド503内の別のマシンからのトラフィックを送るように再構成することができる。結果として得られるVPNトンネル511には、次の特性521:単指向性、2つのパケット・タイプ(アプリケーションの各々から1つ)、2つのプロトコル(SYSLOG及びSCP)、2つのソースから来る、がある。VPNトンネルについての集合的VPNフィルタは、今や2つのソース及び2つのパケット・タイプからのトラフィックを可能にするという点で、より許容的であるが、好ましい実施形態において、VPNフィルタは、正しいパケット・タイプが正しいマシンから来ているかを依然としてチェックする。
【0066】
この例証となる実施形態において、VPNマネージャ508は、組織がマシンを有する2つより多いクラウド間のVPNトンネルを管理することができる。例を続けると、管理者は、SaaS環境505内の一般的なSaaSアプリケーションのマシンFからプライベート・クラウド501内のログ及びイベント・マネージャ512までのVPNトンネルを作成することを要求する。管理者又は一般的なSaaSアプリケーションの所有者のいずれかが、管理者により与えられた資格証明(credential)を用いて、VPNトンネルを作成する要求をVPNマネージャに行う。要求は、VPNに関する所望の要件523:
プロトコル:SCP
ポート:80
ソース:15.1.1.5
ターゲット:9.1.2.20
帯域幅:制限なし
フィルタ:C(/^app3[a−z]{0,50}$/)
を含む。
要求に応答して、VPNマネージャ508は、マシンF上にVPNエージェント522をインストールする。VPNエージェント522を通じて、VPNマネージャ508は、最初の要求523からの指定されたフィルタを有した状態で、マシンFとマシンMとの間にVPNトンネルを構成する。
【0067】
この例証となる実施形態において、マシンA及びBは、VPNトンネル511を通じて、ログ及びイベント・データを、マシンM上のログ及びイベント・マネージャに提供し、マシンFは、VPNトンネル509を通じて、そうしたデータを提供する。図に示されるように、同じ場所に配置されたマシンG及びIも、ログ及びイベント・データをログ及びイベント・マネージャに提供する。マシンG及びIは、プライベート・クラウド501内のプライベート・ネットワークを通じて、マシンMと直接通信することができるので、VPNマネージャ508を含ませる必要性はない。
【0068】
上述したステップは、VPNトンネルの初期構成の説明に役立つ実例を提供する。以下に説明されるように、そのライフサイクル中にアプリケーションの必要性が変化するので、正常に動作するアプリケーションは、さらなる要求を発行して、トンネルに必要とされるパラメータを変更することができる。例えば、デプロイメント中又は他の負荷の高い期間中、アプリケーションは、トンネルを通る高帯域幅を要求する。またある時には、例えば、ルーチンの監視中、アプリケーションはより低い帯域幅を要求する。アプリケーションは、要求される帯域幅を変更するさらなる要求を発行することがある。代替的な実施形態において、VPNトンネルを管理するVPNエージェントは、1組のアプリケーションから来るトラフィックを監視することができる。監視されるトラフィックが要求されるものよりもずっと少ない場合、VPNエージェント又はVPNマネージャは、トンネルを別の適切なものと併合する機会を認識すること、又はより低い帯域幅のためにトンネルを再構成することができる。例えばアプリケーションがアンインストールされるときなど、寿命の最後に、アンインストール・プロセスの一部として、正常に動作するアプリケーションは、VPNマネージャに、VPNトンネルがもはや必要とされないことを知らせる。アプリケーションのセキュリティ要件は、そのライフサイクル中に変更することもできる。本発明のさらに他の実施形態において、イベント及びロギング情報が、VPNエージェントの変更に対する要求を発行することができる管理者に提示され、認識されたアプリケーション・ライフサイクルに基づくVPNトンネル構成が、イベント及びロギング情報から変更する。
【0069】
図6は、VPNマネージャにより提供されるサンプル・ダッシュボード内のグラフィカル・ユーザ・インターフェース600における管理者ビューの一実施形態を示す。当業者であれば、本発明の教示に従って、他の代替的なインターフェースを提供できることを認識するであろう。この図では、
図5と関連して説明される初期構成の直後の、VPNトンネルの現在状況ビューが示される。現在状況ビューのこの実施形態において、既存のVPNトンネル、VPNトンネルにより接続されるクラウド、及びVPNトンネルを用いるマシンだけが示され、ハイブリッド・クラウド環境内の他のコンポーネントは示されない。現在状況ビューの他の実施形態は、他のコンポーネントを示す。プライベート・ネットワーク601内のマシンMは、VPNトンネル611によりIaaSインフラストラクチャ603に及びVPNトンネル609によりSaaS環境605に結合されるように示される。マシンAからの要求される構成パラメータは、パネル613内に示され、一方、マシンBからの要求される構成パラメータは、パネル619内に示される。結果として得られるVPNトンネル611のVPNパラメータは、パネル621内に示される。同様に、マシンFからの要求される構成パラメータは、パネル623内に示され、一方、結果として得られるVPNトンネル609についてのVPNパラメータは、パネル625内に示される。1つの好ましい実施形態において、パネル613、619、621、623及び625の各々は、システム管理者により編集可能である。要求される構成パラメータ・パネル613、619又は623の1つを編集することにより、マシン又はマシン上で実行されているアプリケーションの1つにより所望されるVPN特性に対して、新しい要求がVPNマネージャに作成される。ひとたびその要求が実行されると、適切なVPNパラメータ・パネル621又は625内に、VPN特性の更新が示される。
【0070】
パネル内に十分な空間が利用可能でなかった場合、スクロール制御を提示し、管理者が、利用可能なパラメータの全てをスクロールすることを可能にする。編集不能なパラメータは、グレー表示方式で提示することができる。本発明の好ましい実施形態においては、ネットワークの他のビューが想定される。例えば、ネットワーク内のマシンの全てを、新しい接続を生成できるように提示することができる。ポイント及びドラッグ機構を用いて、新しいトンネルを定めることができる。管理者によるポイント及びドラッグ操作に応答して、デフォルトの編集可能なパラメータを、管理者が編集又はサブミットすることができる要求される構成パネル内にポピュレートすることができる。別の代替的な実施形態において、アプリケーション・ビューを、マシンではなく環境の各々において動作するアプリケーションを示すように提示することができる。
【0071】
警告を提示することができる。例えば、1つの好ましい実施形態において、VPNトンネル611又はVPNパラメータ・パネル621が、強調表示方式で提示され、管理者の注意を引くためのアクションを示す。例えば、インターフェース内の2つのトンネルの強調表示は、より効率的なサービスを提供するために2つのトンネルを併合するための機会を示すことができる。単一のトンネルの強調表示は、スループットがトンネルの容量を超えること、又は新しい組の要件と、従来の要求により生成されたトンネルについての既存の新しいVPNパラメータとの間の競合のために、新しいサービス要求を既存のトンネルと適合させることができないことを示すことができる。強調表示されたトンネルが管理者により選択された場合、付加的なパネル内に、警告の原因であったイベント・ログ及びスループットなどの付加的な詳細を提示することができる。
【0072】
VPNマネージャは、選択肢を曝し、VPNエージェント及びVPNトンネルを手動で追加、削除及び再構成する。1つの好ましい実施形態において、ユーザ・インターフェース(UI)は、UI+REST APIインターフェースとする。ウェブ・ベースのUIは、REST APIを使用する、又はアプリケーションは、REST APIを直接使用することができる。
【0073】
図7において、VPNトンネルの再構成の例証となる実施形態が示される。この例は、VPNマネージャ708に、ハイブリッド・クラウドのVPNトンネル・インフラストラクチャを変更させるネットワーク・トポロジ変更の一例を示す。例において、これは、クラウドの1つからのマシンの除去である。他のネットワーク・トポロジ変更は、クラウド・アプリケーションの追加又は除去、例えば負荷バランシングのための、別のマシンと同じクラウド・アプリケーションを有する「クローン(clone)」マシンの追加、クラウド・アプリケーションの1つのマシンから別のマシンへの移動、クラウド・アプリケーションの1つのクラウドから別のクラウドへの、例えばプライベート・クラウドからプライベート・クラウドへの移動を含む。本発明の1つの好ましい実施形態において、この種のネットワーク・トポロジ変更は、「イベント」としてVPNマネージャ708に送られ、VPNマネージャ708は、VPNトンネル・インフラストラクチャの自動再構成を行うか、又はVPNトンネル再構成の候補である状況として警告を管理者に提示する。
【0074】
「X」で示されるように、管理者は、IaaSインフラストラクチャ703からマシンAを除去し、そのことは、マシンAにより処理されるマシンBのトラフィックの再構成をトリガする。管理者がマシンAの除去を開始すると、マシンA上のVPNエージェント704は、クラウド707内のVPNマネージャに接触する。VPNマネージャは、VPNトンネル711内の結合したVPN接続を分析し、この場合、マシンAから生じるVPNトンネル711も、マシンBからのトラフィックも処理する。VPNマネージャ708は、既存の要件、即ちマシンB及びVPNトンネル711を用いていたIssSインフラストラクチャ703内の他のいずれかのマシンからの既存の要件を用いて、マシンBからマシンMまでのVPNトンネル720を作成するよう、マシンB上のVPNエージェント712に命令する。マシンAは除去されるので、その要件のどれも関連しない。トンネルについてのVPNフィルタを設定するとき、マシンBの要件のみが用いられる。図において、VPNサービスを要求するときのマシンBの要件が示される。マシンBは、VPNに関する所望の要件719:
プロトコル:SCP
ポート:22
ソース:10.1.1.5
ターゲット:9.1.2.20
帯域幅:制限なし
フィルタ:B(/^app2[a−z]{0,30}$/)
セキュリティ・ポリシーB
を提供した。
【0075】
示されるように、新しいVPNチャネル720についてのVPNパラメータ721は、
図5に示される結合したVPNトンネル511についてのパラメータ521、又はこの図のVPNトンネル711、又はこの図のVPNトンネル711とは異なる。VPNトンネル711は、「X」で示されるように除去される。現在のVPNトンネルの必要性を有する認識されたマシンからの要求されたパラメータに適合させることだけにより、セキュリティが向上する。
【0076】
図7は、マシンAからのアプリケーションの除去を検討するために用いることもできる。この場合、ひとたび新しいVPNトンネル720が作成されると、VPNマネージャ708は、A・M間のVPNトンネル711を除去する。同じく随意的に、VPNマネージャ708は、マシンA上のVPNエージェント704をアンインストールする。これらの随意的なステップは、正常に動作するシステムを生成し、マシンA上に常駐する許可されたサブスクライビング(subscribing)アプリケーションがないときに、VPNトンネル及びVPNエージェントを保持するするセキュリティ上のリスクを低減させる。しかしながら、代替的な実施形態は、VPNトンネル又はVPNエージェントをアライブのままにし、新しいアプリケーション要求がVPNマネージャに対してなされた場合、新しいVPNエージェントを開始するオーバーヘッドを低減させる。
【0077】
本発明の実施形態において、VPNトンネルを併合し、分割するための規則の組がある。セキュリティ・ベースの規則は、VPNトンネルによりサービスされる又は潜在的にサービスされるアプリケーションの各々のセキュリティ要件又はポリシーが、他のアプリケーションのセキュリティ要件又はポリシーと両立できるかどうかに関係している。候補VPNによりサービスされるアプリケーションのセキュリティ要件と両立できることは、VPNトンネルの併合の必要条件である。本発明の実施形態において、セキュリティ要件の両立性は、クラウド間の通信についてのアプリケーションのセキュリティ・ポリシー又はVPNマネージャのセキュリティ・ポリシーに基づいて解釈される。例えば、アプリケーション・セキュリティ・ポリシーのために、1つのVPNトンネルがhttpトラフィックのみを許可し、別のVPNトンネルがftpトラフィックのみを許可する場合、2つのトンネルを併合することはできない。しかしながら、両方のトンネルが、httpトラフィック又は全てのトラフィックを許可する場合、それらを併合することができる。別の例として、2つの異なるVPNトンネル上の2つのアプリケーションが、2つの異なるセキュリティ又は暗号化プロトコルを要求し、2つのクラウド間の通信のために、実際上、VPNマネージャのセキュリティ・ポリシーが、単一の暗号化プロトコルの使用を要求することがある。従って、アプリケーション・セキュリティ要件又はポリシーは、VPNトンネルの併合を防止することがあり、他の場合にはスループット効率のために併合されることがある。
【0078】
新しいセキュリティ要件の組を含むアプリケーションからの新しい要求を考慮して、両立性規則を考慮した現在のVPNの評価により、現在のVPNトンネルが分割される。好ましい実施形態において、潜在的な併合の両立性は、直接的な競合に関して、2つのVPNトンネルにおけるセキュリティ要件及びVPNフィルタを評価することによって判断される。競合が見つかった場合、幾つかの実施形態において、ユーザ・インターフェースは、候補VPNトンネルを管理者に表示して、競合と、VPNトンネルを両立性があるようにするのに必要な変更とを表示する。このように、管理者は、セキュリティ上の観点から、VPNフィルタの修正、付加的なタイプのトラフィック若しくはセキュリティ若しくは暗号プロトコルの現在のVPNへの追加が許容可能かどうかを判断する。1つの実施形態において、VPNトンネルを分割できる別の場合は、共有VPNトンネルを使用するアプリケーションの1つのセキュリティ要件の変更の際である。例えば、アプリケーションが今やオリジナルのhttpトラフィックに加えてftpトラフィックを伝送したいと望み、現在のVPNトンネルがfrpトラフィックを許可しない場合、VPNトンネルを分割することができる。別の例として、アプリケーションの1つが現在のVPNトンネルよりも高レベルの暗号化を望む場合、全てのトラフィック上により高いオーバーヘッドを被るよりも、現在のVPNトンネルを分割する方が理にかなっていることがある。本発明の他の実施形態において、セキュリティ・ベースの規則以外のパラメータについての他の両立性ベースの規則が用いられる。
【0079】
別の規則の組は、VPNトンネルの帯域幅又はスループットに基づいている。帯域幅の規則は、例えば、帯域幅上の上限閾値又は下限閾値に基づくことができる。複数のアプリケーションのトラフィックが許容可能なトンネル限界(帯域幅)を横断する場合、VPNトンネルの分割を行うことができる。この場合、VPNマネージャは次に、トンネルを分割する。1つ又は複数の両立性のあるVPNトンネルがトンネル帯域幅の下限を下回る帯域幅を有する場合、VPNトンネルの併合を行うことができる。
【0080】
図8において、VPNトンネルを併合する再構成の例証となる実施形態が示される。この例は、VPNトンネル711及び720の併合を可能にする低減した帯域幅要件のために、マシンA及びB上のアプリケーションからのデマンドが変化した場合を示す。VPNトンネルの併合を可能にする別の場合は、アプリケーションの1つについてのセキュリティ・プロトコルの変更であり、その結果、新しいセキュリティ・プロトコルの組が、事実上、セキュリティ・ポリシーに従って両立できるようになる。示されるように、VPNトンネル711は、他のVPNトンネル720が総デマンドに適合できる際、クラウド701とクラウド703との間で除去される。本発明の好ましい実施形態において、2つのVPNトンネル上のトラフィック(セキュリティ要件に加えて)は、併合のために両立性があることが必要である。本発明の好ましい実施形態において、VPNマネージャ708は、マシンA及びマシンBに割り当てられたVPNエージェント704及び712から情報を受け取る。VPNマネージャは、マシンB上のVPNエージェント712を、マシンB・マシンM間のVPNトンネル720を修正し、要件、即ちVPNトンネル711を使用していたマシンAからの要件を付加するように再構成する。図において、マシンAの要件739及びマシンBの要件719が示される。マシンAは、VPNトンネルに関する所望の要件739:
プロトコル:SYSLOG
ポート:541
ソース:10.1.1.5
ターゲット:9.1.2.20
帯域幅:制限なし
フィルタ:A(/^app1[a−z]{0,10}$/)
を提供する。
【0081】
マシンBは、VPNに関する所望の要件719:
プロトコル:SCP
ポート:22
ソース:10.1.1.5
ターゲット:9.1.2.20
帯域幅:制限なし
フィルタ:B(/^app2[a−z]{0,30}$/)
を提供した。
【0082】
示されるように、修正されたVPNトンネル720についてのVPNパラメータ751は、これらが単一のアプリケーションをサポートしたとき、個々のVPNトンネル711及び720からのパラメータとは異なる。認識されるマシンからの要求されるパラメータのみを適合させることによって、セキュリティが向上する。この図において、マシンA上のVPNエージェント704は、マシンAからのトラフィックをマシンB上のVPNエージェント712に転送するので、VPNトンネル720は、結合したトラフィックを処理することができる。
【0083】
図9において、VPNトンネル720を分割する例証となる実施形態が示される。この例において、VPNトンネル720は、もはやマシンA及びマシンBの両方からの通信を処理するのに適切ではない。VPNトンネルの分割は、その要件が変更したこと又は変更することを示す管理者アクション又はVPNマネージャ・アウェア・アプリケーションによる要求の結果とすることができる。VPNマネージャは、マシンBから生じ、マシンAからのトラフィックも処理するVPNトンネル720における結合したVPN接続を分析し、ユーザ・インターフェースを介して、警告を管理者に表示することができる。この例において、双方向性VPNトンネル及び新しいセキュリティ暗号化プロトコルを必要とする更新のために、予想されるデマンドの増大を示す新しい要件759の組を、マシンA上で実行されているアプリケーションから受け取る。これらの新しい要件759をVPNマネージャ720で履行することができない、又は少なくとも、新しい要件に応答したVPNトンネル720の修正が、セキュリティ上又はスループット上の観点から最適ではないとの認識において、VPNマネージャ708は、新しい要件を用いて新しいマシンA・マシンM間のVPNトンネル763を作成するように、マシンA上のVPNエージェント704を再構成する。従って、古いVPNトンネル720は、マシンA上のソースからのトラフィックとして「分割」され、マシンBは、新しいVPNトンネル・インフラストラクチャ内の2つのVPNトンネルによりサービスされる。
【0084】
マシンAは、VPNトンネル763に関する所望の要件759:
プロトコル:SYSLOG
暗号化プロトコル:ECC
ポート:541
ソース:10.1.1.5
ターゲット:9.1.2.20
帯域幅:制限なし 双方向性
フィルタ:A(/^app1[a−z]{0,10}$/)
を提供する。
【0085】
マシンB上のVPNエージェント712は、マシンBの要件:
プロトコル:SCP
ポート:22
ソース:10.1.1.5
ターゲット:9.1.2.20
帯域幅:制限なし
フィルタ:B(/^app2[a−z]{0,30}$/)
のみを使用するように、VPNトンネル720を再構成する。
【0086】
再び、認識されたマシンからの要求されるパラメータだけを適合させることによって、セキュリティが向上し、従って、修正されたVPNトンネル720についての新しいVPNパラメータ761は、
図8に示される結合したVPNトンネル720についてのパラメータ751とは異なる。同様に、新しく生成されたVPNトンネル757についてのVPNパラメータ763は、マシンAに関する要件759のみを反映する。
【0087】
図10は、VPNマネージャのイベント報告及びロギング動作のフロー図である。イベント及びトラフィック・ロギングは、VPNマネージャが、どのアプリケーションがどの他のアプリケーションと通信しているかを理解することを可能にする。イベント及びトラフィック・ロギングは、VPNマネージャが、どのクラウドが相互接続されるか、どのデータが通信されるかを理解することも可能にする。さらに、イベント報告及びロギング動作は、セキュリティ・オペレーション・センター(SOC)によるポリシー違反又はセキュリティ侵害の検出を可能にする。
【0088】
ステップ801において、VPNマネージャは、VPNエージェントによるイベントの報告を待つ。イベントを受け取ると(ステップ803)、イベントがログ記録される(ステップ805)。ステップ807において、VPNマネージャは、受け取ったイベントが規則をトリガするかどうかを判断する。規則をトリガするために、直前に受け取ったイベントを、既にログ記録されたイベントと相関させる必要があり得る。既述したように、規則の一例は、トラフィック閾値規則である。VPN上のトラフィックが閾値を上回っているか又は上回ると予測される場合、VPNマネージャは、単一のVPNトンネルを2つのトンネルに分割するよう、命令をVPNエージェントに発行することができる。別のトラフィック閾値規則は、最小トラフィック規則である。隣接するVPNトンネルが閾値を下回るトラフィックを有する場合、VPNマネージャは、VPNトンネルを併合するよう、命令をVPNエージェントに発行することができる。規則の別の例は、セキュリティ関連規則である。VPNトンネルに関連したセキュリティ・イベントがあった場合、VPNマネージャは、トンネルについてのセキュリティ・パラメータを変更するように、命令をVPNエージェントに発行することができる。例えば、VPNトンネルによりサービスされるマシンの1つに対する侵入イベントの検出により、問題のあるイベントが生じ、さらなる精密な調査をもたらす。従って、VPNマネージャは、そのトンネルに関して、マシンからのイベントをより緊密に監視するよう、又はVPNトンネルを分割するよう、命令をVPNエージェントに発行し、影響を受けるマシンからのイベントを監視できるようにする、即ち、他の影響を受けないマシンからのイベントの侵入検出オーバーヘッドがより低くなることを可能にしながら、新しいトンネルからの全てのイベントを監視する。
【0089】
イベントが、VPNマネージャ・アウェア・アプリケーションによりなされた修正要求である場合、デフォルト規則は、要求に従うことができる。この場合、VPNマネージャは、修正要求と一貫しているよう、命令をVPNエージェントに発行する。別の規則は、VPNトンネルについてそこで修正要求がセキュリティ・ポリシーと一貫しているかどうかを評価するためのものであり、一貫していない場合、さらなるアクションのために、管理者に警告する。
【0090】
ステップ809において、イベントにより規則がトリガされた場合、VPNマネージャは、VPNトンネルを適切に調整するよう、命令をVPNエージェントに発行する。上記に説明されるように、VPNトンネルの調整は、VPNトンネル上のパラメータを修正すること、VPNトンネルを併合すること、又はVPNトンネルを2つ又はそれより多いVPNトンネルに分割することを含む。1つの好ましい実施形態において、規則は、ユーザ・インターフェースにおいて警告をトリガし、管理者が、VPNエージェントへの命令を確認及び/又は修正することを可能にする。プロセスは、ステップ801における新しいイベントの待機に戻る。
【0091】
図11は、本発明の一実施形態による、トラフィック・フローを最適化し、VPNを併合及び分割するプロセスを示す。ステップ901において、VPNマネージャが既存のVPNトンネルを監視することからプロセスが開始する。このステップは、
図10と関連して上述したスループット及びイベントの監視を含む。1つの好ましい実施形態において、各々のトンネル・エンドポイントで確立されたVPNエージェント、サブスクライブしているマシン及び/又はアプリケーションが、関連情報をVPNマネージャに報告する(ステップ903)。VPNマネージャがVPNエージェントに通信する必要があるいずれの命令も、このステップにおいて伝送される。VPNマネージャがVPNエージェントに通信する命令の例は、所定のアプリケーション又はマシンからのトラフィックに対してどのVPNトンネルを使用すべきか、VPNトンネルをどのエンドポイント(例えば、アプリケーション)に接続すべきか、どのフィルタ設定を有するべきか、VPNエージェント及びエージェント構成関連データ等を含む。
【0092】
ステップ905において、受け取った情報に基づいて、既存のVPNインフラストラクチャへの変更が示されるかどうかについての判断を行う。肯定的決定は、多くの要因に基づき得る。第1に、上述のように、VPNトンネル設定への変更に対する新しい管理者又はアプリケーション・ベースの要求がある場合がある。新しい要求は、新しいアプリケーション又は新しいマシンのための新しい接続、又は既にサブスクライブしているマシン間の既存のVPNトンネルへの変更に関する場合がある。第2に、変更は、VPNエージェントによるスループット測定により示すことができる。VPNトンネルは、最初に、高帯域幅要件が存在するアプリケーション・ライフサイクルの開発段階において、アプリケーションにより作成することができる。従って、必要な帯域幅を提供するために、別個のVPNトンネルが作成される。後に、アプリケーション・ライフサイクルのせい生産段階において、アプリケーションの帯域幅要件は低く、従って、セキュリティ要件がアプリケーションの間で両立性がある場合、VPNトンネルを併合することができる。第3に、アプリケーション・ライフサイクルの最後に、アプリケーションが除去されるとき、そのアプリケーションについてのVPNトンネル及びVPNエージェントを除去又は修正して、エンドポイントにおいて依然として存在するアプリケーションだけをサポートすることができる。VPNエージェントが、VPNトンネルが十分に利用されていず、従って、他のVPNトンネルとの併合の候補であることを報告する。VPNマネージャは、その制御下にある既存のVPNトンネルの全てのマップを有し、例えば、閉鎖されるべきVPNトンネル得るに関する既存の要件の組を、第1のVPNトンネルを制御している第1のVPNエージェントに送って、開いたままにするなどの、必要とされる併合のためのコマンド、第1のVPNトンネルのVPN特性を新しい要件のものに変更するためのコマンド、第1のVPNエージェントの代わりに、閉鎖されるべき第2のVPNトンネルを現在制御している第2のVPNエージェントからの通信を転送するためのコマンド等を発行する。
【0093】
変更は、新しい帯域幅又はセキュリティ要件のために、VPNトンネルを分割する必要があるという表示とすることができる。以前に併合したVPNトンネルは、多くの場合、複数のトンネルに分割するための主要な候補である。アプリケーション・ライフサイクルの間、例えば、更新中又はクラウド・アプリケーションの1つの示される侵入に応答して、帯域幅又はセキュリティ要件が変更する期間、即ち、特別なセキュリティ処理を必要とする期間がある。VPNトンネルを分割する必要がある別の理由は、付加的なマシン又はアプリケーションによる新しい要求に起因する。
図5を参照して上述した例において、VPNトンネル511は、マシンA及びマシンBにサービスするのに適切であるが、アプリケーション又は管理者要求は、マシンC及びマシンDのためのVPNサービスに対してなされ、単一のVPNトンネルは、4つのマシン全てに関する帯域幅要件を履行することができないと仮定する。1つの選択肢は、マシンC及びDにサービスする新しいVPNトンネルを作成することとであり得る。しかしながら、VPNマネージャは、マシンA及びCに関する要件が、マシンA及びBよりも両立性があることを確立し、従って、1つのVPNトンネルがマシンA及びCにサービスし、第2のVPNトンネルがマシンB及びDにサービスするのが最も効率的である。変更が示されない場合、プロセッサは、VPNトンネルの監視(ステップ901)に戻る。
【0094】
ステップ907において、変更が既存のVPNトンネルの組により達成できるかどうかを判断する。一般に、これはより効率的であり、クラウドはセキュリティ攻撃を受けにくく、維持される2つのクラウド間のVPNトンネルがより少ない。要求される帯域幅、現在の帯域幅、及び現在のトンネルの利用可能な帯域幅の比較を行う。それぞれのアプリケーションにより要求されるセキュリティ・パラメータの両立性を判断するために、既存のセキュリティ・パラメータ及び要求されるセキュリティ・パラメータの比較を行う。既存のVPNトンネルの併合を含む既存のVPNトンネルを使用することができる場合、既存のVPNエージェントは、VPNトンネルへの何らかの必要な変更を行うために、所望の要件を発行する。VPNトンネルを使用できる場合、要求中のマシン内にVPNエージェントが既にインストールされている可能性が高い。しかしながら、例えば一般的なVPNエージェントではなく特化されたVPNエージェントが使用される実施形態において、新しいVPNエージェントが必要とされる場合、ステップ911において、VPNマネージャは、新しいVPNエージェントをマシン・エンドポイントに送る。次に、プロセスは、既存のVPNインフラストラクチャの監視(ステップ901)を続行する。
【0095】
一方、変更が新しいVPNトンネルを要求する場合、ステップ913において、プロセスは次に、VPNエージェントが既にインストールされているかどうかを判断する。インストールされていない場合、ステップ915において、VPNマネージャは、新しいVPNエージェントを、それを必要とするエンドポイントに送る。ステップ917において、新しいVPNトンネルが、新しい及び/又は既存のVPNエージェントを通じて作成される。新しいVPNトンネルは、既存のトンネルの分割であると考えることができる。プロセスは次に、起こり得る変更のためにVPNインフラストラクチャを監視するためのステップ901に戻る。
【0096】
本発明の好ましい実施形態において、中央VPNマネージャが、単一のシステム又はクラウド・プロバイダにより制御される。例えば、クラウ環境において、IaaS及びPaaSプロバイダが、本発明が可能にするVPN能力をこれらの環境に提供するのは価値がある。
【0097】
フェデレーション・モデルは、1つのクラウド・プロバイダにより1つのVPNマネージャが提供される場合に使用することができ、クラウド・プロバイダは、フェデレーテッド・アイデンティティ(federated identity)(OAuth、OpenID等)に類似したモデルを用いて、クライアント・ネットワークと他のクラウド・ネットワークとの間の信頼モデルを作成する。1つの組織に属するアプリケーションがVPNトンネルを望む場合、アプリケーションは、組織のVPNサーバによるフェデレーション型認証を用いて、クラウド・プロバイダのVPNマネージャと確立された信頼を有することができる。
【0098】
1つの実施形態が、
図12に示される。第1の組織のためのアプリケーションが、クラウド1001の第1の組における1つ内のマシンM上にあり、異なる組織に属するクラウド1003の第2の組の1つにおけるマシンFと通信するように作成されたVPNトンネルを必要とする。クラウド1001の組におけるマシン間のVPNトンネルは、VPNマネージャ1005により管理され、一方、クラウド1003の組におけるVPNトンネルは、VPNマネージャ1007により管理される。
【0099】
次に、アプリケーションがVPNトンネルを望むとき、アプリケーションは、例えば、マシンM上のアプリケーションがVPNマネージャ1005に接触するといった要求を、それぞれのVPNプロバイダ・サーバに行う。VPNマネージャ1005は、その相手方のVPNマネージャ1007と通信して、新しいVPNトンネル1011を設定する。従って、クライアントは、VPNトンネルを用いて他の信頼できるクライアントと通信し、アクセス・ポイント及び暗号化を提供する。VPNトンネルは、中央サーバを通じて流れることができ、又はVPNマネージャは、付加的な軽量トンネルを生成することができる。ハイブリッド・クラウド環境内のVPNトンネルについての上記の説明と同様に、2つのクラウド環境1001と1003との間で管理されるVPNトンネルを再構成し、併合し、分割して、そのライフサイクル中のアプリケーションの必要性に適合させることができる。
【0100】
上述の主題は、多くの利点を提供する。好ましい実施形態において、VPNトンネルの併合及び分割は、ネットワークの最適化を可能にする。VPNマネージャは、VPNの位置及び結合に関して決定を行うとき、利用可能な帯域幅、利用可能なマシン・コンピュート、ネットワーク・トポロジ及びVPNオーバーヘッドを考慮に入れることができる。従来技術は、クラウド環境間のセキュリティを提供するために、専用VPNトンネルを用いる。所定のVPNトンネルにおけるスループットを監視することにより、VPNマネージャは、大量のトラフィックを処理するVPNを分割するために付加的なVPNトンネルの生成を示唆する、又は同じクラウド内の位置で終了する十分に活用されていないVPNの併合を示唆することができる。
【0101】
十分な特権を有した状態でクラウド環境に統合されるとき、VPNマネージャは、VPNトラフィックのオフロードのために、専用マシンを自動的にデプロイすることができる。VPNマネージャが、利用可能なクラウド管理者の資格証明を有する場合、VPNマネージャは、その資格証明を用いて、クラウド内にVMを自動的に作成し、それをVPNトラフィックの処理専用にし、従って、負荷を共有するために新しいVPNマネージャを作成することができる。このことは、VPNマネージャを実行している既存のマシン上の負荷を軽減するのを助け、VPNマネージャをハイブリッド・クラウドのためにさらに拡大縮小可能にもする。次に、全ての又は一部のVPNエージェントが新しいVPNマネージャとの通信を開始する。別の実施形態において、VPNマネージャは、可用性に応じて、専用VPN機器にオフロードすることもできる。VPNマネージャがVPN機器を検出する場合、VPN機器がVPNマネージャをインストールする(又は既にインストールされたVPNマネージャを使用する)ことができ、次に、クラウドVMに類似した方法で、VPNマネージャはVPN機器へのトラフィックのオフロードを開始し、既存のVPNマネージャへのワークロードの一部を緩和することができる。本発明の幾つかの好ましい実施形態において本発明の大部分が自律的であり得るが、管理者は、ユーザ・インターフェースを通じてVPNトンネルを手動で調整することができる。本発明の自律的な実施形態において、ユーザ・インターフェースを提供して、管理者に、VPNマネージャが取るアクションを警告することができる。管理者は、エージェントにより検出されるイベントのログ、及びVPNマネージャにより取られる又はVPNマネージャに取られように指示される後のアクションを調べて、自律的ポリシーを調整するか又はVPNマネージャにより取られるアクションを無効にすることができる。管理者は、物理VPN機器をインストールし、それらの機器をデフォルトで明示的に使用するように、VPNマネージャを構成することができる。
【0102】
代替的な実施形態において、上述したエージェント・ベースの管理ではなく、VPNマネージャは、クラウドAPI又は既存のエージェント(シェフ・クライアント・エージェントのような)を利用して、VPNトンネルのエンドポイントを再構成することができる。これらの実施形態において、VPNエージェントにより取られる上述したアクションは、シェフ・エージェント、又はクラウド・インフラストラクチャ内に既にある機構を制御する他のVPNのような他のネットワーク・エンティティにより代わりに取られる。クラウドAPIを使用する際、1つ1つのマシン上にエージェントをデプロイする代わりに、ソフトウェア定義ネットワーク(software defined network、SDN)に接続される全てのVMに対するVPNトンネルを作成するために用いることができる、クラウド内で利用可能なソフトウェア・ベースのネットワーキングが存在し得る。
【0103】
上述のように、アプリケーションは、アプリケーションのライフサイクルが変更されると、VPNトンネルについてのVPNパラメータを変更することができる。例えば、アプリケーション・デプロイメント・プロセスの間、アプリケーションが、異なる通信帯域幅及びセキュリティ・プロトコルを要求することがある。例えば、製品のインストール中、VPNトンネル上のSSHプロトコルを必要とするが、製品の実行中は必要とされないことがある。アプリケーションは、動的VPNトンネル再構成に関する新しい要件の組をVPNマネージャに提供することができる。
【0104】
VPNマネージャは、組織のネットワーク内のアプリケーションの組又はマシンにより供給される詳細かつ動的な要件に応答して、動的なVPNのデプロイメント、管理及び再構成を提供することができる。複数の柔軟なVPNトンネルの併合及び分割を可能にすることにより、ハイブリッド・クラウドの効率及びセキュリティが改善される。さらに、組織は、本発明を用いて、パートナー又は他の信頼できるエンティティにより制御されるクラウド環境とのフェデレーションを有するVPNトンネリング能力を提供することができる。異なる組織に属するVPNマネージャ間の信頼の確立を通じたVPN能力のフェデレーションは、アプリケーション自体が複数の組織に加わることを必要とせずに、アプリケーションが既存の信頼関係を利用することを可能にする。
【0105】
本発明の実施形態は、より効率的な管理、及びVPNアクティビティのオフロードのために、クラウドによりホストされるハードウェアの自動化されたデプロイメント及び除去に応じて、VPNトンネル・トポロジを変更することを可能にする。VPN技術の選択は、環境の変化及び要求中のアプリケーションの要件に対応する。クラウド・インフラストラクチャ(API、自動化デプロイメント・ツール)を利用することにより、VPNマネージャは、最小の付加的なインフラストラクチャで、VPNトンネルを管理することができる。本発明の実施形態は、アプリケーション駆動コマンドに基づく許可されたプロトコルのリアルタイムの変更といった、アプリケーション・ライフサイクルに基づく通信を応答可能なように変更する。管理者又はアプリケーションの組により与えられるVPNトンネル要件を連続的に監視することにより、本発明の実施形態は、動的なVPNトンネルの再構成を提供する。
【0106】
従来技術に優る本発明の多くの利点がある。本発明は、アプリケーションにより与えられる詳細かつ動的な要件に応答して、動的なVPNデプロイメント、管理及び再構成を提供する。さらに、複数のVPNマネージャは、異なるクラウド内で、VPNマネージャ間の信頼の確立を通じたVPN能力のフェデレーションにより、VPNを管理することができ、アプリケーションは、既存の信頼関係を利用して、異なるクラウドからの信頼できるVPNマネージャからVPNを要求することができる。
【0107】
複数の柔軟なVPNトンネルを単一のVPNトンネルに結合することにより、クラウド間の通信の効率及びセキュリティが改善される。必要な場合は、新しいデマンドを満たすために結合したVPNの分割を達成することもできる。本発明の実施形態において、VPN機能を提供するために用いられるハードウェアが、より効率的な管理のために、自動的にデプロイされ、除去される。所定のトンネルを作成するために選択されるVPN技術は、アプリケーションにより指定されるクラウド環境及び要件に対応する。専用VPNエージェントが用いられる場合、専用VPNエージェントは、VPNトンネルを要求しているアプリケーション又はマシンにより要求される要件を提供するように構成される。クラウド・インフラストラクチャ自体は柔軟性があり、マシン間のタスクの再割り当てを可能にする。必要に応じて、そうしたリソースを付加的な管理VPNに動的に割り当てることによって、この柔軟性を、VPN管理プロセス(API、自動化デプロイメント・ツール)において利用することができる。
【0108】
VPNトンネルを対応して変更し、アプリケーション・ライフサイクルに基づく通信チャネルの拡張又は制限、並びに、アプリケーション駆動コマンドに基づくVPNトンネルにおける許可されたプロトコルのリアルタイムの変更をもたらすことができる。本発明の好ましい実施形態において、VPNエージェントは、動的なVPN再構成のために、管理者又はアプリケーション、又はアプリケーションの組により与えられるVPN要件、並びにアプリケーションにより求められる実際のスループットを連続的に監視する。既述のように、本明細書での手法は、手動で又は自動化した方法で、全体的に又は部分的に実施することができる。
【0109】
好ましい動作環境及び使用事例が説明されたが、本明細書における技術は、サービスをデプロイすることが望まれる他のいずれの動作環境でも使用することができる。
【0110】
説明されたように、上述の機能は、例えば、1つ又は複数のハードウェア・プロセッサにより実行される1つ又は複数のソフトウェア・ベースの機能など、独立型の手法として実装することができ、又は管理されるサービスとして(SOAP/XMLインターフェースを介したウェブ・サービスとして等)利用可能であり得る。本明細書で説明される特定のハードウェア及びソフトウェア実装の詳細は、説明のためのものであり、説明される主題の範囲を制限することを意図したものではない。
【0111】
より一般的には、開示される主題の文脈内のコンピューティング・デバイスは、それぞれハードウェア及びソフトウェアを含むデータ処理システム(
図2に示されるような)であり、これらのエンティティは、インターネット、イントラネット、エクストラネット、プライベート・ネットワーク、又は他のいずれかの通信媒体若しくはリンクのようなネットワーク上で互いに通信する。データ処理システ上のアプリケーションは、制限なく、とりわけHTTP、FTP、SMTP、SOAP、XML、WSDL、UDDI及びWSFLへのサポートを含む、ウェブ及び他の周知のサービス及びプロトコルへのネイティブ・サポートを提供する。SOAP、WSDL、UDDI及びWSFLに関する情報は、これらの標準の開発及び維持を担当するワールド・ワイド・ウェブ・コンソーシアム(W3C)から入手可能であり、HTTP、FTP、SMTP、及びXMLに関するさらなる情報は、インターネット技術タスクフォース(IETF)から入手可能である。
【0112】
クラウド・ベースの環境に加えて、本明細書で説明される技術は、簡単なn階層アーキテクチャ、ウェブ・ポータル、フェデレーテッド・システム等を含む種々のサーバサイドのアーキテクチャにおいて又はこれと共に実施することができる。
【0113】
さらに一般的には、本明細書で説明される主題は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はソフトウェアの要素とハードウェアの要素の両方を含む実施形態の形態をとることができる。好ましい実施形態において、信頼できるプラットフォーム・モジュール機能は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがこれらに限定されないソフトウェアの形で実装することができる。さらに、ダウンロード及び削除インターフェース及び機能は、コンピュータ又はいずれかの命令実行システムにより又はこれと共に使用されるプログラム・コードを提供するコンピュータ使用可能又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形を取ることができる。この説明の目的のために、コンピュータ使用可能又はコンピュータ可読媒体は、命令実行システム、装置、又はデバイスにより又はこれと共に使用されるプログラムを収容又は格納する任意の装置とすることができる。媒体は、電子、磁気、光学、電磁気、赤外線又は半導体のシステム(若しくは装置若しくはデバイス)とすることができる。コンピュータ可読媒体の例として、半導体又はソリッド・ステート・メモリ、磁気テープ。取り外し可能なコンピュータ・ディスケット、ランダム・アクセス。メモリ(RAM)、読み出し専用メモリ(ROM)、剛性磁気ディスク及び光ディスクが挙げられる。光ディスクの現在の例として、コンパクト・ディスク−読み出し専用メモリ(CD−ROM)、コンパクト・ディスク−読み出し/書き込み(CD−R/W)及びDVDが挙げられる。コンピュータ可読媒体は、有形の非一時的な(non-transitory)項目である。
【0114】
コンピュータ・プログラム製品は、説明される機能の1つ又は複数を実施するためのプログラム命令(又はプログラム・コード)を有する製品とすることができる。これらの命令又はコードは、遠隔データ処理システムからネットワーク上でダウンロードされた後、データ処理システムのコンピュータ可読ストレージ媒体内に格納することができる。或いは、これらの命令又はコードは、サーバ・データ処理システムのコンピュータ可読ストレージ媒体内に格納し、遠隔システム内のコンピュータ可読ストレージ媒体で使用するために、ネットワーク上で遠隔データ処理システムにダウンロードするように適合することができる。
【0115】
代表的な実施形態において、技術は、専用コンピューティング・プラットフォーム内で、好ましくは1つ又は複数のプロセッサにより実行されるソフトウェアの形で実装される。ソフトウェアは、1つ又は複数のデータ・ストア又は1つ又は複数のプロセッサと関連したメモリ内に保持され、かつ、1つ又は複数のコンピュータ・プログラムとして実装することができる。まとめると、専用ハードウェア及びソフトウェアは、上述の機能を含む。
【0116】
好ましい実施形態において、本明細書で与えられる機能は、既存のクラウド・コンピュート・デプロイメント管理の解決法への付加物又は拡張として実装される。
【0117】
上記は、本発明の特定の実施形態により実施される動作の特定の順序を説明するが、この順序は例示的なものであり、代替的な実施形態は動作を異なる順序で実施し、特定の動作を組み合わせ、特定の動作を重ねること等が可能であることを理解されたい。明細書における所定の実施形態への参照は、説明される実施形態が特定の特徴、構造、又は特性を含むが、あらゆる実施形態が必ずしも特定の特徴、構造、又は特性を含むわけではないことを指し示す。
【0118】
最後に、システムの所定のコンポーネントが別個に説明されたが、当業者であれば、所定の命令、プログラム・シーケンス、コード部分等において機能の一部を組み合わせること又は共有することができる。