(57)【特許請求の範囲】
【請求項１】
複数のデータベースサービスを提供する複数のデータベースサーバを、複数のデータベースサービスコンシューマをホストする複数のアプリケーションサーバに直接接続する接続ベースのスイッチドファブリックを有するマルチテナント環境においてデータベースサーバ内のネットワークセキュリティを提供するための方法であって、当該複数のデータベースサービスコンシューマの各々は異なるデータベースサービスコンシューマアイデンティティに関連付けられており、当該方法は、
当該複数のデータベースサーバのうちの１つのデータベースサーバにおいてアクセス制御リストを受信することを備え、当該アクセス制御リストは、前記複数のデータベースサービスを識別し、前記複数のデータベースサービスの各々について、前記複数のデータベースサービスの前記各々にアクセスすることが許可されている１つ以上のデータベースサービスコンシューマに関連付けられている１つ以上のデータベースサービスコンシューマアイデンティティを識別し、当該方法はさらに、
当該複数のデータベースサーバを当該複数のアプリケーションサーバに直接接続する当該接続ベースのスイッチドファブリック上で送信される複数の通信パケットを、当該１つのデータベースサーバにおいて受信することと、
前記複数の通信パケットの各通信パケットについて以下のステップを当該１つのデータベースサーバ内で実行することとを備え、前記ステップは、
当該通信パケットがいずれのデータベースサービスコンシューマアイデンティティも含んでいない場合、当該通信パケットを破棄することと、
当該通信パケットがデータベースサービスコンシューマアイデンティティを含んでいる場合、当該通信パケットに含まれているデータベースコンシューマアイデンティティを用いて、当該通信パケットを送信したサービスコンシューマを識別することと、
前記アクセス制御リストを当該通信パケットに含まれている前記データベースコンシューマアイデンティティと組合せて用いて、前記アクセス制御リストが、前記データベースサービスコンシューマが前記複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、当該データベースコンシューマによる前記１つのデータベースサービスへのアクセスを防止することとを含む、方法。
【請求項２】
前記通信パケットはアドレス解決プロトコル（ＡＲＰ）要求であり、前記アクセス制御リストを当該通信パケットに含まれている前記データベースコンシューマアイデンティティと組合せて用いて、前記アクセス制御リストが、前記データベースコンシューマが前記複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、当該データベースコンシューマによる前記１つのデータベースサービスへのアクセスを防止することは、
当該アクセス制御リストが、前記データベースサービスコンシューマが前記１つのデータベースサーバによって提供される前記複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別しているか否かを、当該１つのデータベースサーバ内で判断することと、
当該アクセス制御リストが、前記データベースサービスコンシューマが前記１つのデータベースサーバによって提供される前記複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別していない場合、ＡＲＰ応答を送信することなく、当該ＡＲＰ要求をドロップすることとを備える、請求項１に記載の方法。
【請求項３】
前記通信パケットは接続確立要求であり、前記アクセス制御リストを当該通信パケットに含まれている前記データベースコンシューマアイデンティティと組合せて用いて、前記アクセス制御リストが、前記データベースコンシューマが前記複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、当該データベースコンシューマによる前記１つのデータベースサービスへのアクセスを防止することは、
当該アクセス制御リストが、前記データベースサービスコンシューマが前記１つのデータベースサーバによって提供される前記複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別しているか否かを、当該１つのデータベースサーバ内で判断することと、
当該アクセス制御リストが、前記データベースサービスコンシューマが前記１つのデータベースサーバによって提供される前記複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別していない場合、接続を確立することなく、当該接続確立要求をドロップすることとを備える、請求項１または２に記載の方法。
【請求項４】
前記通信パケットは接続確立要求であり、前記アクセス制御リストを当該通信パケットに含まれている前記データベースコンシューマアイデンティティと組合せて用いて、前記アクセス制御リストが、前記データベースコンシューマが前記複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、当該データベースコンシューマによる前記１つのデータベースサービスへのアクセスを防止することは、
当該接続確立要求がどのデータベースサービスに接続することを要求しているかを、当該１つのデータベースサーバ内で判断することと、
当該アクセス制御リストが、前記データベースサービスコンシューマが前記１つのデータベースサービスにアクセスすることが許可されていると識別していない場合、前記接続確立要求に応答して当該１つのデータベースサービスへの接続の確立を防止することととを備える、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記通信パケットは接続確立要求であり、前記アクセス制御リストを当該通信パケットに含まれている前記データベースコンシューマアイデンティティと組合せて用いて、前記アクセス制御リストが、前記データベースコンシューマが前記複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、当該データベースコンシューマによる前記１つのデータベースサービスへのアクセスを防止することは、
前記接続確立要求に応答して接続を形成することと、
前記接続上で当該データベースサービスコンシューマによってアクセスされるように意図されているデータベースサービスのＩＤを、前記接続上で受信することと、
当該アクセス制御リストが、前記データベースサービスコンシューマが前記１つのデータベースサービスにアクセスすることが許可されていると識別していない場合、前記接続を終了することとを備える、請求項１に記載の方法。
【請求項６】
前記通信パケットは、当該データベースサービスコンシューマとデータベースサービスとの間に確立された接続上で受信されるデータパケットであり、前記アクセス制御リストを当該通信パケットに含まれている前記データベースコンシューマアイデンティティと組合せて用いて、前記アクセス制御リストが、前記データベースコンシューマが前記複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、当該データベースコンシューマによる前記１つのデータベースサービスへのアクセスを防止することは、
ハードウェアコンテキストを、当該データベースサービスコンシューマと当該１つのデータベースサービスとの間に確立された前記接続に関連付けることを備え、当該ハードウェアコンテキストは、当該データベースサービスコンシューマの当該データベースサービスコンシューマ識別子を含み、前記防止することはさらに、
前記データパケットが、当該接続に関連付けられている当該ハードウェアコンテキストに含まれている当該データベースサービスコンシューマアイデンティティを含んでいない限り、前記データパケットをドロップすることを備える、請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記データパケットは当該１つのデータベースサーバのホストチャネルアダプタにおいて受信され、当該ハードウェアコンテキストは前記ホストチャネルアダプタのメモリに格納され、前記データパケットが、当該接続に関連付けられている当該ハードウェアコンテキストに含まれている当該データベースサービスコンシューマアイデンティティを含んでいない限り、前記データパケットをドロップすることは、
前記データパケットが、当該接続に関連付けられている当該ハードウェアコンテキストに含まれており、かつ前記ホストチャネルアダプタの当該メモリに格納されている、当該データベースサービスコンシューマアイデンティティを含んでいない限り、当該ホストチャネルアダプタを用いて前記データパケットをドロップすることを備える、請求項６に記載の方法。
【請求項８】
前記アクセス制御リストを当該通信パケットに含まれている前記データベースコンシューマアイデンティティと組合せて用いて、前記アクセス制御リストが、前記データベースコンシューマが前記複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、当該データベースコンシューマによる前記１つのデータベースサービスへのアクセスを防止することは、
前記アクセス制御リストに基づいて、アドレス解決アクセス制御、接続確立アクセス制御、およびデータ交換アクセス制御のうちの少なくとも１つを実行することを備える、請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記接続ベースのスイッチドファブリックはインフィニバンドファブリックであり、前記通信パケットは、当該複数のデータベースサーバを当該複数のアプリケーションサーバに直接接続する当該インフィニバンドファブリック上で当該１つのデータベースサーバにおいて受信されるインフィニバンドプロトコル通信パケットであり、前記複数の通信パケットのうちの当該通信パケットについて当該１つのデータベースサーバによって実行される当該ステップは、
当該インフィニバンドプロトコル通信パケットがグローバルルーティングヘッダを含んでいない場合、当該インフィニバンドプロトコル通信パケットを破棄することと、
当該インフィニバンドプロトコル通信パケットがグローバルルーティングヘッダを含んでいる場合、当該インフィニバンドプロトコル通信パケットの当該グローバルルーティングヘッダに含まれているソースグローバル識別子を用いて、当該インフィニバンドプロトコル通信パケットを送信したサービスコンシューマを識別することと、
前記アクセス制御リストを当該インフィニバンドプロトコル通信パケットの当該グローバルルーティングヘッダに含まれている前記ソースグローバル識別子と組合せて用いて、前記アクセス制御リストが、前記データベースサービスコンシューマが前記複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、当該データベースコンシューマによる前記１つのデータベースサービスへのアクセスを防止することとを備える、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
前記接続ベースのスイッチドファブリックはインフィニバンドファブリックであり、前記方法はさらに、
前記複数のデータベースサービスコンシューマから送信される各インフィニバンドパケットが、前記各パケットに関連付けられているデータベースサービスコンシューマを識別するソースグローバル識別子を含まなければならないように、前記複数のデータベースサーバを、各々がグローバルルーティングヘッダおよびソースグローバル識別子を含むインフィニバンドプロトコルパケットを用いること以外によって前記複数のデータベースサービスコンシューマと前記複数のデータベースサービスとの間のデータ交換を禁止するように構成することを備える、請求項１から９のいずれか１項に記載の方法。
【請求項１１】
複数のデータベースサービスコンシューマをホストする複数のアプリケーションサーバに直接接続される接続ベースのスイッチドファブリックを有するマルチテナント環境においてネットワークセキュリティを提供するためのシステムであって、当該複数のデータベースサービスコンシューマの各々は異なるデータベースサービスコンシューマアイデンティティに関連付けられており、当該システムは、
複数のデータベースサービスを提供する複数のデータベースサーバを備え、当該複数のデータベースサーバの各データベースサーバは、マイクロプロセッサ、メモリおよびネットワークインターフェイスを備え、当該システムはさらに、
当該複数のデータベースサーバの各々の上に格納されているアクセス制御リストを備え、当該アクセス制御リストは、前記複数のデータベースサービスを識別し、前記複数のデータベースサービスの各々について、前記複数のデータベースサービスの前記各々にアクセスすることが許可されている１つ以上のデータベースサービスコンシューマに関連付けられている１つ以上のデータベースサービスコンシューマアイデンティティを識別し、
当該複数のデータベースサーバの各データベースサーバの当該ネットワークインターフェイスは、当該複数のデータベースサーバを当該複数のアプリケーションサーバに直接接続する当該接続ベースのスイッチドファブリック上で送信される複数の通信パケットを受信するように構成され、
当該ネットワークインターフェイスは、当該ネットワークインターフェイスにおいて受信される前記複数の通信パケットの各通信パケットについて以下のステップを実行するように構成され、前記ステップは、
当該通信パケットがいずれのデータベースサービスコンシューマアイデンティティも含んでいない場合、当該通信パケットを破棄することと、
当該通信パケットがデータベースサービスコンシューマアイデンティティを含んでいる場合、当該通信パケットに含まれているデータベースコンシューマアイデンティティを用いて、当該通信パケットを送信したサービスコンシューマを識別することと、
当該データベースサーバ上に格納されている当該アクセス制御リストを当該通信パケットに含まれている前記データベースコンシューマアイデンティティと組合せて用いて、前記アクセス制御リストが、前記データベースサービスコンシューマが前記複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、当該データベースコンシューマによる前記１つのデータベースサービスへのアクセスを防止することとを含む、システム。
【請求項１２】
請求項１〜９のいずれかに記載の方法をコンピュータに実行させる、プログラム。
【請求項１３】
請求項１２に記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、システム。
【請求項１４】
請求項１から１０のいずれか１項に記載のネットワークセキュリティを提供するための方法であって、当該マルチテナント環境は、複数の異なるテナントに関連付けられているデータを保持している複数のストレージセルをさらに有し、当該複数のデータベースサービスの各々は、前記複数のストレージセル内に保持されている前記複数の異なるテナントに関連付けられている前記データを利用し、当該データベースサービスコンシューマは当該複数の異なるテナントに関連付けられており、当該方法は、
当該接続ベースのスイッチドファブリックを、前記複数のデータベースサービスコンシューマおよび前記複数のデータベースサーバにとってアクセス可能なデータベースアクセスパーティションを有するように構成することと、
当該接続ベースのスイッチドファブリックを、前記複数のデータベースサーバおよび前記複数のストレージセルにとってはアクセス可能であるが前記複数のデータベースサービスコンシューマにとってはアクセス不可能なストレージアクセスパーティションを有するように構成することと、
当該複数のアプリケーションサーバの各々のネットワークインターフェイスを、前記アプリケーションサーバ上にホストされている当該複数のデータベースサービスコンシューマの各々を固有のデータベースサービスコンシューマアイデンティティに関連付けるように構成することと、
当該複数のアプリケーションサーバの各々の当該ネットワークインターフェイスを、前記データベースサービスコンシューマから前記複数のデータベースサービスに向けて送信される当該通信パケットの各々の内部の前記アプリケーションサーバ上にホストされている当該複数のデータベースサービスコンシューマの各々に関連付けられている当該データベースサービスコンシューマアイデンティティを含むように構成することと、
当該複数のデータベースサーバの各々にアクセス制御リストを提供することとを備え、当該アクセス制御リストは、前記複数のデータベースサービスを識別し、前記複数のデータベースサービスの各々について、前記複数のデータベースサービスの前記各々にアクセスすることが許可されている１つ以上のデータベースサービスコンシューマに関連付けられている１つ以上のデータベースサービスコンシューマアイデンティティを識別し、当該方法はさらに、
データベースサービスコンシューマアイデンティティを含んでいない前記複数のアプリケーションサーバから受信したすべての通信パケットを、当該複数のデータベースサーバの各々のネットワークインターフェイスを用いて破棄することと、
前記アクセス制御リストを、当該複数のデータベースサーバのうちの特定のデータベースサーバの特定のネットワークインターフェイスにおいて受信した特定の通信パケットに含まれている特定のデータベースサービスコンシューマアイデンティティと組合せて用いて、前記アクセス制御リストが、前記特定のデータベースサービスコンシューマが前記複数のデータベースサービスのうちの特定のデータベースサービスにアクセスすることが許可されていると識別していない限り、当該特定のデータベースコンシューマアイデンティティに関連付けられている当該特定のデータベースサービスコンシューマによる前記特定のデータベースサービスへのアクセスを防止することとを備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示：
本特許文献の開示の一部には、著作権保護の対象となるものが含まれている。著作権者は、この特許文献または特許開示の何者かによる複製が、特許商標庁の特許ファイルまたは記録にある限り、それに対して異議を唱えないが、そうでなければ、いかなる場合もすべての著作権を留保する。
【０００２】
発明の分野：
本発明は概してコンピュータシステムに関し、特にネットワーク環境においてセキュアな通信を提供することに関する。
【背景技術】
【０００３】
背景：
相互接続ネットワークは、次世代のスーパーコンピュータ、クラスタ、およびデータセンターに有益な役割を果たす。より大型のクラウドコンピューティングアーキテクチャが導入されるにつれて、旧来のネットワークおよびストレージと関連しているパフォーマンスおよび管理ボトルネックが重要な問題となっている。次世代データセンターは、アプリケーションをホストするための複数のコンピュートノードを有するミドルウェアマシンシステムを含み得る。そのようなミドルウェアマシンシステムの一例は、Ｏｒａｃｌｅ（登録商標）Ｅｘａｌｏｇｉｃコンピュータアプライアンスである。次世代データセンターは、データベースサーバシステムをさらに含み得る。データベースサーバシステムの一例は、Ｏｒａｃｌｅ（登録商標）Ｅｘａｄａｔａデータベースマシンである。ミドルウェアマシンシステムはデータベースサーバシステムと連携して働く。データベースサーバシステムに格納されているデータは、ミドルウェアマシンシステムにおけるコンピュータオペレーションのために用いられて取出され、ミドルウェアマシンシステムにおいて生成または修正されたデータはデータベースサーバシステムに格納される。したがって、ミドルウェアマシンシステムとデータベースサーバシステムとの間の接続は高信頼性、高速、低レイテンシおよび高帯域幅で低プロトコルオーバーヘッドであることが重要である。たとえば、インフィニバンド（InfiniBand）（ＩＢ）技術は、クラウドコンピューティングファブリックの基礎としてますます展開されつつある。インフィニバンドは、とりわけ、ミドルウェアマシンシステムとデータベースサーバシステムとの間のリモートダイレクトメモリアクセス（remote direct memory access：ＲＤＭＡ）オペレーションをサポート可能なスイッチドファブリックトポロジを用いる接続ベースの通信プロトコルである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、データセンターは複数のテナントによって共有されることが多い。複数のテナントは、たとえば、クラウドコンピューティング環境における異なる企業体であり得る。データセンターが単一の企業体に専用である場合でも、財務、人事、技術などの異なる部門の形態で複数のテナントが存在し得、当該部門は他の部門に対して非公開にしておかなければならないデータを所有している。マルチテナント環境では、データがセキュアであり、許可テナントおよび関連ユーザにとってはアクセス可能であるが無許可テナントおよび関連ユーザにとってはアクセス不可能であることが重要または必要である。同様に、ミドルウェアマシンシステム内のアプリケーションは特定のテナントに関連付けられているため、データベースサーバシステム内のデータは一定のアプリケーションにとってはアクセス可能であるが他のアプリケーションにとってはアクセス不可能であるべきである。
【０００５】
データを不正アクセスから保護する従来の方法は、ファイアウォールアプライアンスの使用である。イーサネット（Ethernet）（登録商標）ファイアウォールアプライアンスなどのファイアフォールアプライアンスが、共有のイーサネット媒体内にあるミドルウェアマシンシステムとデータベースサーバシステムとの間に配置され得る。ファイアウォールアプライアンスは、そのようなサービスについてのポートを許可テナントおよびそれらの関連付けられたアプリケーションにとって利用可能とし、無許可テナントおよびそれらの関連付けられたアプリケーションにとっては利用不可能とするデータベースサービスへのアクセスを制御する。しかし、そのようなファイアウォールアプライアンスの使用は、ミドルウェアマシンシステムとデータベースサーバシステムとの間の直接接続を必然的に妨げ、間接接続に対するボトルネックとなる。現在利用可能なインフィニバンドファイアウォールアプライアンスはない。したがって、ファイアウォールが必要である／指定される場合、従来のイーサネットファイアウォールアプライアンス（など）を使用すべきである。しかし、従来のイーサネットファイアウォールアプライアンスの使用は付加的なネットワーキングオーバーヘッドを導入し、システムのスケーラビリティを制限するボトルネックを作成する。従来のイーサネットファイアウォールアプライアンスの使用は、インフィニバンドなどの高速接続ベースのスイッチドファブリックの使用と、そのような接続ベースのスイッチドファブリックがミドルウェアマシンシステムとデータベースサーバシステムとの間で実行されるオペレーションに提供する最適化とを不可能にする。
【０００６】
中間ノードを用いてセキュリティを提供するミドルウェアおよびアプリケーション実行システムのためのエンジニアド・システムにおいてデータフローを提供および制御するための先行のシステムおよび方法は、２０１４年８月２５日に出願され「SYSTEM AND METHOD FOR PROVIDING A DATA SERVICE IN AN ENGINEERED SYSTEM FOR MIDDLEWARE AND APPLICATION EXECUTION（ミドルウェアおよびアプリケーションの実行のためにエンジニアド・システムにおいてデータサービスを提供するためのシステムおよび方法）」と題された米国特許出願番号第１４／４６７８５９号、２０１４年８月２５日に出願され「SYSTEM AND METHOD FOR CONTROLLING A DATA FLOW IN AN ENGINEERED SYSTEM FOR MIDDLEWARE AND APPLICATION EXECUTION（ミドルウェアおよびアプリケーションの実行のためにエンジニアド・システムにおいてデータフローを制御するためのシステムおよび方法）」と題された米国特許出願番号第１４／４６７８６０号、２０１４年８月２５日に出願され「SYSTEM AND METHOD FOR SUPPORTING DATA SERVICE ADDRESSING IN AN ENGINEERED SYSTEM FOR MIDDLEWARE AND APPLICATION EXECUTION（ミドルウェアおよびアプリケーションの実行のためにエンジニアド・システムにおいてデータサービスアドレス指定をサポートするためのシステムおよび方法）」と題された米国特許出願番号第１４／４６７８６８号、および２０１４年８月２５日に出願され「SYSTEM AND METHOD FOR SUPPORTING HOST CHANNEL ADAPTER (HCA) FILTERING IN AN ENGINEERED SYSTEM FOR MIDDLEWARE AND APPLICATION EXECUTION（ミドルウェアおよびアプリケーションの実行のためにエンジニアド・システムにおいてホストチャネルアダプタ（ＨＣＡ）フィルタリングをサポートするためのシステムおよび方法）」と題された米国特許出願番号第１４／４６７８９６号に記載されており、上記出願は本明細書に引用により援用される。しかし、中間ノードを用いると、レイテンシおよび通信チャネルに対するオーバーヘッドが必然的に増加する。これらの出願では、一般適用性を有するファイアウォールアプライアンスが記載されている。しかし、中間ノードは２つのエンドポイント同士の間を移動する各パケットを受信および処理するため、当該ソリューションは余分なネットワーキングオーバーヘッドを必要とし、レイテンシおよびスケーラビリティ問題に影響を与える。加えて、パケット毎に必要な処理に鑑みて、システムは、オーバーヘッド、レイテンシ、およびスケーラビリティの影響と相対的に、どれほどのディープパケット処理が行なわれるかについてのトレードオフを行なう。
【０００７】
標準的なファイアウォールアプライアンスを用いて本発明の開示に記載されているのと同様のソリューションを提供するためには、本発明の開示に記載されているように、各接続の状態、および、この接続と、たとえばデータベースサービスなどの特有のアプリケーション層構造との関連付けを追跡する必要があるであろう。
【０００８】
したがって、マルチテナント環境においてデータのセキュリティを保証するセキュリティソリューションを提供しつつ、中間ファイアウォールアプライアンスおよび／または中間ノードの従来の使用によって提起される不利点を克服することが望ましいであろう。
【課題を解決するための手段】
【０００９】
概要：
マルチテナント環境においてデータのセキュリティを保証するセキュリティソリューションを提供しつつ、中間ファイアウォールアプライアンスの従来の使用によって提起される不利点を克服するシステムおよび方法が本明細書に記載される。本明細書に記載されるセキュリティソリューションは必然的に中間ファイアウォールアプライアンスの使用を回避し、ミドルウェアマシンシステムとデータベースサーバシステムとの間のボトルネックのない直接接続を可能にする。当該セキュリティソリューションによって、ミドルウェアマシンシステムとデータベースサーバシステムとをリンクするインフィニバンドなどの高速接続ベースのスイッチドファブリックの使用と、そのような接続ベースのファブリックがミドルウェアマシンシステムとデータベースサーバシステムとの間で実行されるオペレーションに提供し得る最適化とが可能になる。ミドルウェアマシンシステム内のノードおよびデータベースサーバシステム内のノードは、中間ファイアウォールアプライアンスまたはコンピューティングノードを全く通過することなく、スイッチドファブリック内の１つ以上のスイッチを介して直接接続され得る。当該セキュリティソリューションは、ＳＲ−ＩＯＶ技術によって提供される最適化を含む、そのような直接接続によって可能となる広範囲の最適化をシステムが利用することができる態様で動作する。
【００１０】
いくつかの実施形態では、本開示では、複数のデータベースサービスを提供するデータベースサーバを、各々が異なるデータベースサービスコンシューマアイデンティティを有するデータベースサービスコンシューマをホストするアプリケーションサーバに直接接続する接続ベースのスイッチドファブリックを有するマルチテナント環境においてセキュリティを提供する統合型ファイアウォールが記載される。各データベースサーバに統合されるファイアウォール機能は、データベースサービスコンシューマアイデンティティを含んでいない通信パケットを破棄し、データベースサービスコンシューマアイデンティティを、データベースサービスコンシューマからデータベースサービスへのアクセスを制御するためのアクセス制御リストと組合せて用いることによって、アクセス制御を提供する。アクセス制御は、上記アクセス制御リストに基づくアドレス解決アクセス制御、接続確立アクセス制御、およびデータ交換アクセス制御を含む。統合型ファイアウォールによって、別個の中間ファイアウォールアプライアンスまたはセキュリティノードを必要とせずに提供するインフィニバンドネットワークを介してデータベースサーバおよびアプリケーションサーバの直接接続が可能になる。統合型ファイアウォールによって、システムは、（許可されている場合）コンシューマからデータベースサービスへの直接ネットワーキングハードウェアアクセスを提供するＳＲ−ＩＯＶ技術を利用することができる。
【００１１】
いくつかの実施形態では、本開示では、接続ベースのファブリック、異なるテナントに関連付けられているデータを保持しているストレージセル、上記データを用いて複数のデータベースサービスを提供するデータベースサーバ、データベースサービスコンシューマをホストするアプリケーションサーバを含むマルチテナント環境においてセキュアな通信を提供する完全なセキュリティソリューションが記載される。ファブリックは、ストレージセルをデータベースサービスコンシューマから分離する複数のパーティションに構成される。固有のデータベースサービスコンシューマアイデンティティが各データベースサービスコンシューマとセキュアに関連付けられている。セキュリティソリューションは、コンシューマ識別子がデータベースサービスコンシューマとデータベースサーバとの間のすべての通信に含まれるように構成される。データベースサーバは、アイデンティティを含んでいないデータベースサービスコンシューマからのすべての通信を拒否する。データベースサーバは、アクセス制御リストを通信パケット内に提供されるアイデンティティと組合せて用い、アドレス解決アクセス制御、接続確立アクセス制御、およびデータ交換アクセス制御の１つ以上を用いてデータベースサービスコンシューマからデータベースサービスへのアクセスを制御する。パケットに含まれているコンシューマアイデンティティに基づいて、サービス拒否（Denial of Service：ＤｏＳ）攻撃防止も実行され得る。セキュリティソリューションによって、別個の中間ファイアウォールアプライアンスまたはセキュリティノードを必要とせずにファイアウォール機能を提供するインフィニバンドネットワークを介してデータベースサーバおよびアプリケーションサーバの直接接続が可能になる。
【００１２】
いくつかの実施形態では、本開示では、ネットワーク環境においてセキュアな通信を提供可能なシステムおよび方法が記載される。ネットワーク上のマルチテナント環境などのネットワーク環境は、１つ以上のサービスプロバイダノード、１つ以上のサービスコンシューマノード、および１つ以上のストレージセルを含み得る。上記１つ以上のサービスプロバイダノードは、上記１つ以上のサービスプロバイダノードと上記１つ以上のサービスコンシューマノードとの間のセキュアな通信を保証し得る。さらに、ネットワーク環境は、上記１つ以上のサービスプロバイダノードに関連付けられている１つ以上のストレージセルを、上記１つ以上のサービスコンシューマノードから分離し得る。加えて、ネットワーク環境は、上記１つ以上のサービスコンシューマノード上の１つ以上の仮想マシン（ＶＭ）に、上記１つ以上のサービスプロバイダノード上で実行される１つ以上のサービスプロバイダインスタンスへのセキュアなアクセスを提供し得る。
【００１３】
いくつかの実施形態では、本開示では、ネットワーク環境においてセキュアな通信を影響するための方法であって、ネットワーク環境において１つ以上のサービスプロバイダノードを介して、上記１つ以上のサービスプロバイダノードと１つ以上のサービスコンシューマノードとの間のセキュアな通信を保証することと、上記１つ以上のサービスプロバイダノードに関連付けられている１つ以上のストレージセルを上記１つ以上のサービスコンシューマノードから分離することと、上記１つ以上のサービスコンシューマノード上の１つ以上の仮想マシン（ＶＭ）に、上記１つ以上のサービスプロバイダノード上で実行される１つ以上のサービスプロバイダインスタンスへのセキュアなアクセスを提供することとを含む方法が記載される。
【００１４】
本発明のこれらおよび他の目的および利点は、添付の図面を考慮して読まれると、さまざまな実施形態の以下の説明から当業者に明らかになるであろう。
【００１５】
発明のさまざまな実施形態が、以下の図に基づいて以下に詳細に記載される。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に従う、ネットワーク環境においてセキュアな通信を提供する例を示す図である。
【図２】本発明の実施形態に従う、スイッチドネットワーキングファブリックによってミドルウェアマシンシステムに接続されるデータベースサーバシステムを有する統合システム内のアクセス制御を示す図である。
【図３】本発明の実施形態に従う、スイッチドネットワーキングファブリックによってミドルウェアマシンシステムのコンピュートノードに接続されるデータベースサーバシステムのデータベースノード内のアクセス制御を示す図である。
【図４Ａ】本発明の実施形態に従う、ミドルウェアマシンシステムのコンピュートノード上の仮想マシンからの通信パケットにソース識別子をセキュアに埋込むためのシステムおよび方法の局面を示す図である。
【図４Ｂ】本発明の実施形態に従う、ミドルウェアマシンシステムのコンピュートノード上の仮想マシンからの通信パケットにソース識別子をセキュアに埋込むためのシステムおよび方法の局面を示す図である。
【図４Ｃ】本発明の実施形態に従う、ミドルウェアマシンシステムのコンピュートノード上の仮想マシンからの通信パケットにソース識別子をセキュアに埋込むためのシステムおよび方法の局面を示す図である。
【図５Ａ】本発明の実施形態に従う、アクセス制御リストを示す図である。
【図５Ｂ】本発明の実施形態に従う、図５Ａのアクセス制御リストを作成、更新および配布するためのシステムおよび方法を示す図である。
【図５Ｃ】本発明の実施形態に従う、図５Ａのアクセス制御リストを作成、更新および配布するためのシステムおよび方法を示す図である。
【図６】本発明の実施形態に従う、図５Ａのアクセス制御リストに基づいてデータベースノードにおいて実行される接続確立アクセス制御およびデータ交換制御の局面を示す図である。
【発明を実施するための形態】
【００１７】
詳細な説明：
ネットワーク環境においてセキュアな通信を提供し得るシステムおよび方法が本明細書に記載される。ネットワーク上のマルチテナント環境などのネットワーク環境は１つ以上のサービスプロバイダノード、１つ以上のサービスコンシューマノード、および１つ以上のストレージセルを含み得る。上記１つ以上のサービスプロバイダノードは、上記１つ以上のサービスプロバイダノードと上記１つ以上のサービスコンシューマノードとの間のセキュアな通信を保証し得る。さらに、ネットワーク環境は、上記１つ以上のサービスプロバイダノードに関連付けられている１つ以上のストレージセルを、上記１つ以上のサービスコンシューマノードから分離し得る。加えて、ネットワーク環境は、上記１つ以上のサービスコンシューマノード上の１つ以上の仮想マシン（ＶＭ）に、上記１つ以上のサービスプロバイダノード上で実行される１つ以上のサービスプロバイダインスタンスへのセキュアなアクセスを提供し得る。
【００１８】
以下の説明では、本発明は添付の図面の図中で限定としてではなく一例として説明される。本開示におけるさまざまな実施形態の参照は必ずしも同一の実施形態についてではなく、そのような参照は少なくとも１つを意味する。特有の実装が論じられるが、これは例示のためにのみ提供されていると理解される。関連技術の当業者は、本発明の範囲および精神から逸脱することなく他の構成要素および構成も用いられ得ると認識するであろう。
【００１９】
さらに、いくつかの例では、本発明の完全な説明を提供するために多数の具体的な詳細が示される。しかし、本発明はこれらの具体的な詳細がなくても実践され得ることが当業者に明らかになるであろう。他の例では、本発明を曖昧にするのを避けるために周知の特徴はそれほど詳細に記載されていない。
【００２０】
本発明は、特定された機能の実行およびそれらの関係を示す機能的構築ブロックの助けを借りて記載されている。説明の便宜上、これらの機能的構築ブロックの境界は本明細書においてしばしば任意に規定されてきた。したがって、同一の要素によって実行されると示されている機能は、代替的な実施形態では異なる要素によって実行されてもよい。また、別個の要素内で実行されると示されている機能は、代わりに組合わされて１つの要素にされてもよい。特定された機能およびそれらの関係が適切に実行される限り、代替的な境界を規定することができる。このため、そのようないかなる代替的な境界も、本発明の範囲および精神に含まれる。
【００２１】
図面および詳細な説明全体にわたって同様の要素を示すために共通の参照番号が用いられている。したがって、ある図中に用いられている参照番号は、当該要素が他の場所で記載されている場合、そのような図面に特有の詳細な説明において言及され得るか、または言及され得ない。３桁の参照番号の最初の桁は、当該要素が最初に現われる一連の図面を示す。
【００２２】
以下の説明において、いくつかの実施形態では、インフィニバンドファブリックによってＯｒａｃｌｅ（登録商標）Ｅｘａｄａｔａデータベースサーバシステムに接続されるＯｒａｃｌｅ（登録商標）Ｅｘａｌｏｇｉｃミドルウェアマシンを有するシステムが記載される。しかし、当業者は、本発明は本発明の範囲から逸脱することなく多くの高パフォーマンスコンピューティング環境に適用可能であると理解するであろう。さらに、インフィニバンドファブリックによってＯｒａｃｌｅ（登録商標）Ｅｘａｄａｔａデータベースサーバシステムに接続されるＯｒａｃｌｅ（登録商標）Ｅｘａｌｏｇｉｃミドルウェアマシンの多数の具体的な詳細が本発明の完全な説明を提供するために記載されるが、本発明はこれらの具体的な詳細がなくても実践され得ることが当業者に明らかになるであろう。したがって、本発明を具体化しているマルチテナントコンピューティング環境の特定の実装は、いくつかの実施形態では、本発明の範囲から逸脱することなく、一定の特徴を除外し得、および／または以下に記載されるミドルウェアマシン、データベースサーバシステムおよびインフィニバンドファブリックの特徴とは異なる、もしくは修正された特徴を含み得る。
【００２３】
図１は、本発明の実施形態に従う、ネットワーク環境においてセキュアな通信を提供するためのシステムおよび方法を概要を示す。図１に示されるように、マルチテナント環境１００はインフィニバンド（ＩＢ）サブネット１１０に基づき得る。ＩＢサブネット１１０は、１つ以上のサービスプロバイダ（たとえばデータベースノード１０２）、１つ以上のサービスコンシューマ（たとえばコンピュートノード１０１上の仮想マシン）、および１つ以上のストレージセル１０３を含む。典型的なシステムは、インフィニバンドサブネット１０１によって接続される多数の同様のデータベースノード１０２、コンピュートノード１０１およびストレージセル１０３を含むことになる。
【００２４】
図１に示されるように、マルチテナント環境１００は、データベースノード１０２に依拠して、ファイアウォール機能を実行し、かつ、コンピュートノード１０１上の仮想マシン１１１および１１２とデータベースノード１０２上のデータベースインスタンス１０３との間のセキュアな通信を提供し得る。トラステッドセキュリティドメインと見なされるデータベースノード１０２は、コンピュートノード１０１上の仮想マシンよりもセキュアである傾向がある。加えて、マルチテナント環境１００はストレージセル１０３をコンピュートノード１０１上の仮想マシンから分離することができ、すなわち、ストレージセル１０３にはデータベースノード１０２のみがアクセス可能であり得、コンピュートノード１０１上の仮想マシンはアクセス不可能である。
【００２５】
本発明の実施形態に従うと、マルチテナント環境１００をサポートするＩＢサブネット１１０は異なるパーティションを用いて構成され得る。たとえば、ストレージセル１０３へのアクセスは専用のＩＢパーティションを介して分離され得るため、ストレージセル１０３はコンピュートノード１０１上の仮想マシンにとってビジブルでない場合がある。加えて、データベースノード１０２へのアクセスは別の専用のパーティションを介して分離され得るが、データベースノード１０２はコンピュートノード１０１上で実行されるすべてのテナントによって共有され得る。一方、データベースノード１０２は、異なるネットワーキングインターフェイスを用いて両パーティションへのアクセスを有し得る。
【００２６】
図１に示されるように、コンピュートノード１０１は、たとえばＶＭ１１１〜１１２などの１つ以上の仮想マシン（ＶＭ）をサポートし得、当該仮想マシンの各々にＶＭ識別子が割当てられ得る。ＶＭデプロイメント時間において割当てられるＶＭ識別子は、ハードウェアを用いて実行され得る。ＶＭ識別子は、ＶＭ１１１〜１１２によって送信される各パケット内に現われ得る。さらに、ＶＭによるデータベースへのアクセスを制御するために用いられ得るＶＭ識別子は、ＶＭ自体によって操作され得ない。加えて、ＶＭ識別子は、ＶＭライフサイクル全体を通じて変更可能である（すなわち、ＶＭ識別子は永続的でない）。
【００２７】
図１に示されるように、マルチテナント環境１００は、ＶＭ１１１〜１１２によるデータベースインスタンス１１３へのセキュアなアクセスを保証し得る。たとえば、システムは、ＶＭ１１１〜１１２によってデータベースノード１０２に送信される各パケット内に現われるＶＭ識別子を用いるデータベースノード１０１のネットワーキング層におけるアクセス制御メカニズムおよびアプリケーション層におけるワークロード検査メカニズムに基づき得る。図１に示されるように、アクセス制御１１４はコンピュートノード１０１上のＶＭ１１１〜１１２に対して透過的であり、データベースノード１０２上で実行され得る。システムは、ＶＭ１１１〜１１２によるアクセスを、たとえばデータベースインスタンス１１３によって提供される特有のデータベースサービスなどの特有のデータベースサービスに限定し得る。たとえば、ＶＭ１１１はデータベースインスタンス１１３によって提供されるデータベースサービスへのアクセスが許可されているが、ＶＭ１１２はデータベースインスタンス１１３によって提供されるデータベースサービスにアクセスできない。
【００２８】
図１に示されるように、システムは、データパケットを送信するための制御パスを、アドレスおよびルート解決を特有のデータベースノード１０２に限定するように構成し得る。また、制御パスは、接続確立を特有のデータベースサービスに限定するように構成され得る。加えて、システムは、データパケットを送信するためのデータパスを、たとえばデータベースノード１０２のホストチャネルアダプタ（ＨＣＡ）などのハードウェア内のデータ交換アクセス制御を実行するように、かつ重大なパフォーマンスインパクトを回避するように構成し得る。
【００２９】
図１に示されるように、システムは、コンピュートノード１０１とデータベースノード１０２との間の通信を、セキュアな通信チャネル１２０を通過するように限定し得る。なお、この場合のように、この詳細な説明がデータベースノードとコンピュートノードとの間の通信に言及する場合はいつでも、コンピュートノード自体同士の間ではなく、データベースノードとコンピュートノード上で実行されるＶＭとの間の通信に言及している。セキュアな通信チャネル１２０は、アクセス制御が向上したＩＢ高信頼性接続（reliable connection：ＲＧ）プロトコルに基づき得、そのネットワーキングインターフェイス上のデータベースへのＴＣＰ／ＵＤＰ／ＳＤＰアクセスを禁止し得る。たとえば、一実施形態では、Ｏｒａｃｌｅ（登録商標）Ｅｘａｄｉｒｅｃｔ  Ｓｅｃｕｒｅは、ＩＢネットワーク上のＥｘａｌｏｇｉｃコンピュートノードとＥｘａｄａｔａデータベースノードとの間の高速なセキュアな通信を提供し得る。Ｏｒａｃｌｅ（登録商標）Ｅｘａｄｉｒｅｃｔ  Ｓｅｃｕｒｅは、Ｊａｖａ（登録商標）データベースコネクティビティ（ＪＤＢＣ）およびＯｒａｃｌｅ（登録商標）Ｃａｌｌ  Ｉｎｔｅｒｆａｃｅ（ＯＣＩ）クライアントによってのみ用いられ得る（すなわち、ＳＱＬＮＥＴに効果的に限定されている）。
【００３０】
図１に示されるように、システムはさらに、ＩＢサブネット１１０の外部に位置しているセキュリティアプライアンス１０４を介して、ＶＭ１１１とデータベースインスタンス１１３によって提供される特有のデータベースサービスとの間のセキュアな通信を確立し得る。たとえば、Ｅｘａｌｏｇｉｃコンピュートノード上のアプリケーションがＥｘａｄａｔａデータベースとインターフェイス接続するのにＪＤＢＣまたはＯＣＩクライアントを用いない場合は、Ｅｘａｌｏｇｉｃコンピュートノードは代わりに、セキュリティアプライアンス１０４を介して別個のイーサネットベースの通信を用い得る。
【００３１】
図２は、本発明の実施形態に従う、スイッチドネットワーキングファブリック２０６によってミドルウェアマシンシステム２２０に接続されるデータベースサーバシステム２４０を有する統合システム内のアクセス制御を示す。統合システム２００は、マルチテナント環境においてデータのセキュリティを保証するセキュリティソリューションを提供しつつ、中間ファイアウォールアプライアンスの従来の使用によって提起される不利点を克服するアクセス制御機能を提供する。当該セキュリティソリューションによって、インフィニバンドファブリック２０６などの高速接続ベースのネットワーキングファブリックの使用と、そのような接続ベースのスイッチドファブリックがミドルウェアマシンシステム２２０とデータベースサーバシステム２４０との間で実行されるオペレーションに提供し得る最適化とが可能になる。
【００３２】
統合システム２００は、インフィニバンドファブリック２０６によってミドルウェアマシンシステム２２０に接続されるデータベースサーバシステム２４０を含む。一実施形態では、データベースサーバシステム２４０はＯｒａｃｌｅ（登録商標）Ｅｘａｄａｔａデータベースサーバシステムであり、ミドルウェアマシンシステム２２０はＯｒａｃｌｅ（登録商標）Ｅｘａｌｏｇｉｃミドルウェアマシンシステムである。データベースサーバシステム２４０はデータベースアドミニストレータ（ＤＢＡ）２１２によって管理され得、統合システム２００は管理スタック２１０を用いてシステムアドミニストレータ２１１によって管理され得る。ミドルウェアマシンシステム２２０は仮想マシンの集まり（データベースサービスコンシューマ）を含む。各仮想マシンには、デプロイメント時間に、ハードウェアによって実行される固有の識別子（ＶＭＩＤ）が割当てられる。この識別子は、インフィニバンドファブリック２０６内のスイッチ２１６上でセキュアに実行されているサブネットマネージャ２１４によって割当てられ、ミドルウェアマシンシステム２２０の各コンピュートノード上のハードウェアによって、仮想マシンによって生成される各パケットのヘッダ内に、ヘッダ内のソースグローバル識別子（ＳＧＩＤ）の一部として埋込まれる。システムは、各パケット識別子のＳＧＩＤ内に提供されるこの固有のＶＭＩＤを用いて各ＶＭをセキュアに識別し、そのＶＭから特有のデータベースサービス（データベースサービスプロバイダ）へのアクセスを制御する。実施形態では、データベースサービスへのアクセスは、データベースフォアグラウンドプロセスによってだけではなく、以下に記載されるようにデータベースリスナ、およびＨＣＡによっても限定される。代替的な実施形態では、アクセス制御は、プラガブルデータベース（ＰＤＢ）またはデータベーステーブルなどの、他のデータベースプリミティブに適用され得る。
【００３３】
当該システムは、データベースサーバシステム２４０によって提供される特有のデータベースサービスへのアクセスが、管理スタック２１０の制御下でアクセス制御リスト（ＡＣＬ）においてその特有のデータベースサービスへのアクセスが付与されているミドルウェアマシンシステム２２０の仮想マシンに限定されることを保証するアクセス制御対策を含む。アクセスは、たとえば、特定のテナントに関連付けられているそれらの仮想マシンのみに付与され得る。アクセス制御リスト（ＡＣＬ）は、名前付きデータベースサービスの各々を、それへのアクセスが許可されているＶＭに対応する一組のＶＭ識別子に関連付ける。アクセス制御システムは、名前付きデータベースサービスに関してＡＣＬにおいて許可が付与されているＶＭのみがその名前付きデータベースサービスへのアクセスが許可されることを保証する。ＡＣＬのコンテンツは、管理スタック２１０を用いる統合システムのアドミニストレータのセキュアな制御下にある。
【００３４】
図２に示されるように、データベースサーバシステム２４０は複数のストレージセル２５０を含む。４つのストレージセル２５０ａ，２５０ｂ，２５０ｃおよび２５０ｄが示されている。典型的なシステムは、多数の同様のストレージセルを含み得る。ストレージセルは、マルチテナント環境において特定のテナントに関連付けられ得るデータ／データベースファイルを格納する。図２に示されるように、専用のストレージアクセスパーティションがアクセスをストレージセル２５０に限定する。ストレージアクセスパーティション２０２へのアクセス権は、ストレージセルおよびデータベースノードのみに付与される。コンピュートノード２２０ａ，２２０ｂ，２２０ｃおよび２２０ｄ上の仮想マシンはストレージアクセスパーティション２０２へのアクセス権を付与されず、したがってストレージセル２５０に直接アクセスできない。
【００３５】
データベースサーバシステム２４０は複数のデータベースノード２６０をさらに含む。２つのデータベースノード２６０ａ，２６０ｂが示されている。典型的なシステムは、多数の同様のデータベースノードを含むことになる。データベースノード２６０ａ，２６０ｂは、ストレージアクセスパーティション２０２を介してストレージセル２５０ａ，２５０ｂ，２５０ｃおよび２５０ｄにアクセス可能である。データベースノード２６０ａ，２６０ｂの各々は、たとえばＰＤＢ２６１ａ，２６２ａ，２６１ｂおよび２６２ｂなどの複数のデータベースプロセスをホストし得、当該プロセスの各々は、たとえばＤＢ  ＳＶＣ２６３ａ，２６４ａ，２６３ｂおよび２６４ｂなどの名前付きデータベースサービスを提供し得る。名前付きデータベースサービスの各々は、１つ以上の特定のテナントに関連付けられ得る。ストレージセル２５０ａ，２５０ｂ，２５０ｃおよび２５０ｄは共有ストレージ媒体を表現している。特定のストレージセルは、特定のテナントに関連付けられていなくてもよく、または特定のテナントに専用でなくてもよい。一実施形態では、ストレージセル２５０は、データベースノード２６０によって管理される分散ストレージアレイを表現している。データベースファイルが複数のストレージセルにわたってストライプ状であってもよい。しかし、データベースノード２６０の制御下でストレージセル上のデータベースファイルの多種多様な配置が利用され得る。ストレージセルは、専用のストレージアクセスパーティション２０４を用いてコンピュートノードのＶＭから分離されているため、ストレージセル２５０へのアクセスのための付加的なセキュリティ対策は不要である。ストレージアクセスパーティション２０４は、データベースノード２６０ａおよび２６０ｂ、ならびにストレージセル２５０ａ，２５０ｂ，２５０ｃおよび２５０ｄのみが利用可能である。したがって、複数のストレージセル２５０はミドルウェアマシンシステム２２０およびコンピュートノード２２０ａ，２２０ｂ，２２０ｃおよび２２０ｄ上の仮想マシンから分離される。
【００３６】
ミドルウェアマシンシステム２２０が複数のストレージセル２５０上に格納されているデータベースファイルにアクセスする唯一の方法は、複数のデータベースノード２６０上のテナント特有の名前付きデータベースサービスの１つ以上を呼出すことによる間接的なものである。データベースノード２６０ａ，２６０ｂへのアクセスは、以下に記載されるようにアクセス制御２６６ａおよび２６６ｂを用いて制御されてセキュアにされる。コンピュートノード上の仮想マシンからデータベースノードへのアクセスも、専用のデータベースアクセスパーティション２０４に制約される。このパーティションはデフォルトパーティションとは異なり、異なるコンピュートノード自体の上の仮想マシン同士の間の通信には用いられない。複数のテナントがデプロイされると、当該テナントはすべて、データベースノードにアクセスするのに同一のデータベースアクセスパーティション２０４を共有する。データベースアクセスパーティション２０４を用いてＶＭ同士の間の通信を防止するために、すべてのＶＭはデータベースアクセスパーティション２０４の限定メンバーとして構成される。すべてのデータベースノードは、データベースアクセスパーティション２０４のフルメンバーとして構成される。
【００３７】
ミドルウェアマシンシステム２２０は複数のコンピュートノードを含み、そのうちの４つ２２０ａ，２２０ｂ，２２０ｃおよび２２０ｄが示されている。典型的なシステムは、多数の同様のコンピュートノードを含むことになる。コンピュートノードは、仮想マシン内で実行されるアプリケーション（図示せず）をホストする。仮想マシンの各々は、マルチテナント環境において特定のテナントに割当てられ得る。各コンピュートノード上で実行される複数の仮想マシン（およびアプリケーション）が存在し得る。８個の仮想マシンＶＭ２２１ａ，ＶＭ２２２ａ，ＶＭ２２１ｂ，ＶＭ２２２ｂ，ＶＭ２２１ｃ，ＶＭ２２２ｃ，ＶＭ２２１ｄおよびＶＭ２２２ｄが示されている。典型的なシステムは、各コンピュートノード上で、かつ多くの付加的なコンピュートノード上で実行される多数の同様の仮想マシンを含むことになる。各仮想マシンは、サブネットマネージャ２１４の制御下で仮想マシンをホストするコンピュートノードのハードウェアによって、識別子ＶＭＩＤ２２３ａ，ＶＭＩＤ２２４ａ，ＶＭＩＤ２２３ｂ，ＶＭＩＤ２２４ｂ，ＶＭＩＤ２２３ｃ，ＶＭＩＤ２２４ｃ，ＶＭＩＤ２２３ｄおよびＶＭＩＤ２２４ｄに関連付けられている。コンピュートノード２２０ａ，２２０ｂ，２２０ｃ，２２０ｄ上のＶＭは、接続ベースの高信頼性プロトコルを用いてストレージアクセスパーティション２０２上で複数のデータベースノード２６０と通信し得る。好ましい実施形態では、コンピュートノード２２０ａ，２２０ｂ，２２０ｃおよび２２０ｄ上のＶＭはインフィニバンドファブリック２０６上で複数のデータベースノード２６０と通信し得る。
【００３８】
コンピュートノード２２０ａ，２２０ｂ，２２０ｃおよび２２０ｄのハードウェアは、仮想マシン上のアプリケーションとデータベースノードとの間で通信パケットを送信する。コンピュートノードのハードウェアは、各パケットのヘッダに、通信中の仮想マシンに関連付けられているＶＭＩＤを含むソースグローバル識別子（ＳＧＩＤ）を含む。ＶＭＩＤはハードウェア内の仮想マシンに関連付けられているため、仮想マシンは自身の識別子をスプーフィングすることができず、すなわち、仮想マシンは、自身がハードウェアによって関連付けられていない識別子を使用できない。また、コンピュートノードのハードウェアは、仮想マシンからのすべての通信パケットが、自身のヘッダに、データベースアクセスパーティション２０４上でデータベースノードと通信する際に関連の仮想マシンのＶＭＩＤを含むＳＧＩＤを含むことを保証する。
【００３９】
上述のように、ミドルウェアマシンシステム２２０の仮想マシンが複数のストレージセル２５０上のデータにアクセスする唯一の方法は、複数のデータベースノード２６０上の特有の名前付きデータベースサービスを呼出すことによってである。仮想マシンはストレージアクセスパーティション上で通信することが許可されていないため、ストレージセルと直接通信することができない。仮想マシンの各々は、名前付きデータベースサービスのいずれかへの接続を形成することを試み得る。しかし、各データベースノードは、データベースノードのハードウェア（たとえばＨＣＡ）およびソフトウェアにおいて実装されるアクセス制御機能２６６ａおよび２６６ｂを含む。アクセス制御機能２６６ａおよび２６６ｂは、受信した通信パケット内のＳＧＩＤから、どのマシンが名前付きサービスに接続しようとしているかを識別し得る。アクセス制御機能２６６ａおよび２６６ｂは、どの仮想マシンがどの名前付きサービスにアクセス可能かを識別するアクセス制御リスト２６８ａおよび２６８ｂに応答してアクセス制御機能を提供する。ＡＣＬのコンテンツは管理スタック２１０のセキュアな制御下にあり、ＡＣＬのコピーが各データベースノードに配布される。アクセス制御機能２６６ａ，２６６ｂは、アドレス解決アクセス制御、接続確立アクセス制御、データ交換アクセス制御、およびＩＰｏＩＢアクセス制御のうちの１つ以上を含み得る。
【００４０】
アクセス制御機能２６６ａ，２６６ｂは、仮想マシンが特定のデータベースノードによって提供される任意のデータベースサービスにアクセスすることが許可されていない場合、当該ＶＭが当該特定のデータベースノードとの接続を確立することを防止し得る。アクセス制御機能２６６ａおよび２６６ｂはさらに、仮想マシンが特定のデータベースサービスにアクセスすることがアクセス制御リスト内で許可されていない限り、当該ＶＭが当該特定のデータベースサービスと接続を確立して当該サービスと通信することを防止し得る。マルチテナント環境の実施形態では、アクセス制御リストは、特定のデータベースサービスと同一のテナントに関連付けられている仮想マシンのみが当該特定のデータベースサービスとの接続を確立して当該サービスと通信することができるように構成される。無許可仮想マシンからのすべての接続要求は拒絶される。以下に記載されるように、アクセス制御は接続のライフサイクル中のさまざまなステージにおいて実行され得る。
【００４１】
図３は、本発明の実施形態に従う、インフィニバンドファブリック２０６などのスイッチドネットワーキングファブリックによってミドルウェアマシンシステム２２０のコンピュートノードに接続されるデータベースサーバシステム２４０のデータベースノード内のアクセス制御を示す。図３は、マルチテナント環境においてデータのセキュリティを保証するセキュリティソリューションを提供しつつ、中間ファイアウォールアプライアンスの従来の使用によって提起される不利点を克服するアクセス制御システムの要素のより詳細な図を示す。図３は、簡略化のため、インフィニバンドファブリック２０６によって接続される１つのコンピュートノード３２０および１つのデータベースノード３６０という特徴を示している。１つの仮想マシン３３１がコンピュートノード３２０上に示されている。しかし、典型的なシステムは、インフィニバンドファブリック２０６によって接続される多くの同様のコンピュートノード、仮想マシン、およびデータベースノードを含むことになる。
【００４２】
図３に示されるように、コンピュートノード３２０は、ホストチャネルアダプタ（ＨＣＡ）３２６と、各々が１つ以上のコアを有する１つ以上のマイクロプロセッサを含み得るＣＰＵ３２８と、４ギガバイト以上のメモリを有し得るメモリＲＡＭ３２９とを含む。コンピュートノード３２０はアプリケーション層３３０内の１つ以上のアプリケーションをホストする。これらのアプリケーションの１つ以上のインスタンスは仮想マシン内で実行され、各仮想マシンは固有のＶＭＩＤに関連付けられている。単一の仮想マシンＶＭ３３１が示されているが、複数の仮想マシンが単一のコンピュートノード３２０上で動作してもよい。複数のアプリケーションがコンピュートノード上の同一の仮想マシンまたは異なる仮想マシン内で実行されてもよい。アプリケーションは、たとえば、Ｏｒａｃｌｅ（登録商標）Ｃａｌｌ  Ｉｎｔｅｒｆａｃｅを用いてデータベースと通信するためにＯＣＩクライアント３３３を用いる１つ以上のＯＣＩアプリケーション３３２を含み得る。アプリケーションは、Ｊａｖａデータベースコネクティビティを用いてデータベースと通信するためにＪＤＢＣクライアント３３５を用いるもう１つのＪＤＢＣアプリケーション３３４を含み得る。
【００４３】
ＯＣＩクライアント３３３およびＪＤＢＣクライアント３３５は、アプリケーション層内のアプリケーションインスタンスをホストする各仮想マシンにアタッチされた仮想機能（ＶＦ）を用いる際にシングルルートＩ／Ｏ仮想化（Single Root I/O Virtualization：ＳＲ−ＩＯＶ）技術を用いてダイレクトアクセススタック３４０およびＨＣＡ３２６を介してリモートダイレクトメモリアクセス（ＲＤＭＡ）を用いてデータを送受信し得る。図３に示されるように、ＨＣＡ３２６の仮想機能（ＶＦ）３２１がＶＭ３３１にアタッチされている。データは、アプリケーション層の特定の仮想マシンに関連付けられているメモリに、かつ当該メモリから直接送信され得る。オープン・ファブリック・エンタープライズ・ディストリビューション（Open Fabric Enterprise Distribution：ＯＦＥＤ）スタック３４２が、ＲＤＭＡスイッチドファブリック（この場合はインフィニバンドファブリック２０６）についての接続制御を提供する。
【００４４】
シングルルートおよびマルチルートＩＯ仮想化技術は、ＰＣＩ−ＳＩＧから出版されている標準仕様書に規定されている。シングルルートＩ／Ｏ仮想化（ＳＲ−ＩＯＶ）技術、ＲＤＭＡおよび仮想マシンにアタッチされた仮想機能の一定の局面は、たとえば、２０１３年３月１５日に出願され「SYSTEM AND METHOD FOR SUPPORTING LIVE MIGRATION OF VIRTUAL MACHINES IN A VIRTUALIZATION ENVIRONMENT（仮想化環境においてバーチャルマシンのライブマイグレーションをサポートするためのシステムおよび方法）」と題された米国特許出願番号第１３／８３８１２１号、および２０１３年３月１５日に出願され「SYSTEM AND METHOD FOR SUPPORTING LIVE MIGRATION OF VIRTUAL MACHINES BASED ON AN EXTENDED HOST CHANNEL ADAPTOR (HCA) MODEL（拡張ホストチャネルアダプタ（ＨＣＡ）モデルに基づいてバーチャルマシンのライブマイグレーションをサポートするためのシステムおよび方法）」と題された米国特許出願番号第１３／８３８２７５号、および２０１３年３月１５日に出願され「SYSTEM AND METHOD FOR SUPPORTING LIVE MIGRATION OF VIRTUAL MACHINES IN AN INFINIBAND NETWORK（インフィニバンドネットワークにおけるバーチャルマシーンのライブマイグレーションをサポートするためのシステムおよび方法）」と題された米国特許出願番号第１３／８３７９２２号に記載されており、上記出願は本明細書に引用により援用される。
【００４５】
ＳＲ−ＩＯＶ技術の利点は、仮想マシンにＰＣＩＥ仮想機能（ＰＣＩＥ  ＶＦ）を介して直接的なハードウェアアクセスが付与されることである。これは物理的なデプロイメントと同一のパフォーマンスを提供し、ＶＭの数とともに直線的なパフォーマンススケーラビリティを提供するユーザレベルのネットワーキングおよびＲＤＭＡをサポートする。したがってＳＲ−ＩＯＶは、インフィニバンドファブリックなどの高速相互接続を最大限に活用することが必要である。しかし、準仮想化などのソフトウェアＩ／Ｏ仮想化技術とは異なり、ＳＲ−ＩＯＶでは、ＶＭへのアクセスを制御する中間ソフトウェアがない。したがって、ＶＭネットワーキングスタックが非トラステッドである場合、ネットワーキングトラフィックを傍受してフィルタリングする中間のトラステッドソフトウェアがない。したがって、アクセス制御を提供しつつＳＲ−ＩＯＶ技術を十分に利用するためには、セキュアなＶＭ識別子（ＶＭＩＤ）がネットワーク上でビジブルにされ、アクセス制御は本明細書に記載されるように外部エンティティまたはサービスプロバイダ（データベース）によって仲介される。図３に示されるように、データベースノード３６０は、ホストチャネルアダプタ（ＨＣＡ）３６６と、各々が１つ以上のコアを有する１つ以上のマイクロプロセッサを含み得るＣＰＵ３６８と、４ギガバイト以上のメモリを有し得るメモリであるＲＡＭ３６９とを含む。データベースノード３６０はアプリケーション層３７０内の１つ以上のデータベースプロセスをホストする。データベースプロセスは、たとえば、Ｏｒａｃｌｅ（登録商標）Ｃａｌｌ  Ｉｎｔｅｒｆａｃｅを用いてコンピュートノード上の仮想マシンと通信する１つ以上のＯＣＩサーバアプリケーション３７２を含み得る。アプリケーション層３７０は、複数のデータベースプロセスインスタンス（３つが図示される）ＰＤＢ３７４ａ，３７４ｂ，３７４ｃをさらにホストし得る。ＯＣＩサーバアプリケーションは、シングルルートＩ／Ｏ仮想化（ＳＲ−ＩＯＶ）技術を用いてダイレクトアクセススタック３７６およびＨＣＡ３６６を介してリモートダイレクトメモリアクセス（ＲＤＭＡ）を用いてデータを送受信し得る。データは、アプリケーション層の特定の仮想マシンに関連付けられているメモリに、かつ当該メモリから直接送信され得る。オープン・ファブリック・エンタープライズ・ディストリビューション（ＯＦＥＤ）スタック３７７が、ＲＤＭＡスイッチドファブリック（この場合はインフィニバンドファブリック２０６）についての接続制御を提供する。本発明の実施形態では、アクセス制御は、たとえば、アクセス制御リストに基づいて、ＯＦＥＤスタック３７７、ＨＣＡ３６６およびＯＳスタック３７８を含むデータベースノードのさまざまなコンポーネント内で実装され得る。
【００４６】
インフィニバンドファブリック２０６は複数のスイッチ２１６（１つが図示される）を含み、これにコンピュートノード３２０のＨＣＡ３２６およびデータベースノード３６０のＨＣＡ３６６が（図示されない複数の他のコンピュートノードおよびデータベースノードの複数のＨＣＡに加えて）接続される。インフィニバンド（ＩＢと略す）は高パフォーマンスコンピューティングに用いられるコンピュータネットワーキング通信規格であり、非常に高いスループットおよび非常に低いレイテンシを特徴とする。これはコンピュータ同士の間の、かつコンピュータの内部の、データ相互接続のために用いられる。インフィニバンドは、サーバとストレージシステムとの間の、かつストレージシステム同士の間の、直接的な、または交換型の相互接続として利用される。インフィニバンドは、イーサネットなどの共有媒体技術とは対照的に、スイッチドファブリックトポロジを用いる。すべての送信はＨＣＡにおいて開始または終了する。図３のシステムでは、ＨＣＡ３６６は、中間ファイアウォールアプライアンスまたはノードをまったく用いずに、スイッチ２１６を介してインフィニバンドファブリック２０６によってＨＣＡ３２６に接続される。
【００４７】
インフィニバンドファブリック２０６は、インフィニバンドファブリック２０６の構成、およびＩＢ接続確立のプロセスで用いられるルート解決を担当する、１つ以上のサブネットマネージャ２１４を実装する。サブネットマネージャ２４０はさらに、セキュアなサブネット管理パケット（subnet management packet：ＳＭＰ）を介してサブネットにアタッチされたＨＣＡ３６６，３２６を構成する。本発明の実施形態では、サブネットマネージャ２１４を用いて、特定の仮想マシンに関連付けられている特定の仮想機能に関連付けられている仮想マシン識別子（ＶＭＩＤ）を有するサブネット内のＨＣＡがセキュアに構成され得る。たとえば図３に示されるように、ＶＭＩＤ３２２は、仮想マシン３３１にアタッチされているＨＣＡ３２６の仮想機能３２１に関連付けられている。
【００４８】
サブネットマネージャ２１４を用いて、さらに、コンピュートノード上の仮想マシンとデータベースノードとの間で送信される各通信パケットが、特定の仮想マシンに関連付けられている特定の仮想機能に関連付けられている仮想マシン識別子（ＶＭＩＤ）を含むソースグローバル識別子（ＳＧＩＤ）を含むグローバルルーティングヘッダ（ＧＲＨ）を含むように、サブネット内のＨＣＡがセキュアに構成され得る。たとえば図３に示されるように、コンピュートノード３２０の仮想マシン３３１とデータベースノードとの間で送信される各通信パケットは、仮想マシン３３１にアタッチされたＶＦ３２１に関連付けられているＶＭＩＤ３２２を含むソースグローバル識別子（ＳＧＩＤ）を含むグローバルルーティングヘッダ（ＧＲＨ）を含む。したがって、ＶＭＩＤと仮想マシンとの関連付け、および通信パケット内のＳＧＩＤの包含は、サブネットマネージャ２１４のセキュアな制御下にあり、ＨＣＡはコンピュートノード３２０またはコンピュートノード上のＶＭによってスプーフィングまたは破損され得ない。したがって、コンピュートノードへのルートアクセスを有するユーザまたはアプリケーションでさえも、パケットヘッダに含まれているＶＭＩＤおよびＳＧＩＤを変更すること、または無許可のＶＭＩＤ／ＳＧＩＤを用いることはできない。
【００４９】
実施形態では、各データベースノード３６０のＯＦＥＤスタック３７７およびＨＣＡ３６６は、１つ以上のアクセス制御リスト（ＡＣＬ）３７５ａ，３７５ｂに基づいてアクセス制御を実装する。アクセス制御は、インフィニバンドパケットに埋込まれているＳＧＩＤを用いて、パケットに関連付けられている仮想マシンを識別する。ＯＦＥＤスタック３７７およびＨＣＡ３６６は１つ以上のアクセス制御リスト（ＡＣＬ）３７５ａ，３７５ｂに基づいてアクセス制御を実装し、適切なＡＣＬによって許可されていない限り、コンピュートノード内の仮想マシンとデータベースプロセスとの間の接続の確立およびデータの送信を防止する。しかし、許可された仮想マシンとデータベースプロセスとの間で接続がなされて通信が許可されている場合は、接続は、中間ファイアウォールアプライアンス（たとえばイーサネットファイアウォール３９０など）を必要とせずに、コンピュートノード３２０上のＯＣＩクライアント３３３インスタンスとＯＣＩサーバ３７２とデータベースノード３６０との間のインフィニバンド上の完全な直接ＲＤＭＡを可能にする。アクセス制御ロジックおよびハードウェアによって一旦許可されたＶＭには、ＶＭへのアクセスを制御するための中間ソフトウェアをまったく必要とせずにユーザレベルのネットワーキングおよびＲＤＭＡをサポートする接続を用いる物理的なデプロイメントと同一のパフォーマンスで、データベースサービスへの直接的なハードウェアアクセスが（ＰＣＩＥ  ＦＶを介して）付与されるため、ＶＭの数とともに直線的なパフォーマンススケーラビリティがもたらされ、データベースノードのＨＣＡハードウェアによって実行されるデータ交換アクセスを有する高速インフィニバンド相互接続が最大限に活用される。
【００５０】
コンピュートノード３２０上のアプリケーションはさらに、ＪＤＢＣまたはＯＣＩを用いず、したがってＲＤＭＡのためのダイレクトアクセススタック３４０の利用が不可能であるが、代わりにソケット３３７を用いてイーサネット上でデータベースと通信するもう１つの他のアプリケーション３３６を含み得る。ソケット３３７は、ＯＳスタック３４４を介してイーサネット・オーバー・インフィニバンド（Ethernet over InfiniBand：ＥｏＩＢ）アダプタ３４６上でイーサネットに結合される。イーサネットパケットはＥｏＩＢを用いてゲートウェイ３０６に送信され、ゲートウェイ３０６は、インフィニバンドファブリック２０６の外部にあるイーサネットネットワーク上で当該パケットを再送信する。イーサネット通信は、従来のイーサネットファイアウォールアプライアンス３９０を通過した後にデータベースノード３６０に到達する。データベースノード３６０において、イーサネット通信はイーサネットファイアウォールアプライアンス３９０からネットワークインターフェイスカード（ＮＩＣ）３６７で受信され、ＯＳスタック３７８を介してソケット３７９に送信される。なお、この接続パスは、読出／書込ソケット３７９内のプロセッサオーバーヘッド、ＯＳスタックオーバーヘッドを含むいくつかの局面におけるより高いオーバーヘッドを特徴とし、ゲートウェイ３０６およびイーサネットファイアウォール３９０の含有は通信パスである。
【００５１】
図４Ａ〜図４Ｃは、ミドルウェアマシンシステムのコンピュートノード上の仮想マシンからデータベースサーバシステムのデータベースノードに送信される通信パケットのヘッダにソース識別子（ＳＧＩＤ）をセキュアに埋込むためのシステムおよび方法の局面を示す。図４Ａは、セキュアなサブネットマネージャの制御下でホストチャネルアダプタハードウェアを用いてインフィニバンドパケットのヘッダのＳＧＩＤに仮想マシン識別子（ＶＭＩＤ）を埋込むことを示す。図４Ａに示されるように、スイッチ２１６は、インフィニバンドファブリック２０６の構成、およびＩＢ接続確立のプロセスで用いられるルート解決を担当するサブネットマネージャ２１４を実装する。サブネットマネージャ２１４はさらに、インバンドで送信され得るセキュアなサブネット管理パケット（ＳＭＰ）を介してサブネットにアタッチされたすべてのＨＣＡを構成する。
【００５２】
本発明の実施形態では、サブネットマネージャ２１４を用いて、特定の仮想マインに関連付けられている特定の仮想機能に関連付けられている仮想マシン識別子（ＶＭＩＤ）を有するサブネット内のすべてのＨＣＡがセキュアに構成される。各サブネットマネージャ２１４は、サブネット管理パケットを用いて、ＨＣＡ３２６のセキュアなメモリに格納されているポートグローバル固有識別子（ＧＵＩＤ）テーブル４００を構成する。異なるポートＧＵＩＤテーブルが、サブネットに接続されている各ＨＣＡ内に構成される。ポートＧＵＩＤテーブル４００をＨＣＡ３２６内で用いて、各仮想機能（ＶＦ）、およびしたがって各仮想マシンが、ＶＭＩＤとして用いるサブネットマネージャ２１４によって確立されるＧＵＩＤに関連付けられる。したがって、ＶＭＩＤと仮想マシンとの関連付けはサブネットマネージャのセキュアな制御下にあり、仮想マシンによってスプーフィングまたは破損され得ない。
【００５３】
サブネットマネージャ２１４はさらに、ＨＣＡ３２６が、ＨＣＡ３２６によってデータベースノードに向けて送信される各インフィニバンドパケット４０２ａ，４０２ｂ，４０２ｃ内のグローバルルーティングヘッディング（ＧＲＨ）にＧＵＩＤを含むように、データベースアクセスパーティションを構成する。一実施形態では、サブネットマネージャ２１４は、ソフトウェアスタックに、コンピュートノード上の仮想マシンとデータベースノードとの間の接続に対してＧＲＨを用いるように指示する。接続についてＧＲＨが指定されている場合、ハードウェア（たとえばＨＣＡ３２６）は当該接続上で送信されるすべてのパケットにＧＲＨを含むことになる。ＶＭＩＤは、アタッチされたＶＦ（ＶＭＩＤ）のＧＵＩＤとサブネットプレフィックスとの連結であるＧＲＨ．ＳＧＩＤとしてグローバルルーティングヘッダに含まれている。インフィニバンドパケットが単一のサブネット内でエンドポイント同士の間で送信される場合は、ＧＲＨは典型的にインフィニバンドパケット内に送信されない。ＨＣＡ３２６によってデータベースノードに送信される各インフィニバンドパケットがＧＲＨを含むことをサブネットマネージャ２１４が保証する１つの方法は、すべてのデータベースノードをコンピュートノードとは別個のサブネットの一部として識別することであり、ＨＣＡは次に、インフィニバンド上の異なるサブネット同士の間の通信のための標準プロトコルに従ってすべてのインフィニバンドパケットにＧＲＨを含むことになる。または、サブネットマネージャ２１４は、同一のサブネット内であってもすべてのインフィニバンドパケット内にＧＲＨの送信を要求するポリシーの変更を指定し得る。
【００５４】
一実施形態では、サブネット管理パーティションコマンドはＧＲＨフラグを含むように拡張される。ＧＲＨフラグは、サブネットマネージャ２１４によってパーティション作成時間に構成される。接続のためのパス解決がデータベースアクセスパーティション２０４を指定している場合（図２参照）、ＧＲＨフラグはすべてのインフィニバンドパケットにＧＲＨが包含されることを要求する。なお、アクセス制御機能は、たとえばデータベースアクセスパーティション２０４などの一定のネットワークインターフェイスに適用可能であり、たとえばストレージアクセスパーティション２０２などの他のネットワークインターフェイスには適用不可能である。したがって、ＧＲＨの包含は不要であるため、ＧＲＨフラグはストレージアクセスパーティション２０２内に設定されなくてもよい。一実施形態では、サブネットマネージャ２１４は、ＧＲＨの包含を誘発するために、データベースアクセスパーティション２０４のためのパス解決管理データグラムのホップリミット（ＨｏｐＬｉｍｉｔ）属性を１よりも大きい値に設定する。ホップリミット属性を１よりも大きく設定することによって、サブネットマネージャ２１４は、データベースノードおよびコンピュートノードが異なるサブネットに属しているという錯覚を起こさせ、データベースアクセスパーティション上でコンピュートノードの仮想マシンからデータベースノードに送信されるすべてのインフィニバンドパケット内のＧＲＨの包含をもたらす。
【００５５】
図４Ｂは、ネットワーク環境においてインフィニバンド（ＩＢ）アドレス化を用いてデータサービスにアクセスするインフィニバンドパケット４０２を示す。図４Ｂに示されるように、ＩＢパケット４０２は、ペイロード４０６と、ローカルルーティングヘッダ（ＬＲＨ）４０８を含むＩＢプロトコルに従うさまざまなヘッダと、他のヘッダ４１０，４１２とを含む。ローカルルーティングヘッダ（ＬＲＨ）はスイッチによって用いられて、パケットをサブネット上でその宛先エンドノードネットワークポートに移動させる。それは、ソースおよび宛先ローカル識別子（ＬＩＤ）、リンクプロトコルバージョンＩＤ、サービスレベル、仮想レーン、パケット長、およびどの任意のフィールドが存在しているかを示すために用いられる「次のヘッダ」フィールドを含む。加えて、ＩＢパケット４０２は、ＩＢパケットの完全性を保証するために用いられる不変ＩＣＲＣ１４、可変ＶＣＲＣ４１６を含み得る。上述のように、サブネットマネージャ２１４は、サブネットおよび／またはＨＣＡを、データベースアクセスパーティション２０４内に送信される各ＩＢパケット４０２のヘッダがグローバルルーティングヘッダ（ＧＲＨ）４０４をさらに含むように構成する。ＧＲＨ４０４は、ＨＣＡ３２６のハードウェアによって各ＩＢパケットに埋込まれる。ＶＭＩＤは、アタッチされたＶＦ（ＶＭＩＤ）のＧＵＩＤとサブネットプレフィックスとの連結であるＧＲＨ．ＳＧＩＤとしてＧＲＨヘッダに含まれている。
【００５６】
図４Ｃは、グローバルルーティングヘッダ（ＧＲＨ）４０４の要素を示す。ＧＲＨは典型的にルータによって用いられて、パケットを異なるサブネット同士の間で移動させる。本発明の実施形態では、これを用いて、ＩＢパケットのソースのＧＵＩＤが、仮想マシンが識別され得るように各パケットに埋込まれることが保証される。図４Ｃに示されるように、ＧＲＨ４０４はソースＧＵＩＤ４４０および宛先ＧＵＩＤ４４２を含む。ＧＲＨ４０４はさらに、ルーティングバージョンＩＤ、ペイロード長、ＩＰバージョン、トラフィッククラス、およびホップリミットを含む。図４Ｃに示されるように、ソースＧＵＩＤ４４０は、ＨＣＡ３２６に格納されているポートＧＵＩＤテーブル４００に基づいてＨＣＡ３２６のハードウェアによってＩＢパケット４０２のＧＲＨ４０４に埋込まれている。上述のように、ポートＧＵＩＤテーブル４００はサブネットマネージャ２１４によってセキュアに構成される。したがって、各インフィニバンドパケットは、当該パケットに関連付けられている仮想マシンを固有に識別するソースＧＵＩＤ４４０を含む。ソースＧＵＩＤ４４０はサブネットマネージャ２１４の制御下でＨＣＡ３２６のハードウェアによって実装され、自身がホストする仮想マシンのコンピュートノードによって修正され得ない。ＧＲＨ．ＳＧＩＤはアタッチされたＶＦ（ＶＭＩＤ）のＧＵＩＤとサブネットプレフィックスとの連結であるため、ＶＭＩＤはＳＧＩＤに含まれている。したがって、コンピュートノード上の仮想マシンは、サブネットマネージャ２１４によって自身に割当てられていないいずれのソースＧＵＩＤも使用できない。
【００５７】
管理スタック
管理スタック２１０（図２参照）は仮想マシンのデプロイメントを調整し、アクセス制御リスト（ＡＣＬ）を用いてそれらのＶＭからデータベースサーバシステム２４０の特有のデータベースサービスへのアクセスを管理する。ＡＣＬテーブルは、任意のミドルウェアマシンシステムＶＭによる各特有のデータベースサービスへのアクセスを制御するために必要なすべての情報を含む。すべてのアクセス制御はデータベースノード上で実行されるソフトウェアおよびハードウェアによって実行され、したがってミドルウェアマシンシステム２２０のコンピュートノード上の仮想マシンに対して透過的であるため、仮想マシンはデータベースノードとの通信がアクセス制御されていることを認識していない。
【００５８】
図５Ａはアクセス制御リスト（ＡＣＬ）５２４を示す。図５Ａに示されるように、ＡＣＬ５２４は名前付きデータベースサービスの各々についての行、すなわちＳｖｃｎａｍｅ１〜Ｎを有する。名前付きサービスの各々について、ＡＣＬ５２４は、どの仮想マシン（ＶＭＩＤによって識別される）がその名前付きサービスへのアクセスが許可されているかを示す。ＡＣＬ５２４は、ＶＭＩＤ許可に対する名前付きサービスの完全な粒度を可能にし、図５Ｂに示されるようにポピュレートされている。実施形態では、ＡＣＬは、マルチテナント環境において特定のテナントに関連付けられているＶＭは同一のテナントに関連付けられている名前付きデータベースサービスのみにアクセス可能であるように構成される。しかし、ＡＣＬ５２４はＶＭＩＤ許可に対する名前付きサービスの完全な粒度を可能にするため、ＡＣＬは、いくつかのデータベースサービスが共有され得、したがって２つ以上のテナントに関連付けられているＶＭによってアクセスされ得るように構成されてもよい。論理的に、データベースＡＣＬテーブルは以下のように配列され得る：個々のＶＭをそれらの現在割当てられているＶＭＩＤとともに表現する行；および、特有のＶＭによるアクセスが許可されているデータベースサービスの名前を表現する列。
【００５９】
データベースＡＣＬテーブルは、本明細書に記載されるアクセス制御システムのために具体的に作成されたデータベーステーブルである。ＰＬ/ＳＱＬパッケージは、実際のテーブル実装の内部の詳細を公開することなく、このテーブルの管理を可能にするＡＰＩを管理スタック２１０に提供する。管理スタック２１０のみがデータベースＡＣＬテーブルを更新することになる。データベースＡＣＬテーブルにアクセスするために専用のデータベースサービスが作成され得る。データベースＡＣＬテーブルにアクセスするために用いられるデータベースサービスの名前は管理スタック２１０に知られているべきであり、使用される管理スタックデプロイメントオプションに依存して、ＡＰＩまたは構成ファイルのいずれか一方を介して提供される。管理スタック２１０は、専用の管理データベースアクセスパーティションを用いて、好ましくはＴＣＰ上でＳＱＬを用いてデータベースＡＣＬテーブルにアクセスし得る。管理データベースアクセスパーティションへのアクセスは、管理スタック２１０のみに限定される。
【００６０】
データベースリスナ５４６（図５Ｂ参照）を用いて、データベースサーバシステム上にデプロイされるすべてのデータベースについてのデータベースＡＣＬテーブルへのアクセスが管理スタックに提供される。データベースリスナの数およびそれらの座標は、構成属性として管理スタック２１０に提供される。管理スタックは、データベースノードのうちの１つの上で実行されるＰＬ／ＳＱＬプロシージャと通信する。データベースＡＣＬテーブル更新を、すべてのデータベースノード、それらのノード上で実行されるすべてのＤＰリスナ５４６およびＩＰｏＩＢドライバ５２６（図５参照）に伝搬するのはデータベースサーバシステムの責任である。
【００６１】
システムアドミニストレータは、ミドルウェアマシンシステムコンピュートノード上にデプロイされるＶＭを、１つ以上のデータベースサービスへのアクセスを有するように構成し得る。データベースサービスはＶＭがデプロイされているのと同一のテナントに関連付けられているべきであり、管理スタック２１０がこの限定を実行する。管理スタック２１０は、ローカルデータベースまたは構成ファイル内でＶＭＩＤとデータベースサービスとの関連付けを持続する。加えて、管理スタック２１０はこの情報を用いてデータベースＡＣＬテーブルを構築／再構築することができる。
【００６２】
ＡＣＬにおいて、各ＶＭは、そのＶＭの固有のＶＭＩＤおよび所与のデータベースサービス名に基づいて、自身がアクセスすることが許可されているデータベースサービスに関連付けられている。管理スタックは、ＶＭおよびＶＭＩＤの関連付けを追跡し、データベースＡＣＬテーブルをＶＭライフサイクル全体を通じて適切に更新する役割を果たす。ＶＭデプロイメントにおいて、ＶＭ  ＵＵＩＤを所有している新たなエントリが、管理スタックによってデータベースＡＣＬテーブルに追加される。このエントリは最終的にＶＭＩＤおよび１つ以上のデータベースサービス名で更新されることになる。その後のＶＭライフサイクルオペレーション時、エントリが、そのＶＭに割当てられた新たなＶＭＩＤ、またはアクセスが付与されたもしくは取消された新たなデータベースサービスで更新され得る。ＶＦはブーティングＶＭにホットプラグでアタッチされ、所与のＶＭが開始されるたびに異なるＶＦがアタッチされ得るため、当該所与のＶＭについて異なるＶＭＩＤがもたらされる。このＶＭＩＤの変更によって、管理スタックはＶＭＩＤをＡＣＬ内のデータベースサービス関連付けに更新する必要がある。このＶＭエントリは、ＶＭが破棄されるまでデータベースＡＣＬテーブル内に残ることになる。管理スタックがデータベースＡＣＬテーブルの更新を完了する前にＶＭがデータベースへのアクセスを試みた場合、更新はすべてのデータベースノード、リスナおよびＩＰｏＩＢドライバに伝搬され、ＶＭは更新が完了するまでアクセスが拒否され得る。
【００６３】
図５Ｂは図５ＡのＡＣＬ５２４と対話するデータベースサービスを示す。図５Ｂに示されるように、ステップ５３０において、データベースアドミニストレータ（ＤＢＡ）２１２がデータベース管理システムサービス（ＤＢＭＳ）５１２にアクセスして、名前付きデータベースサービスを構成する。ステップ５３１において、ＤＢＭＳサービスは名前付きデータベースサービスをデータベースサービステーブル（ＤＢＳＴ）５２２に追加する。ステップ５３２において、管理スタック２１０はＡＣＬサービス５１４を用いてＤＢＳＴ５２２から名前付きサービスのリストを取出す。ステップ５３４において、管理スタック２１０は新たな名前付きデータベースサービスをＡＣＬ５２４に追加する。ステップ５３５において、管理スタック２１０は新たな名前付きデータベースサービスについてのＶＭＩＤ許可をＡＣＬ５２４内に設定する。ステップ５３７において、管理スタック２１０は、新たな名前付きデータベースサービスをＡＣＬ５２４に追加するトランザクションをコミットする。ＡＣＬ５２４の修正のコミットメントに続いて、ステップ５３８において、修正されたＡＣＬ５２４がリスナ登録（ＬＲＥＧ）プロセス５１５によってすべてのデータベースインスタンスにプッシュアウトされる。したがって、すべてのデータベースインスタンスにＡＣＬ５２４の最新バージョンが提供される。ＬＲＥＧ５１５は、各データベースインスタンス５０６内のＡＣＬテーブルを更新する。各データベースインスタンスは、特定のサービスについて許可されているすべてのＶＭＩＤをリストしているサービスＶＭＩＤリスト５１６を受信する。ＬＲＥＧ５１５はさらに、ＡＣＬ５２４をデータベースリスナ５４６にプッシュする。データベースリスナ５４６に提供されるＡＣＬ５２５は、ノード上のデータベースサービス、およびそれらのサービスについて許可されているＶＭＩＤを識別する。ＬＲＥＧ５１５はさらに、ＩＰｏＩＢドライバ５２６を、ｓｙｓｆｓ／ｉｏｃｔｌインターフェイスを用いて、特定のノードへのアクセスが許可されているすべてのＶＭ（ＶＭＩＤによる）のリストを含むノードＡＣＬ５３６で更新する。
【００６４】
図５Ｃはアクセス制御システムの管理を示す。統合システム２００は、本明細書に開示されるマルチテナント環境においてセキュアなネットワーク通信のための統合型ファイアウォールを提供するためのシステムおよび方法を実装するために構成、調整および管理される複数のコンポーネントを含む。代替的なデプロイメントモデルもあり、その各々がそのデプロイメントに特有の管理ソリューションを提供する。図５Ｃは、アクセス制御ソリューションの高レベル管理モデルと、アクセス制御ソリューションを実装するために統合システム２００の構成に含まれている高レベル管理ステップとを示す。
【００６５】
図５Ｃに示されるように、ステップ５６１および５６２において、データベースアクセスパーティション２０４（図２参照）が、ＧＲＨフラグがサブネットマネージャパーティションテーブル５５５内に設定された状態で作成される。このＧＲＨフラグはサブネットマネージャ２１４によって用いられて、コンピュートノード上の仮想マシンとデータベースノードとの間のすべてのパスがグローバルルーティングヘッダ（ＧＲＨ）を有して構成される必要があることを示す。このオペレーションは、コンピュートノード上にデプロイされる仮想マシンをデータベースノードに接続するインフィニバンドファブリック２０６のセットアップの一部として実行される。ステップ５６３，５６４および５６５において、管理スタック２１０は現在のデータベース構成（データベースについて構成されたサービス名のリスト）を取出し、サービス名と許可されたＶＭ／テナントとの関連付けを作成し、この関連付けを管理スタックデータベース内のセキュリティ関連付けマップ５５５内に持続する。データベースサービス名はデプロイされたすべてのデータベースにわたって固有であるべきであり、管理スタック２１０は、システムを構成するこのステップにおいて、任意のデータベースミスコンフィグレーションを識別する、またはサービス名を複製する役割を果たす。
【００６６】
ステップ５６６，５６７，５６８において、ＶＭがインスタンス化されると、管理スタック２１０は各ＶＭをそのＶＭＩＤに関連付け、そのＶＭＩＤを、ステップ５６５において確立された特定の許可テナントに関連付けられている１つ以上のサービス名に関連付け、ＶＭデプロイメントのためのコンピュートノード（たとえば３２０）を選択し、選択したコンピュートノード上にＶＭ（たとえばＶＭ２２１ａ）をデプロイする。仮想機能ＶＦは、インスタンス化されるとＶＭに割当てられてアタッチされ、ＶＭ２２１ａがデプロイされるコンピュートノード３２０のＨＣＡ３２６のポートＧＵＩＤテーブル４００からそのＶＭの識別子（ＶＦ  ＧＵＩＤ）を取得する。ステップ５６９，５７０において、管理スタック２１０は、データベースＡＣＬ５２４を、ステップ５６９において確立されたサービス名の関連付けおよびＶＭＩＤで更新する。データベースＡＣＬテーブルが更新されると、その情報はデータベースノード（たとえばデータベースノード３６０）に、かつ各ノード内で、図５Ｂに示されるように各ノード上のデータベースリスナおよびＩＰｏＩＢドライバに伝搬される。データベースアドミニストレータ２１２は、データベースノード上のデータベースサービスを通常の態様で構成し得る。
【００６７】
なお、複数のＶＭに各特有のデータベースサービスへのアクセスが付与されてもよく、単一のＶＭに複数のデータベースサービスへのアクセスが付与されてもよい。付与されるアクセスはＡＣＬテーブルに従って完全に粒状であり、必要に応じて、特定のテナントに関連付けられているＶＭを他のテナントに関連付けられているデータベースサービスから分離するように、または特定のデータベースサービスを必要もしくは所望に応じて特定のサービスについての異なるテナントのＶＭ同士の間で共有するように構成され得る。システムアドミニストレータ２１１は、マルチ環境においてデータベースサービス名を異なるテナントにマッピングする。
【００６８】
セキュリティシステムの構成を担当する管理スタック２１０は、ミドルウェアマシンシステム２２０のコンピュートノード上で実行され、データベースサービス構成情報を取出すためにインフィニバンドファブリック２０６を用いてデータベースノードと通信し、必要なデータベースＡＣＬテーブルをプログラムし得る。管理スタックは、このために専用のデータベース管理アクセスパーティションを用い得る。このパーティションへのアクセスは管理スタックのみに付与されるため、データベースノード上のこのネットワーキングインターフェイスは本明細書に記載されるセキュリティ対策によって保護されなくてもよい。管理スタック２１０は、データベースノード上で実行されてＴＣＰ上でアクセス可能なＰＬ／ＳＱＬプロシージャによって提供されるＡＰＩを用いる。これらのプロシージャは、データベースＡＣＬテーブルのアクセスおよび制御が、データベース管理アクセスパーティションに関連付けられているネットワーキングインターフェイスを介してのみ実行可能であるように改善される。代替的な実施形態では、管理スタックはデータベースサーバシステム２６０上にデプロイされ得るか、またはイーサネットを用いてデータベースノードと通信し、標準的なイーサネットセキュリティメカニズムを用いて管理スタック２１０とデータベースノードとの間のセキュアな通信が保証されることになる。
【００６９】
アクセス制御
上述のように、ＶＭＩＤは、ＧＲＨ．ＳＧＩＤの一部としてデータベースアクセスパーティション内に送信される各パケットに埋込まれ、パケットを発信するＶＭを識別する。アクセス制御リストは、どのＶＭがどのサービスにアクセス可能であるかを指定する。アクセス制御は次に、各パケットのＧＲＨ．ＳＧＩＤ内に提供されるＶＭＩＤおよびＡＣＬを用いてデータベースノード内に実装される。サービスＶＭＩＤリスト５１６およびノードＡＣＬ５３６などのＡＣＬ５２４およびサブテーブルが利用されて、アドレス解決、パス解決、接続確立およびデータ交換を含む、コンピュートノード仮想マシンとデータベースサービスとの間の接続のライフサイクル中のいくつかの異なるステージにおいてアクセス制御が提供され得る。なお、上述のシステムについて、以下に記載されるアクセス制御対策は、データベースノードとコンピュートノード上のＶＭとの間の通信のために用いられるネットワークインターフェイス、すなわちデータベースアクセスパーティションのためのネットワークインターフェイスについてのみ実行されればよい。これらのアクセス制御対策は、データベースノードとストレージセルとの間の通信のために用いられるネットワークインターフェイス、すなわちストレージアクセスパーティションのためのネットワークインターフェイスに適用されなくてもよい。また、これらのアクセス制御対策は、コンピュートノード上のＶＭと他のコンピュートノード上のＶＭとの間の通信のために用いられるネットワークインターフェイスに適用されなくてもよい。
【００７０】
アクセス制御の粒度は、接続ライフサイクル段階に依存して異なる。アドレス解決およびパス解決の段階では、システムは、ノードＡＣＬ５３６に基づいて特有のデータベースノードへのアクセスを制御し得る。すなわち、仮想マシンには、当該仮想マシンがアクセスすることが許可されている１つ以上のデータベースサービスを提供するデータベースノードについてのみ、アドレスおよびパス情報が提供され得る。接続確立およびデータ交換の段階では、システムは、ＡＣＬ５２４および／またはサービスＶＭＩＤリスト５１６に基づいてＶＭと特定の名前付きデータベースサービスとの間のアクセスおよびデータ転送を制御する。
【００７１】
アドレス解決アクセス制御
仮想マシンとデータベースサービスとの間の接続のライフサイクル中のステージにおいてアクセス制御を提供するためにデータベースノード内に実装される１つのメカニズムは、アドレス解決アクセス制御である。アドレス解決プロトコル（ＡＲＰ）通信が、特定の名前付きデータベースサービスを提供するデータベースノードに接続するためのプロセスの最初の部分としてＶＭによって用いられる。ＡＲＰを用いて、ＩＰアドレスがハードウェアアドレス（イーサネットの場合はＭＡＣアドレス、またはＩＰｏＩＢ規格が定義する２０バイトのＩＰｏＩＢハードウェアアドレス）に分解される。ＡＲＰ通信が、ＩＰｏＩＢ通信を用いて、コンピュートノード上にデプロイされるＶＭとデータベースノードとの間で交換される。ＶＭはコンピュートノードからマルチキャストＡＲＰ要求を送信し、データベースノードは（許可されている場合）ユニキャストＡＲＰ応答を返信する。データベースノードとＶＭとの間で交換されるマルチキャスト要求およびユニキャスト要求は両方とも、グローバルルーティングヘッダ（ＧＲＨ）を所有していること、およびしたがって、ＧＲＨ．ＳＧＩＤ内にＶＭＩＤを提供することによってＶＭを識別することが必要である。
【００７２】
アドレス解決アクセス制御は、受信するアドレス解決プロトコル（ＡＲＰ）要求のＧＲＨ．ＳＧＩＤからのＶＭＩＤを、特有のデータベースノードへのアクセスが許可されているＶＭを識別する当該特有のデータベースノードについてプログラムされているノードＡＣＬ５３６と突合わせることによって実行される。上述のように、ノードＡＣＬ５３６は、特有のＩＰｏＩＢネットワーキングインターフェイスのためのｓｙｓｆｓ／ｉｏｃｔｌインターフェイスを用いて各データベースノード上のＩＰｏＩＢドライバ５２６に提供される。ＶＭＩＤはノードＡＣＬに追加され得るか、またはノードＡＣＬから削除され得る。したがって、各データベースノードのＩＰｏＩＢドライバは、特有のネットワーキングインターフェイス上でデータベースノードへのアクセスが許可されているＶＭのＶＭＩＤのリストを用いて構成される。ＩＰｏＩＢドライバ５２６はノードＡＣＬを用いて、データベースノードへのアクセスが許可されていないＶＭにＡＲＰ応答を提供することを拒否することによってアクセス制御を実行し得る。言い換えれば、ＩＰｏＩＢドライバ５２６は、ＧＲＨ．ＳＧＩＤがノードＡＣＬにＶＭＩＤを含んでいない限り、ＡＲＰ要求に応答しない。
【００７３】
ＶＭからＡＲＰ要求を受信すると、データベースノードのＩＰｏＩＢドライバ５２６は要求を確認してＧＲＨがパケット内に存在していることを検証し、ＧＲＨがない場合、要求は破棄されて応答はなされない。次に、データベースノードのＩＰｏＩＢドライバ５２６は、インバウンドの各ＡＲＰ要求／応答のＧＲＨ内のＳＧＩＤをノードＡＣＬと突合わせ、一致しない場合、要求は破棄されて応答はなされない。次に、データベースノードのＩＰｏＩＢドライバ５２６は、インバウンドの各ＡＲＰ要求／応答のＧＲＨ内のＳＧＩＤをＡＲＰ要求／応答本体からのソースハードウェアアドレスの下位１２８ビットと突合わせ、一致しない場合、要求は破棄されて応答はなされない。最後の確認は、ＡＲＰキャッシュ内にプログラムされているハードウェアアドレスが対応のＶＭの有効なＳＧＩＤを所有していることを確かめるように意図されており、ＶＭによって作成されたソケットの識別のために用いられ得る。ＧＲＨが存在している場合にのみ、ＳＧＩＤはノードＡＣＬ５３６と一致し、ＡＲＰ要求／応答本体からのソースハードウェアアドレスの下位１２８ビットは、コンピュートノード上の仮想マシンに返信されるＡＲＰ応答である。
【００７４】
したがって、ＡＣＬは、アドレス解決情報へのアクセスを、ノードＡＣＬ５３６内のＳＧＩＤによって識別されるそれらのＶＭのみに制御する。したがって、ＶＭは、自身がアクセスすることが許可されていないデータベースノードからのアドレス解決情報を受信できない。この結果、データベースノード（およびそれらが提供するデータベースサービス）は、ノードＡＣＬ５３６に従ってそれらへのアクセスが許可されていないＶＭに対して効果的に「インビジブル」である。
【００７５】
接続確立アクセス制御
仮想マシンとデータベースサービスとの間の接続のライフサイクル中のステージにおいてアクセス制御を提供するためにデータベースノード内に実装される別のメカニズムは、接続確立アクセス制御である。ＶＭは、自身が接続することを望むデータベースサービスの位置を突き止めると、当該データベースサービスとの接続を確立することを試みる。データベースノードは、ＲＤＭＡのためのオープンソースソフトウェアスタックおよびカーネルバイパスアプリケーションを提供するオープン・ファブリック・エンタープライズ・ディストリビューション（ＯＦＥＤ）によって提供される情報を用いて接続確立アクセス制御を実行する。実施形態では、システムは、コンピュートノード上の仮想マシンとデータベースとの間のすべての通信が、制御オペレーションのために用いられるＡＲＰトラフィックおよびＴＣＰソケットを除いて、パケットがＧＲＨヘッダを含んでいる状態でインフィニバンド高信頼性接続トランスポート上の通信に制約されるように構成される。接続確立アクセス制御は、接続要求がＧＲＨヘッダを所有していること、およびＧＲＨ．ＳＧＩＤが、アクセス制御リストによって示されている特有の名前付きデータベースプロセスへのアクセスが許可されているＶＭに対応するＶＭＩＤを識別すること、を確認することによって実行される。
【００７６】
図６は接続確立アクセス制御の局面を示す。接続マネージャ（接続マネージャエージェント）は、インフィニバンド仕様によって定義されるようなインフィニバンド接続確立プロトコルを実装する。接続確立は、接続確立に必要な情報を所有している接続管理データグラム（ＭＡＤ）を用いて実行される。上述のように、本発明の実施形態では、データベースサーバシステムとミドルウェアマシンシステムとの間のパス上の接続管理データグラム（ＭＡＤ）がＧＲＨヘッダを所有していることが必要である。データベースノード３６０上で実行される接続管理エージェント（ＣＭＡ）６２２は、接続確立時に以下のフィルタリングオペレーションを実行する。ＣＭＡ６２２は、ＣＭＡ  ＭＡＤ６２６を受信すると、ＧＲＨがＭＡＤ内に存在していることを検証し、存在しない場合、応答せずにＣＭＡ  ＭＡＤを破棄する。任意に、ＣＭＡ６２２は、代替パスがＣＭＡ  ＭＡＤ６２６内で有効でないことを認証し得る。代替パス管理（ＡＰＭ）は好ましくは禁止されており、ＡＰＭが指定されている場合、ＣＭＡ  ＭＡＤは応答せずに任意に破棄され得る。次に、ＣＭＡ６２２は、ＣＭＡ  ＭＡＤのＧＲＨからのＳＧＩＤをＣＭＡ  ＭＡＤ６２６の本体からの一次パスＳＧＩＤと突合わせ、不一致の場合、応答せずに接続管理ＭＡＤを破棄する。ＣＭＡによるこれらのステップによって、接続確立イベントにおいて上位層（アプリケーションまたはＩＰｏＩＢ）に提供されるリモートアドレスがリモートＶＭに対応する有効なＳＧＩＤを含んでいることが認証されるため、このＳＧＩＤはアクセス制御認証のために上位層によって用いられ得る。
【００７７】
接続管理エージェント（ＣＭＡ）は、ＡＲＰのためのＩＰｏＩＢドライバと同様の付加的なノードレベルアクセス制御を実行するように改善され得る。たとえば、ＣＭＡは、ＭＡＤに関連付けられているＧＲＨ．ＳＧＩＤがデータベースノードへのアクセスが許可されているＶＭと一致しない限りデータベースノード内のアプリケーションレベルにイベントをプッシュアップしないように改善され得る。ノード境界（node-bounded）ＡＣＬ能力をＣＭＡに追加することは、攻撃防止をノード境界のできるだけ近くにプッシュすることによって、かつＭＡＤを拒絶のためのアプリケーションレベルに提供するオーバーヘッドを回避することによって、ＤｏＳ攻撃に対処するのに特に有用である。
【００７８】
しかし、いくつかの実施形態では、接続管理エージェント（ＣＭＡ）６２２は、特有のデータベースサービスへの特有のＶＭのアクセス制御を認証せず、アプリケーション層６１０内のデータベースプロセスがこの確認（たとえば図５ＢのＤＢインスタンス５０６および／またはＤＢリスナ５４６など）を実行することに依拠する。ＣＭＡはイベント通知メカニズムを用いて、接続確立状態マシン内のアプリケーション層へのアプリケーション移行を示す。アプリケーション層６１０内のデータベースプロセスは、接続を要求しているＶＭのＳＧＩＤ／ＶＭＩＤを含む、その接続に割当てられたｃｍａ＿ｉｄを介してリモートピアに関する情報を（関連のイベントをサブスクライブすることによって）取得し得る。たとえば、上位層プロトコル（ＤＢインスタンス５０６、ＤＢリスナ５４６、ＩＰｏＩＢまたは他のアプリケーション）は、接続確立イベントのリモートアドレス構造内に提供されるＳＧＩＤ／ＶＭＩＤを用いて、ファイングレインアプリケーション層ＡＣＬ５２４に基づいてアクセス制御を認証し、それによってＡＣＬ５２４に基づいて接続を受付けるか拒絶し得る。
【００７９】
アプリケーション層は、ＯＦＥＤスタックからのイベントを消費する。アプリケーション層は、ＯＦＥＤイベント通知メカニズムを用いてＩＢ接続を確立する。アプリケーション層は、上述のように接続確立フロー時に特定の接続のためのＶＭのＶＭＩＤを取得する。次に、アプリケーション層内のデータベースプロセス６１０は取得したＶＭＩＤを用いて、個々の接続のためのアクセス制御を実行する。アプリケーション層は、ｃｍａ＿ｉｄ内のＣＭＡ層によって提供されるＶＭアイデンティティ（ＧＲＨ．ＳＧＩＤから取得したＶＭＩＤ）をいつおよびどのように用いて特有のデータベースサービスへのアクセスを制御するかを判断する。
【００８０】
アプリケーション層は、特定のコンピュートノードＶＭがどのデータベースサービスへのアクセスを取得しようとしているかを識別するために、ＶＭＩＤに加えてデータベースサービス名を必要とする。この情報が接続確立時に利用可能でない場合、アプリケーションはＶＭアイデンティティ（ＧＲＨ．ＳＧＩＤから取得したＶＭＩＤ）を格納し、当初の接続を形成し、その後、ＶＭアイデンティティを用いて、データベースサービス名が利用可能になるとすぐにアクセス許可を認証し得る（許可が拒絶された場合は接続をドロップする）。ＯＦＥＤスタックとアプリケーション層との間のインターフェイスによって、アプリケーション層は接続の特有のエンドポイントを識別し、データベースサービス名を受信した後にアクセス制御判断に基づいて特有のエンドポイントとの接続性を終了することができる。したがって、アプリケーションは、最初に接続を受付け、後のステージにおいて接続を終了すると決定してもよい。これによってアプリケーション層は、接続確立前に利用可能であるデータベースサービス名に依拠せず、当初のデータ交換の一部としてそれを取得することができる。
【００８１】
図６に示されるように、アプリケーション層内のデータベースプロセス６１０が接続を受付けると、当該受付けはインフィニバンド接続管理／接続管理エージェント（ＩＢＣＭ／ＣＭＡ）ドライバ６２２に通信される。ＩＢＣＭ／ＣＭＡドライバ６２２は、接続に関連付けられているハードウェアキューペア（queue pair：ＱＰ）コンテキスト６２４を作成する役割を果たす。ハードウェアＱＰコンテキストは、比較的少数のハードウェアＱＰコンテキストがＨＣＡメモリのＨＷ  ＱＰコンテキストキャッシュ６３４にキャッシュされた状態でシステムメモリ内に維持される。コンピュートノードＶＭに接続するために、ハードウェアＱＰコンテキスト６２４は、特定の接続についてＧＲＨを用いる必要があることを示すフラグを含む属性と、接続に関連付けられている特定のＶＭのＶＭＩＤ／ＳＧＩＤ値とを含む。
【００８２】
ＶＭがＣＡＭ  ＭＡＤ内に要求されているデータベースサービスに接続することが許可されていない場合、アプリケーションは接続コンテキストの作成を防止し、および／または暫定的な接続コンテキストを破棄する。したがって、ＡＣＬを用いて、データベースノード内に実装される接続確立アクセス制御は無許可ＶＭへの接続を拒絶することによって、ＶＭと、ＶＭがＡＣＬによってアクセスが許可されていないデータベースサービスとの間の接続、およびしたがって通信を防止し得る。
【００８３】
データ交換アクセス制御
仮想マシンとデータベースサービスとの間の接続のライフサイクル中のステージにおいてアクセス制御を提供するためにデータベースノード内に実装されるさらなるメカニズムは、データ交換アクセス制御である。データ交換アクセス制御は、接続確立段階時にプログラムされるハードウェアキューペア（ＱＰ）コンテキスト６２４に基づく。上述のように、図６に示されるように、ハードウェアＱＰコンテキストは、比較的少数のハードウェアＱＰコンテキストがＨＣＡメモリのＨＷ  ＱＰコンテキストキャッシュ６３４にキャッシュされた状態でシステムメモリ内に維持される。コンピュートノードＶＭに接続するために、ハードウェアＱＰコンテキスト６２４は、特定の接続についてＧＲＨを用いる必要があることを示すフラグを含む属性と、接続に関連付けられている特定のＶＭのＳＧＩＤ値とを含む。データ交換アクセス制御は、接続上で受信されるすべてのパケットが指定されたＧＲＨ．ＳＧＩＤを含んでおり、したがって当該接続の使用が許可されているＶＭから来ていることを検証する。非準拠パケットは破棄される。これによってＨＣＡハードウェアは、接続上で送信されるすべてのデータパケットに対してデータ交換アクセス制御を実行することができる。
【００８４】
インフィニバンド仕様に準拠しているＨＣＡは、その接続上で交換されるすべてのパケットがＧＲＨヘッダを所有していること、および受信するパケットのＧＲＨ．ＳＧＩＤが、ハードウェアＱＰコンテキスト内に指定されているリモートピアＧＩＤと一致していることを認証する必要がある。加えて、すべてのシーケンス番号確認およびプロトコル確認も（ＴＣＰソケットについてのＴＣＰフラグおよびシーケンス番号認証と同様に）ハードウェアによって実行される。これらの要件の実行によって、実行されるインフィニバンドオペレーション（ＲＤＭＡオペレーションを含む）に対する制約なしで、かつパフォーマンスインパクトなしで、特定の接続上のＶＭとデータベースサービスとの間のデータ転送のＨＣＡハードウェアによるオンザフライ（on-the-fly）アクセス制御認証が保証される。
【００８５】
図６に示されるように、ＨＣＡ３６６は各インフィニバンドパケット４０２を検査し、とりわけ、ＧＲＨ４０４内のＳＧＩＤが、接続に関連付けられているハードウェアＱＰコンテキストに関連付けられているＳＧＩＤと一致することを保証する。非準拠パケットはすべてドロップされる。しかし、準拠パケットは、一旦認証されるとヘッダが除去され、データ／ペイロード４０６が、接続に関連付けられているアプリケーションバッファ内に直接配置される。したがって、接続が確立された後でも、データベースノード上のＨＣＡのハードウェアはすべてのパケットに対してデータ交換アクセス制御を実行して、パケットが、特定の接続を介して特定のデータベースにアクセスすることが許可されているＶＭから来ていることを保証する。
【００８６】
ＩＰｏＩＢアクセス制御
仮想マシンとデータベースサービスとの間の接続のライフサイクル中のステージにおいてアクセス制御を提供するためにデータベースノード内に実装される別のメカニズムは、ＩＰｏＩＢアクセス制御である。データベースリスナ５４６が用いる特有のＴＣＰポートについてのＴＣＰソケットトラフィックについて、制限付きアクセスが可能となる。しかし、データベースノード内のＯＳスタックＩＰフィルタは、無許可トラフィックを除外するように構成される。ＩＰｏＩＢは、接続モードまたはデータグラムモードについて構成され得る。ＩＰｏＩＢ通信チャネルの各側は独立して構成される（すなわち、片側は接続モードに、反対側はデータグラムノードに構成され得る）。本発明の実施形態では、ＩＰｏＩＢ上のすべての通信は接続モードのみに限定される。これは、データベースノードのＩＰｏＩＢドライバを、コンピュートノード上のＶＭなどのリモートピアによって接続モードの使用を実行するように構成することによって達成される。
【００８７】
ＩＰｏＩＢは、パケットを受信すると以下の確認を行ない、通信が接続モードのみを使用していることを保証する。データグラムＱＰ上の通信はＡＲＰパケットのみに限定されるべきであり、その他のすべてのパケットは破棄される。ＩＰｏＩＢは、データベースノードＡＣＬテーブル内にリストされているＶＭとの接続のみを確立する。接続管理エージェント（ＣＭＡ）は、この接続を確立するリモートピアについてのアドレス情報をＩＰｏＩＢに提供する。いくつかあるアドレス属性の中でも特に、ＣＭＡは、接続確立アクセス制御の節で記載されたようなピア（ＶＭ）のＳＧＩＤを提供することになる。ＩＰｏＩＢドライバは、接続確立イベントを処理する際に以下の確認を実行すべきである。ＣＭＡイベントからリモートエンドポイントアドレス情報を取得する。ＣＭＡイベント内に提供されたアドレス情報からＶＭのＳＧＩＤを取出す。ＶＭのＳＧＩＤをＡＣＬリストエントリと突合わせ、ＶＭのＳＧＩＤがＡＣＬリストエントリと一致しない場合であっても接続確立を破棄する。これによって、データベースプロセス接続を形成することを試みているＶＭが特有のデータベースサービスにアクセスすることが許可されていることを認証するデータベースリスナ５４６と連携してデータベースリスナ５４６と通信しているＶＭの肯定識別を可能にする改善されたセキュリティが提供される。
【００８８】
サービス拒否（ＤｏＳ）攻撃防止
ＤｏＳ攻撃からの保護は、従来のイーサネットファイアウォールアプライアンスによって提供される標準機能の１つである。ＤｏＳ攻撃では、複数のメッセージがインターフェイスに送信される。メッセージが拒否された場合でも、大量のメッセージ、およびメッセージの拒否に関連するオーバーヘッドがインターフェイスのリソースを圧倒するため、それを正規のトラフィックに用いることはできない。ＤｏＳ攻撃は必ずしも悪意ある者を表わしているわけではなく、たとえば、反復メッセージの原因となるハードウェアまたはソフトウェア内の誤った設定のソフトウェアまたはエラーによって生じる場合がある。本発明のシステムおよび方法は、上述のように、マルチテナント認識型の、ファイングレインのデータベース認識型のアクセス制御を提供する。しかし、アクセス制御はデータベースノードのソフトウェアおよびハードウェアによって実行されるため、システムは標準的なフィルタリング技術を用いてＤｏＳ問題に対処することはできない。攻撃がデータベースノードによって検出され得る頃には、データベースノードは既に攻撃を受けており、メッセージを拒否する少なくともいくらかのリソースを費やす必要がある。上述のように、拡張されるリソースの量は、メッセージ制御／拒否をノードのエッジの近くにプッシュすることによって低減され得る。しかし、他のＤｏＳ攻撃防止機能を提供することも望ましいであろう。
【００８９】
旧来のファイアウォールベースのフィルタリングアプローチに従うように試みる代わりに、本発明の実施形態は、完全にエンジニアリングされて高度に統合されたソリューションであることを最大限に活用してＤｏＳ問題に対処し得る。アクセス制御を担当するコンポーネントが、ＶＭがアクセスすることが許可されていないデータベースサービスに当該ＶＭが接続しようと繰返し試みていることを検出すると、統合システムのコンポーネントは修復動作を取り、アクセス違反をログ記録し得る。たとえば、データベースリスナ５４６が繰返されるアクセス違反を検出すると、データベースリスナは以下の動作を実行する。データベースリスナ５４６はアクセス違反をログ記録する。データベースリスナ５４６は、連続攻撃がより低レベルで、データベースノード境界のより近くで停止され、したがってデータベースノードのオペレーションへの干渉が減少し得るように、処理スタック（たとえばＩＢ接続管理スタック、またはＩＰｏＩＢドライバ）のより下部に配置された他のコンポーネントのアクセス制御フィルタを更新する。データベースリスナ５４６はさらに管理スタック２１０に通知し、攻撃のソースであるＶＭを識別するＶＭＩＤを含むＧＲＨ．ＳＧＩＤを含む攻撃に関する情報を提供する。
【００９０】
システムは、コンピュートノードのＨＣＡによって各パケットのＧＲＨ．ＳＤＩＤに埋込まれているＶＭＩＤを用いて、仮想マシンの高信頼性の識別を提供する。したがって、攻撃者ＶＭのアイデンティティは、攻撃パケットに関連付けられているＧＲＨ−ＳＧＩＤから管理スタック２１０に知られている。管理スタックは、攻撃を停止する動作の１つ以上を取り得る。たとえば、管理スタックは、攻撃を仕掛けているＶＭのデータベースアクセスパーティション２０４へのアクセスを取消すことによって、当該ＶＭがさらなるパケットをデータベースノードに送信することを防止し得る。加えて、たとえば、管理スタックは、管理スタックの構成、またはシステムアドミニストレータが取る動作に依存して、ＶＭのオペレーションを終了する動作を取り得る。このように、ＤｏＳパケットがデータベースノードに到達することを防止することができるか、またはＤｏＳパケットのソースを非アクティブにすることによって、標準的なパケットフィルタリングファイアウォールアプライアンスを用いずにＤｏＳ保護機能を達成することができる。
【００９１】
本発明の実施形態に従うと、マルチテナント環境においてネットワークセキュリティを提供するためのサーバが提供される。本実施形態のサーバは、たとえばデータベースサーバシステム２４０などの、先の実施形態で記載されたサーバのいずれかであり得る。さらに、サーバおよびそのコンポーネントは、先の実施形態において記載されたような本発明の原理に基づいて適切なオペレーションのいずれかを実行し得る。
【００９２】
本実施形態の例では、サーバは、アクセス制御リストを受信するための第１の受信ユニットを含み得、アクセス制御リストは、複数のデータベースサービスを識別し、複数のデータベースサービスの各々について、複数のデータベースサービスの各々にアクセスすることが許可されている１つ以上のデータベースサービスコンシューマに関連付けられている１つ以上のデータベースサービスコンシューマアイデンティティを識別し得る。一方、サーバは、複数のサーバを複数のアプリケーションサーバに直接接続する接続ベースのスイッチドファブリック上で送信される複数の通信パケットを受信するための第２の受信ユニットを含み得る。さらに、サーバは、複数の通信パケットの特定の各通信パケットについて以下のステップを実行するための第１の実行ユニットを含み得、ステップは、特定の通信パケットがいずれのデータベースサービスコンシューマアイデンティティも含んでいない場合、特定の通信パケットを破棄することと、特定の通信パケットがデータベースサービスコンシューマアイデンティティを含んでいる場合、特定の通信パケットに含まれている特定のデータベースコンシューマアイデンティティを用いて、特定の通信パケットを送信した特定のサービスコンシューマを識別することと、アクセス制御リストを特定の通信パケットに含まれている特定のデータベースコンシューマアイデンティティと組合せて用いて、アクセス制御リストが、特定のデータベースサービスコンシューマが複数のデータベースサービスのうちの特定のデータベースサービスにアクセスすることが許可されていると識別していない限り、特定のデータベースコンシューマによる特定のデータベースサービスへのアクセスを防止することとを含む。
【００９３】
本実施形態の例では、特定の通信パケットはアドレス解決プロトコル（ＡＲＰ）要求であり得る。第１の実行ユニットは、アクセス制御リストが、特定のデータベースサービスコンシューマがサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別しているか否かを判断するための第１の判断ユニットを含み得る。さらに、第１の判断ユニットは、アクセス制御リストが、特定のデータベースサービスコンシューマがサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別していない場合、ＡＲＰ応答を送信することなく、ＡＲＰ要求をドロップするための第１のドロップユニットを含み得る。
【００９４】
本実施形態の例では、特定の通信パケットは接続確立要求である。第１の実行ユニットは、アクセス制御リストが、特定のデータベースサービスコンシューマがサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別しているか否かを判断するための第２の判断ユニットを含み得る。さらに、第１の実行ユニットは、アクセス制御リストが、特定のデータベースサービスコンシューマがサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別していない場合、接続を確立することなく、接続確立要求をドロップするための第２のドロップユニットを含み得る。
【００９５】
本実施形態の例では、特定の通信パケットは接続確立要求である。第１の実行ユニットは、接続確立要求がどの特定のデータベースサービスに接続することを要求しているかを判断するための第３の判断ユニットを含み得る。さらに、第１の実行ユニットは、アクセス制御リストが、特定のデータベースサービスコンシューマが特定のデータベースサービスにアクセスすることが許可されていると識別していない場合、接続確立要求に応答して特定のデータベースサービスへの接続の確立を防止するための防止ユニットを含み得る。
【００９６】
本実施形態の例では、特定の通信パケットは接続確立要求である。第１の実行ユニットは、接続確立要求に応答して接続を形成するための形成ユニットを含み得る。さらに、第１の実行ユニットは、接続上で特定のデータベースサービスコンシューマによってアクセスされるように意図されている特定のデータベースサービスのＩＤを接続上で受信するための第３の受信ユニットを含み得る。さらに、第１の実行ユニットは、アクセス制御リストが、特定のデータベースサービスコンシューマが特定のデータベースサービスにアクセスすることが許可されていると識別していない場合、接続を終了するための終了ユニットも含み得る。
【００９７】
本実施形態の例では、特定の通信パケットは、特定のデータベースサービスコンシューマと特定のデータベースサービスとの間に確立された接続上で受信されるデータパケットである。第１の実行ユニットは、ハードウェアコンテキストを、特定のデータベースサービスコンシューマと特定のデータベースサービスとの間に確立された接続に関連付けるための関連付けユニットを含み得、ハードウェアコンテキストは、特定のデータベースサービスコンシューマの特定のデータベースサービスコンシューマ識別子を含む。さらに、第１の実行ユニットは、データパケットが、接続に関連付けられているハードウェアコンテキストに含まれている特定のデータベースサービスコンシューマアイデンティティを含んでいない限り、データパケットをドロップするための第３のドロップユニットを含み得る。
【００９８】
本実施形態の例では、データパケットはサーバのホストチャネルアダプタにおいて受信され、ハードウェアコンテキストはホストチャネルアダプタのメモリに格納されている。第３のドロップユニットは、データパケットが、接続に関連付けられているハードウェアコンテキストに含まれており、かつホストチャネルアダプタのメモリに格納されている、ハードウェアコンテキストに含まれている特定のデータベースサービスコンシューマアイデンティティを含んでいない限り、ホストチャネルアダプタを用いてデータパケットをドロップするための第４のドロップユニットを含み得る。
【００９９】
本実施形態の例では、第１の実行ユニットは、アクセス制御リストに基づいて、アドレス解決アクセス制御、接続確立アクセス制御、およびデータ交換アクセス制御のうちの１つを実行するための第２の実行ユニットを含み得る。
【０１００】
本実施形態の例では、接続ベースのスイッチドファブリックはインフィニバンドファブリックであり、特定の通信パケットは、複数のサーバを複数のアプリケーションサーバに直接接続するインフィニバンドファブリック上でサーバにおいて受信されるインフィニバンドプロトコル通信パケットである。第１の実行ユニットは、インフィニバンドプロトコル通信パケットがグローバルルーティングヘッダを含んでいない場合、インフィニバンドプロトコル通信パケットを破棄するための破棄ユニットを含み得、インフィニバンドプロトコル通信パケットがグローバルルーティングヘッダを含んでいる場合、インフィニバンドプロトコル通信パケットのグローバルルーティングヘッディングに含まれているソースグローバル識別子を用いて、特定のインフィニバンドプロトコル通信パケットを送信した特定のサービスコンシューマを識別する。さらに、第１の実行ユニットは、アクセス制御リストをインフィニバンドプロトコル通信パケットのグローバルルーティングヘッディングに含まれているソースグローバル識別子と組合せて用いて、アクセス制御リストが、特定のデータベースサービスコンシューマが複数のデータベースサービスのうちの特定のデータベースサービスにアクセスすることが許可されていると識別していない限り、特定のデータベースコンシューマによる特定のデータベースサービスへのアクセスを防止するための使用ユニットを含み得る。
【０１０１】
本実施形態の例では、接続ベースのスイッチドファブリックはインフィニバンドファブリックである。サーバはさらに、複数のデータベースサービスコンシューマから送信される各インフィニバンドパケットが、各パケットに関連付けられているデータベースサービスコンシューマを識別するソースグローバル識別子を含まなければならないように、複数のサーバを、各々がグローバルルーティングヘッダおよびソースグローバル識別子を含むインフィニバンドプロトコルパケットを用いること以外によって複数のデータベースサービスコンシューマと複数のサービスとの間のデータ交換を禁止するように構成するための構成ユニットを含み得る。
【０１０２】
本発明の別の実施形態に従うと、マルチテナント環境においてネットワークセキュリティを提供するためのサーバが提供される。本実施形態のサーバは、たとえばデータベースサーバシステム２４０などの、先の実施形態で記載されたサーバのいずれかであり得る。さらに、サーバおよびそのコンポーネントは、先の実施形態において記載されたような本発明の原理に基づいて適切なオペレーションのいずれかを実行し得る。
【０１０３】
本実施形態の例では、サーバは、接続ベースのスイッチドファブリックを、複数のデータベースサービスコンシューマおよび複数のデータベースサーバにとってアクセス可能なデータベースアクセスパーティションを有するように構成するための第１の構成ユニットを含み得る。サーバはさらに、接続ベースのスイッチドファブリックを、複数のサーバおよび複数のストレージセルにとってはアクセス可能であるが複数のデータベースサービスコンシューマにとってはアクセス不可能なストレージアクセスパーティションを有するように構成するための第２の構成ユニットを含み得る。サーバはさらに、複数のアプリケーションサーバの各々のネットワークインターフェイスを、アプリケーションサーバ上にホストされている複数のデータベースサービスコンシューマの各々を固有のデータベースサービスコンシューマアイデンティティに関連付けるように構成するための第３の構成ユニットを含み得る。サーバはさらに、複数のアプリケーションサーバの各々のネットワークインターフェイスを、データベースサービスコンシューマから複数のデータベースサービスに向けて送信される各通信パケットの内部でアプリケーションサーバ上にホストされている複数のデータベースサービスコンシューマの各々に関連付けられているデータベースサービスコンシューマアイデンティティを含むように構成するための第４の構成ユニットを含み得る。サーバはさらに、複数のサーバの各々にアクセス制御リストを提供するための提供ユニットを含み得、アクセス制御リストは、複数のデータベースサービスを識別し、複数のデータベースサービスの各々について、複数のデータベースサービスの各々にアクセスすることが許可されている１つ以上のデータベースサービスコンシューマに関連付けられている１つ以上のデータベースサービスコンシューマアイデンティティを識別する。サーバはさらに、データベースサービスコンシューマアイデンティティを含んでいない複数のアプリケーションサーバから受信したすべての通信パケットを、複数のデータベースの各々のネットワークインターフェイスを用いて破棄するための破棄ユニットを含み得る。サーバはさらに、アクセス制御リストを、複数のデータベースサーバのうちの特定のデータベースサーバの特定のネットワークインターフェイスにおいて受信した特定の通信パケットに含まれている特定のデータベースサービスコンシューマアイデンティティと組合せて用いて、アクセス制御リストが、特定のデータベースサービスコンシューマが複数のデータベースサービスのうちの特定のデータベースサービスにアクセスすることが許可されていると識別していない限り、特定のデータベースコンシューマアイデンティティに関連付けられている特定のデータベースコンシューマによる特定のデータベースサービスへのアクセスを防止するための使用ユニットを含み得る。
【０１０４】
本実施形態の例では、特定の通信パケットはアドレス解決プロトコル（ＡＲＰ）要求である。使用ユニットは、アクセス制御リストが、特定のデータベースサービスコンシューマがサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別しているか否かを判断するための第１の判断ユニットを含み得る。使用ユニットはさらに、アクセス制御リストが、特定のデータベースサービスコンシューマがサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別していない場合、ＡＲＰ応答を送信することなく、ＡＲＰ要求をドロップするためのドロップユニットを含み得る。
【０１０５】
本実施形態の例では、特定の通信パケットは接続確立要求である。使用ユニットは、アクセス制御リストが、特定のデータベースサービスコンシューマがサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別しているか否かをサーバ内で判断するための第２の判断ユニットを含み得る。使用ユニットはさらに、アクセス制御リストが、特定のデータベースサービスコンシューマがサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別していない場合、接続を確立することなく、接続確立要求をドロップするための第２のドロップユニットを含み得る。
【０１０６】
本実施形態の例では、特定の通信パケットは接続確立要求である。使用ユニットは、接続確立要求がどの特定のデータベースサービスに接続することを要求しているかを判断するための第３の判断ユニットを含み得る。使用ユニットはさらに、アクセス制御リストが、特定のデータベースサービスコンシューマが特定のデータベースサービスにアクセスすることが許可されていると識別していない場合、接続確立要求に応答して特定のデータベースサービスへの接続の確立を防止するための防止ユニットを含み得る。
【０１０７】
本実施形態の例では、特定の通信パケットは接続確立要求である。使用ユニットは、接続確立要求に応答して接続を形成するための形成ユニットと、接続上で特定のデータベースサービスコンシューマによってアクセスされるように意図されている特定のデータベースサービスのＩＤを接続上で受信するための受信ユニットと、アクセス制御リストが、特定のデータベースサービスコンシューマが特定のデータベースサービスにアクセスすることが許可されていると識別していない場合、接続を終了するための終了ユニットとを含み得る。
【０１０８】
本実施形態の例では、特定の通信パケットは、特定のデータベースサービスコンシューマと特定のデータベースサービスとの間に確立された接続上で受信されるデータパケットである。使用ユニットは、ハードウェアコンテキストを、特定のデータベースサービスコンシューマと特定のデータベースサービスとの間に確立された接続に関連付けるための関連付けユニットを含み得、ハードウェアコンテキストは、特定のデータベースサービスコンシューマの特定のデータベースサービスコンシューマ識別子を含み、使用ユニットはさらに、データパケットが、接続に関連付けられているハードウェアコンテキストに含まれている特定のデータベースサービスコンシューマアイデンティティを含んでいない限り、データパケットをドロップするための第３のドロップユニットを含み得る。
【０１０９】
本実施形態の例では、特定のネットワークインターフェイスはホストチャネルアダプタであり、データパケットはサーバのホストチャネルアダプタにおいて受信され、ハードウェアコンテキストはホストチャネルアダプタのメモリに格納されている。第３のドロップユニットは、データパケットが、接続に関連付けられているハードウェアコンテキストに含まれており、かつホストチャネルアダプタのメモリに格納されている、特定のデータベースサービスコンシューマアイデンティティを含んでいない限り、ホストチャネルアダプタを用いてデータパケットをドロップするための第４のドロップユニットを含み得る。
【０１１０】
本実施形態の例では、使用ユニットは、アクセス制御リストに基づいてアドレス解決アクセス制御、接続確立アクセス制御、およびデータ交換アクセス制御のうちの１つを実行するための実行ユニットを含み得る。
【０１１１】
本実施形態の例では、接続ベースのスイッチドファブリックはインフィニバンドファブリックである。サーバはさらに、複数のデータベースサービスコンシューマから送信される各インフィニバンドパケットが、各パケットに関連付けられているデータベースサービスコンシューマを識別するソースグローバル識別子を含まなければならないように、複数のデータベースサーバを、各々がグローバルルーティングヘッダおよびソースグローバル識別子を含むインフィニバンドプロトコルパケットを用いること以外によって複数のデータベースサービスコンシューマと複数のデータベースサービスとの間のデータ交換を禁止するように構成するための第５の構成ユニットを含み得る。
【０１１２】
本実施形態の例では、サーバはさらに、複数のデータベースサーバの各々のネットワークインターフェイスを用いて、複数のデータベースサービスへの不正アクセスの試みと、不正アクセスの試みに関連付けられている通信パケットに含まれているデータベースサービスコンシューマアイデンティティとをログ記録するための第２の使用ユニットと、複数のデータベースサービスへの不正アクセスの試みと、不正アクセスの試みに関連付けられている通信パケットに含まれているデータベースサービスアイデンティティとのログ記録を管理スタックに提供するための第２の提供ユニットと、管理スタックを用いて、不正アクセスの試みに関連付けられている通信パケットに含まれているデータベースサービスコンシューマアイデンティティによって識別されるデータベースコンシューマがデータベースアクセスパーティションにアクセスすることを阻止することによって、複数のデータベースサーバとの通信を防止して不正アクセスの試みを阻止するための第３の使用ユニットとを含み得る。
【０１１３】
一実施形態の方法は、接続ベースのスイッチドファブリックと、複数の異なるテナントに関連付けられているデータを保持している複数のストレージセルと、複数のデータベースサービスを提供する複数のデータベースサーバとを含むマルチテナント環境においてネットワークセキュリティを提供し、複数のデータベースサービスの各々は、複数のストレージセル内に保持されている複数の異なるテナントに関連付けられているデータを利用し、マルチテナント環境はさらに、複数の異なるテナントに関連付けられている複数のデータベースサービスコンシューマをホストする複数のアプリケーションサーバを含み、方法は、接続ベースのスイッチドファブリックを、複数のデータベースサービスコンシューマおよび複数のデータベースサーバにとってアクセス可能なデータベースアクセスパーティションを有するように構成することと、接続ベースのスイッチドファブリックを、複数のデータベースサーバおよび複数のストレージセルにとってはアクセス可能であるが複数のデータベースサービスコンシューマにとってはアクセス不可能なストレージアクセスパーティションを有するように構成することと、複数のデータベースサービスコンシューマの各々が複数のデータベースサービスコンシューマの各々に関連付けられている固有のデータベースサービスアイデンティティを修正またはスプーフィングすることができないように、複数のアプリケーションサーバの各々のネットワークインターフェイスコントローラを、アプリケーションサーバ上にホストされている複数のデータベースサービスコンシューマの各々を固有のデータベースサービスコンシューマアイデンティティに関連付けるようにセキュアに構成することと、複数のアプリケーションサーバの各々のネットワークインターフェイスコントローラを、データベースサービスコンシューマから複数のデータベースサービスに向けて送信される通信パケットの各々の内部のアプリケーションサーバ上にホストされている複数のデータベースサービスコンシューマの各々に関連付けられているデータベースサービスコンシューマアイデンティティを含むように構成することと、複数のデータベースサーバの各々にアクセス制御リストを提供することとを含み、アクセス制御リストは、複数のデータベースサービスを識別し、複数のデータベースサービスの各々について、複数のデータベースサービスの各々にアクセスすることが許可されている１つ以上のデータベースサービスコンシューマに関連付けられている１つ以上のデータベースサービスコンシューマアイデンティティを識別し、方法はさらに、データベースサービスコンシューマアイデンティティを含んでいない複数のアプリケーションサーバから受信したすべての通信パケットを、複数のデータベースの各々のネットワークインターフェイスを用いて破棄することと、アクセス制御リストを、複数のデータベースサーバのうちの１つのデータベースサーバのネットワークインターフェイスにおいて受信した通信パケットに含まれているデータベースサービスコンシューマアイデンティティと組合せて用いて、アクセス制御リストが、データベースサービスコンシューマが複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、データベースコンシューマアイデンティティに関連付けられているデータベースサービスコンシューマによる１つのデータベースサービスへのアクセスを防止することとを含む。
【０１１４】
一実施形態の方法では、通信パケットはアドレス解決プロトコル（ＡＲＰ）要求であり、アクセス制御リストを、複数のデータベースサーバのうちの１つのデータベースサーバのネットワークインターフェイスにおいて受信した通信パケットに含まれているデータベースコンシューマアイデンティティと組合せて用いて、アクセス制御リストが、データベースサービスコンシューマが複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、データベースコンシューマアイデンティティに関連付けられているデータベースコンシューマによる１つのデータベースサービスへのアクセスを防止することは、アクセス制御リストが、データベースサービスコンシューマがデータベースサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別しているか否かを判断することと、アクセス制御リストが、データベースサービスコンシューマがデータベースサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別していない場合、ＡＲＰ応答を送信することなく、ＡＲＰ要求をドロップすることとを含む。
【０１１５】
一実施形態の方法では、通信パケットは接続確立要求であり、アクセス制御リストを、複数のデータベースサーバのうちの１つのデータベースサーバのネットワークインターフェイスにおいて受信した通信パケットに含まれているデータベースコンシューマアイデンティティと組合せて用いて、アクセス制御リストが、データベースサービスコンシューマが複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、データベースコンシューマアイデンティティに関連付けられているデータベースコンシューマによる１つのデータベースサービスへのアクセスを防止することは、アクセス制御リストが、データベースサービスコンシューマがデータベースサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別しているか否かを、１つのデータベースサーバ内で判断することと、アクセス制御リストが、データベースサービスコンシューマがデータベースサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別していない場合、接続を確立することなく、接続確立要求をドロップすることとを含む。
【０１１６】
一実施形態の方法では、通信パケットは接続確立要求であり、アクセス制御リストを、複数のデータベースサーバのうちの１つのデータベースサーバのネットワークインターフェイスにおいて受信した通信パケットに含まれているデータベースコンシューマアイデンティティと組合せて用いて、アクセス制御リストが、データベースサービスコンシューマが複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、データベースコンシューマアイデンティティに関連付けられているデータベースコンシューマによる１つのデータベースサービスへのアクセスを防止することは、接続確立要求がどのデータベースサービスに接続することを要求しているかを、１つのデータベースサーバ内で判断することと、アクセス制御リストが、データベースサービスコンシューマが１つのデータベースサービスにアクセスすることが許可されていると識別していない場合、接続確立要求に応答してデータベースサービスへの接続の確立を防止することととを含む。
【０１１７】
一実施形態の方法では、通信パケットは接続確立要求であり、アクセス制御リストを、複数のデータベースサーバのうちの１つのデータベースサーバのネットワークインターフェイスにおいて受信した通信パケットに含まれているデータベースコンシューマアイデンティティと組合せて用いて、アクセス制御リストが、データベースサービスコンシューマが複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、データベースコンシューマアイデンティティに関連付けられているデータベースコンシューマによる１つのデータベースサービスへのアクセスを防止することは、接続確立要求に応答して接続を形成することと、接続上でデータベースサービスコンシューマによってアクセスされるように意図されているデータベースサービスのＩＤを、接続上で受信することと、アクセス制御リストが、データベースサービスコンシューマがデータベースサービスにアクセスすることが許可されていると識別していない場合、接続を終了することとを含む。
【０１１８】
一実施形態の方法では、通信パケットは、データベースサービスコンシューマとデータベースサービスとの間に確立された接続上で受信されるデータパケットであり、アクセス制御リストを、複数のデータベースサーバのうちの１つのデータベースサーバのネットワークインターフェイスにおいて受信した通信パケットに含まれているデータベースコンシューマアイデンティティと組合せて用いて、アクセス制御リストが、データベースサービスコンシューマが複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、データベースコンシューマアイデンティティに関連付けられているデータベースコンシューマによる１つのデータベースサービスへのアクセスを防止することは、ハードウェアコンテキストを、データベースサービスコンシューマとデータベースサービスとの間に確立された接続に関連付けることを含み、ハードウェアコンテキストは、データベースサービスコンシューマのデータベースサービスコンシューマ識別子を含み、防止することはさらに、データパケットが、接続に関連付けられているハードウェアコンテキストに含まれているデータベースサービスコンシューマアイデンティティを含んでいない限り、データパケットをドロップすることを含む。
【０１１９】
一実施形態の方法では、ネットワークインターフェイスはホストチャネルアダプタであり、データパケットは１つのデータベースサーバのホストチャネルアダプタにおいて受信され、ハードウェアコンテキストはホストチャネルアダプタのメモリに格納され、データパケットが、接続に関連付けられているハードウェアコンテキストに含まれているデータベースサービスコンシューマアイデンティティを含んでいない限り、データパケットをドロップすることは、データパケットが、接続に関連付けられているハードウェアコンテキストに含まれており、かつホストチャネルアダプタのメモリに格納されている、データベースサービスコンシューマアイデンティティを含んでいない限り、ホストチャネルアダプタを用いてデータパケットをドロップすることを含む。
【０１２０】
一実施形態の方法では、アクセス制御リストを、複数のデータベースサーバのうちの１つのデータベースサーバのネットワークインターフェイスにおいて受信した通信パケットに含まれているデータベースコンシューマアイデンティティと組合せて用いて、アクセス制御リストが、データベースサービスコンシューマが複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、データベースコンシューマアイデンティティに関連付けられているデータベースコンシューマによる１つのデータベースサービスへのアクセスを防止することは、アクセス制御リストに基づいて、アドレス解決アクセス制御、接続確立アクセス制御、およびデータ交換アクセス制御のうちの少なくとも１つを実行することを含む。
【０１２１】
一実施形態の方法は、複数のデータベースサーバの各々に、ストレージアクセスパーティションを用いて複数のストレージセルと通信するための別のネットワークインターフェイスを提供し、別のネットワークインターフェイスは、アクセス制御リストに基づいて、アドレス解決アクセス制御、接続確立アクセス制御、およびデータ交換アクセス制御を実行しないように構成される。
【０１２２】
一実施形態の方法は、複数のデータベースサーバの各々のネットワークインターフェイスを用いて、複数のデータベースサービスへの不正アクセスの試みと、不正アクセスの試みに関連付けられている通信パケットに含まれているデータベースサービスコンシューマアイデンティティとをログ記録することと、複数のデータベースサービスへの不正アクセスの試みと、不正アクセスの試みに関連付けられている通信パケットに含まれているデータベースサービスコンシューマアイデンティティとのログ記録を管理スタックに提供することと、管理スタックを用いて、不正アクセスの試みに関連付けられている通信パケットに含まれているデータベースサービスコンシューマアイデンティティによって識別されるデータベースコンシューマがデータベースアクセスパーティションにアクセスすることを阻止することによって、複数のデータベースサーバとの通信を防止して不正アクセスの試みを阻止することとを提供する。
【０１２３】
一実施形態の方法は、マルチテナント環境においてネットワークセキュリティを提供し、マルチテナント環境は、複数の異なるテナントに関連付けられているデータを保持している複数のストレージセルと、複数の異なるテナントに関連付けられているデータを利用する複数のデータベースサービスを提供する複数のデータベースサーバと、複数の異なるテナントに関連付けられている複数のデータベースサービスコンシューマをホストする複数のアプリケーションサーバと、複数のデータベースサービスコンシューマおよび複数のデータベースサービスにとってアクセス可能なデータベースアクセスパーティションを有するように構成される接続ベースのスイッチドファブリックと、複数のデータベースサービスおよび複数のストレージセルにとってはアクセス可能であるが複数のデータベースサービスコンシューマにとってはアクセス不可能なストレージアクセスパーティションと、複数のアプリケーションサーバの各々の内部のアプリケーションサーバネットワークインターフェイスコントローラとを含み、アプリケーションサーバネットワークインターフェイスコントローラは、複数のデータベースサービスコンシューマの各々が複数のデータベースサービスコンシューマの各々に関連付けられている固有のデータベースサービスアイデンティティを修正またはスプーフィングすることができないように、アプリケーションサーバ上にホストされている複数のデータベースサービスコンシューマの各々を固有のデータベースサービスコンシューマアイデンティティに関連付けるようにセキュアに構成され、アプリケーションサーバネットワークインターフェイスコントローラはさらに、各データベースサービスコンシューマから複数のデータベースサービスに向けて送信される各通信パケット内にデータベースサービスコンシューマアイデンティティを含むように構成され、マルチテナント環境はさらに、複数のデータベースサーバの各々の上に格納されているアクセス制御リストを含み、アクセス制御リストは、複数のデータベースサービスを識別し、複数のデータベースサービスの各々について、複数のデータベースサービスの各々にアクセスすることが許可されている１つ以上のデータベースサービスコンシューマに関連付けられている１つ以上のデータベースサービスコンシューマアイデンティティを識別し、マルチテナント環境はさらに、複数のデータベースサーバの各々の内部にデータベースサーバネットワークインターフェイスを含み、各データベースサーバネットワークインターフェイスは、データベースサービスコンシューマアイデンティティを含んでいない複数のデータベースサービスコンシューマから受信したすべての通信パケットを破棄するようにセキュアに構成され、通信パケットを受信する各データベースサーバネットワークインターフェイスは、アクセス制御リストを、通信パケットに含まれているデータベースサービスコンシューマアイデンティティと組合せて用いて、アクセス制御リストが、データベースサービスコンシューマが複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、データベースコンシューマアイデンティティに関連付けられているデータベースコンシューマによる１つのデータベースサービスへのアクセスを防止するように構成される。
【０１２４】
一実施形態の方法では、通信パケットはアドレス解決プロトコル（ＡＲＰ）要求であり、ＡＲＰ要求を受信するデータベースサーバネットワークインターフェイスは、アクセス制御リストが、データベースサービスコンシューマがデータベースサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別しているか否かを判断し、アクセス制御リストが、データベースサービスコンシューマがデータベースサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別していない場合、ＡＲＰ応答を送信することなく、ＡＲＰ要求をドロップするように構成される。
【０１２５】
一実施形態の方法では、通信パケットは接続確立要求であり、接続確立要求を受信するデータベースサーバネットワークインターフェイスは、アクセス制御リストが、データベースサービスコンシューマがデータベースサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別しているか否かを判断し、アクセス制御リストが、データベースサービスコンシューマがデータベースサーバによって提供される複数のデータベースサービスのうちのいずれか１つにアクセスすることが許可されていると識別していない場合、接続を確立することなく、接続確立要求をドロップするように構成される。
【０１２６】
一実施形態の方法では、通信パケットは接続確立要求であり、接続確立要求を受信するデータベースサーバネットワークインターフェイスは、接続確立要求がどのデータベースサービスに接続することを要求しているかを判断し、アクセス制御リストが、データベースサービスコンシューマが１つのデータベースサービスにアクセスすることが許可されていると識別していない場合、接続確立要求に応答してデータベースサービスへの接続の確立を防止するように構成される。
【０１２７】
一実施形態の方法では、通信パケットは接続確立要求であり、接続確立要求を受信するデータベースサーバネットワークインターフェイスは、接続確立要求に応答して接続を形成し、接続上でデータベースサービスコンシューマによってアクセスされるように意図されているデータベースサービスのＩＤを、接続上で受信し、アクセス制御リストが、データベースサービスコンシューマがデータベースサービスにアクセスすることが許可されていると識別していない場合、接続を終了するように構成される。
【０１２８】
一実施形態の方法では、通信パケットは、データベースサービスコンシューマとデータベースサービスとの間に確立された接続上で受信されるデータパケットであり、接続上でデータパケットを受信するデータベースサーバネットワークインターフェイスはホストチャネルアダプタであり、ホストチャネルアダプタは、ハードウェアコンテキストを、データベースサービスコンシューマとデータベースサービスとの間に確立された接続に関連付けるように構成され、ハードウェアコンテキストは、ホストチャネルアダプタのメモリに格納され、データベースサービスコンシューマのデータベースサービスコンシューマアイデンティティを含み、ホストチャネルアダプタはさらに、データパケットが、接続に関連付けられているハードウェアコンテキストに含まれており、かつホストチャネルアダプタのメモリに格納されている、データベースサービスコンシューマアイデンティティを含んでいない限り、データパケットをドロップするように構成される。
【０１２９】
一実施形態の方法では、複数のデータベースサーバの各々の内部のデータベースサーバネットワークインターフェイスは、複数のデータベースサーバの各々の上に格納されているアクセス制御リストを用いて、アクセス制御リストに基づいて、アドレス解決アクセス制御、接続確立アクセス制御、およびデータ交換アクセス制御のうちの少なくとも１つを実行するように構成される。
【０１３０】
一実施形態の方法では、複数のデータベースサーバの各々は、ストレージアクセスパーティションを用いて複数のストレージセルと通信するための別のネットワークインターフェイスを含み、別のネットワークインターフェイスは、アクセス制御リストに基づいてアドレス解決アクセス制御、接続確立アクセス制御、およびデータ交換アクセス制御を実行しないように構成される。
【０１３１】
一実施形態の方法は、複数のデータベースサーバと通信している管理スタックを提供し、複数のデータベースサーバの各々の内部のデータベースサーバネットワークインターフェイスは、複数のデータベースサービスへの不正アクセスの試みと、不正アクセスの試みに関連付けられている通信パケットに含まれているデータベースサービスコンシューマアイデンティティとをログ記録し、ログ記録を管理スタックに提供するように構成され、管理スタックは、不正アクセスの試みに関連付けられている通信パケットに含まれているデータベースサービスコンシューマアイデンティティによって識別されるデータベースコンシューマがデータベースアクセスパーティションにアクセスすることを阻止することによって、複数のデータベースサーバとの通信を防止して不正アクセスの試みを阻止するように構成される。
【０１３２】
一実施形態の方法は、接続ベースのスイッチドファブリックと、複数の異なるテナントに関連付けられているデータを保持している複数のストレージセルと、複数のデータベースサービスを提供する複数のデータベースサーバとを含むマルチテナント環境においてネットワークセキュリティを提供するための命令が格納されている非一時的なコンピュータ可読媒体を提供し、複数のデータベースサービスの各々は、複数のストレージセル内に保持されている複数の異なるテナントに関連付けられているデータを利用し、マルチテナント環境はさらに、複数の異なるテナントに関連付けられている複数のデータベースサービスコンシューマをホストする複数のアプリケーションサーバを含み、命令は、実行されると、マルチテナント環境のコンポーネントにステップを実行させ、ステップは、接続ベースのスイッチドファブリックを、複数のデータベースサービスコンシューマおよび複数のデータベースサーバにとってアクセス可能なデータベースアクセスパーティションを有するように構成することと、接続ベースのスイッチドファブリックを、複数のデータベースサーバおよび複数のストレージセルにとってはアクセス可能であるが複数のデータベースサービスコンシューマにとってはアクセス不可能なストレージアクセスパーティションを有するように構成することと、複数のデータベースサービスコンシューマの各々が複数のデータベースサービスコンシューマの各々に関連付けられている固有のデータベースサービスアイデンティティを修正またはスプーフィングすることができないように、複数のアプリケーションサーバの各々のネットワークインターフェイスコントローラを、アプリケーションサーバ上にホストされている複数のデータベースサービスコンシューマの各々を固有のデータベースサービスコンシューマアイデンティティに関連付けるようにセキュアに構成することと、複数のアプリケーションサーバの各々のネットワークインターフェイスコントローラを、データベースサービスコンシューマから複数のデータベースサービスに向けて送信される通信パケットの各々の内部のアプリケーションサーバ上にホストされている複数のデータベースサービスコンシューマの各々に関連付けられているデータベースサービスコンシューマアイデンティティを含むように構成することと、複数のデータベースサーバの各々にアクセス制御リストを提供することとを含み、アクセス制御リストは、複数のデータベースサービスを識別し、複数のデータベースサービスの各々について、複数のデータベースサービスの各々にアクセスすることが許可されている１つ以上のデータベースサービスコンシューマに関連付けられている１つ以上のデータベースサービスコンシューマアイデンティティを識別し、ステップはさらに、データベースサービスコンシューマアイデンティティを含んでいない複数のアプリケーションサーバから受信したすべての通信パケットを、複数のデータベースの各々のネットワークインターフェイスを用いて破棄することと、アクセス制御リストを、複数のデータベースサーバのうちの１つのデータベースサーバノードのネットワークインターフェイスにおいて受信した通信パケットに含まれているデータベースサービスコンシューマアイデンティティと組合せて用いて、アクセス制御リストが、データベースサービスコンシューマが複数のデータベースサービスのうちの１つのデータベースサービスにアクセスすることが許可されていると識別していない限り、データベースコンシューマアイデンティティに関連付けられているデータベースサービスコンシューマによる１つのデータベースサービスへのアクセスを防止することとを含む。
【０１３３】
一実施形態の方法では、接続ベースのスイッチドファブリックはインフィニバンドファブリックであり、方法はさらに、複数のデータベースサービスコンシューマから送信される各インフィニバンドパケットが、各パケットに関連付けられているデータベースサービスコンシューマを識別するソースグローバル識別子を含まなければならないように、複数のデータベースサーバを、各々がグローバルルーティングヘッダおよびソースグローバル識別子を含むインフィニバンドプロトコルパケットを用いること以外によって複数のデータベースサービスコンシューマと複数のデータベースサービスとの間のデータ交換を禁止するように構成することを含む。
【０１３４】
一実施形態のシステムでは、接続ベースのスイッチドファブリックはインフィニバンドファブリックであり、複数のデータベースサーバの各々の内部のデータベースサーバネットワークインターフェイスは、複数のデータベースサービスコンシューマから送信される各インフィニバンドパケットが、各パケットに関連付けられているデータベースサービスコンシューマを識別するソースグローバル識別子を含まなければならないように、各々がグローバルルーティングヘッダおよびソースグローバル識別子を含むインフィニバンドプロトコルパケットを用いること以外によって複数のデータベースサービスコンシューマと複数のデータベースサービスとの間のデータ交換を禁止するように構成される。
【０１３５】
本発明のさまざまな実施形態を上述してきたが、これら実施形態が限定ではなく例示のために提示されてきたことが理解されるはずである。形態および詳細のさまざまな変更が、発明の精神および範囲から逸脱することなく本明細書中においてなされ得ることが関連技術の当業者に明らかになるであろう。
【０１３６】
本発明の多くの特徴は、ハードウェア、ソフトウェア、ファームウェアもしくはこれらの組み合わせにおいて、ハードウェア、ソフトウェア、ファームウェアもしくはこれらの組み合わせを用いて、またはハードウェア、ソフトウェア、ファームウェアもしくはこれらの組み合わせの助けを借りて、実行することができる。本発明は、１つ以上のプロセッサ、メモリ、および／または本開示の教示に従ってプログラムされたコンピュータ可読記憶媒体を含む１つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを用いて簡便に実装され得る。本発明の特徴は、たとえば、特定用途向け集積回路（ＡＳＩＣ）およびプログラマブルロジックデバイスなどのハードウェアコンポーネントを用いてハードウェアにおいて実装されてもよい。本明細書に記載される機能を実行するためのハードウェア状態マシンの実装は、関連技術の当業者に明らかになるであろう。
【０１３７】
本発明の特徴は、処理システムのハードウェアを制御するために、および処理システムが本発明の結果を利用する他のメカニズムと対話することを可能にするために、ソフトウェアおよび／またはファームウェアに組込まれ得る。そのようなソフトウェアまたはファームウェアは、アプリケーションコード、デバイスドライバ、オペレーティングシステム、および実行環境／コンテナを含み得るが、それらに限定されない。ソフトウェア技術の当業者には明らかであるように、本開示の教示に基づいて、適切なソフトウェアコーディングが、熟練のプログラマによって容易に準備され得る。
【０１３８】
いくつかの実施形態では、本発明は、本発明の処理のいずれかを実行するようコンピュータをプログラムするのに用いられ得る命令を格納した記憶媒体またはコンピュータ可読媒体であるコンピュータプログラムプロダクトを含む。当該記憶媒体またはコンピュータ可読媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気もしくは光学カード、ナノシステム（分子メモリＩＣを含む）、または命令および／もしくはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るが、これらに限定されない。実施形態では、記憶媒体またはコンピュータ可読媒体は非一時的であり得る。
【０１３９】
本発明の上記の記載は、例示および説明目的で与えられている。網羅的であることまたは開示されたそのものの形態に本発明を限定することを意図したものではない。多くの修正および変形が当業者に明らかになるであろう。当該修正および変形は、開示された特徴の任意の関連の組合せを含む。実施形態は、本発明の原理およびその実際的な適用をもっともよく説明するために選択および記載されたものであり、これにより他の当業者が、特定の使用に好適なさまざまな修正例を考慮して、さまざまな実施形態について本発明を理解するのが可能になる。本発明の範囲は、添付の特許請求の範囲およびそれらの均等物によって定義されることが意図される。
【図１】
0006581651.tif 000002
【図２】
0006581651.tif 000003
【図３】
0006581651.tif 000004
【図４Ａ】
0006581651.tif 000005
【図４Ｂ】
0006581651.tif 000006
【図４Ｃ】
0006581651.tif 000007
【図５Ａ】
0006581651.tif 000008
【図５Ｂ】
0006581651.tif 000009
【図５Ｃ】
0006581651.tif 000010
【図６】
0006581651.tif 000011