(57)【要約】本発明のいくつかの実施形態は、ソフトウェア定義データセンタ（ＳＤＤＣ）内のリソースへの動作を実行するためのリクエストを処理するための方法を提供する。リソースは、いくつかの実施形態におけるソフトウェア定義（ＳＤ）リソースである。本方法は最初に、ＳＤＤＣ内の第１リソースに関する動作を実行することのリクエストを受信する。本方法は、リクエストの属性の集合を、リソースについて特定された動作に制約を課すポリシーの集合の属性の集合と比較することによって、第１リソースについて受信されたリクエストに合致する（すなわち、適用可能である）ポリシーを識別する。いくつかの実施形態で、いくつかのポリシーについての属性のいくつかの集合は、ＳＤＤＣの異なる階層リソース・レベルでリソースについて表現されうる。本方法は、要求された動作が第１リソースについて特定された動作への制約に違反することを識別されたポリシーが特定した場合に、受信されたリクエストを拒否する。
2021526275.tif 000002
【特許請求の範囲】
【請求項１】
データセンタ内のリソースへの動作を実行するためのリクエストを処理する方法であって、前記方法は、
データセンタ内のリソースに関する動作を実行することのリクエストを受信することと、
前記リクエストの属性の集合を、前記リソースについて特定された動作に制約を課すポリシーの集合の属性の集合と比較することによって、前記受信されたリクエストに適用可能なポリシーを識別することであって、複数のポリシーについての属性の複数の集合は、前記データセンタ内の異なる階層リソース・レベルでリソースについて表現される、ことと、
前記要求された動作が前記第１リソースについて特定された動作への制約に違反することを前記識別されたポリシーが特定した場合に、前記受信されたリクエストを拒否することと、
を有する、方法。
【請求項２】
請求項１に記載の方法であって、前記ポリシーの集合内の前記ポリシーは、宣言形式で規定される、方法。
【請求項３】
請求項１に記載の方法であって、異なる階層レベルでの前記リソースは、テナント及びワークロードを含む、方法。
【請求項４】
請求項１に記載の方法であって、異なる階層レベルでの前記リソースは、ワークロード及びポリシーを含む、方法。
【請求項５】
請求項１に記載の方法であって、異なる階層レベルでの前記リソースは、ワークロード及びルールを含む、方法。
【請求項６】
請求項１に記載の方法であって、
前記リクエストを受信する前に複数のポリシーを受信することであって、
各ポリシーは、
前記ポリシーが適用される１つ以上のデータセンタ・リソースの集合を特定するターゲットと、
前記特定されたリソース集合への動作への制約を特定する表現と、を含む、ことと、
前記リソースに関連する動作のリクエストを処理している間に検査されるストレージに、前記受信されたポリシーを記憶することと、をさらに有する方法。
【請求項７】
請求項７に記載の方法であって、前記受信されたポリシーは、宣言形式で表現される、方法。
【請求項８】
請求項７に記載の方法であって、各ポリシーの前記ターゲットは、
前記特定されたリソース集合についてのリソース・タイプと、
前記データセンタの前記リソース階層内の前記特定されたリソース集合を識別するパス・プレフィックスと、を含む、方法。
【請求項９】
請求項７に記載の方法であって、受信されたポリシーの集合についての複数の表現は、
前記ポリシーのターゲットであるリソースの属性の値を制限する値制約と、
前記ターゲット・リソースのインスタンス数を制限するエンティティ・インスタンス数制約と、のうちの少なくとも１つを含む、方法。
【請求項１０】
請求項９に記載の方法であって、前記値制約は、インクルード演算子と、エクスクルード演算子と、イコール演算子とのうちの１つである演算子を含む、方法。
【請求項１１】
請求項７に記載の方法であって、受信されたポリシーの集合についての複数の表現は、
前記ポリシーのターゲットであるリソースの第１属性の値を制限する値制約と、
前記ターゲット・リソースの第２属性の値を制限する関連属性制約と、を含む、方法。
【請求項１２】
請求項１に記載の方法であって、前記第１リソースは、前記階層の特定のレベルにあり、比較することは、リクエストの属性の集合を、前記階層内の前記特定のレベル以上で規定されたリソースについて特定されたポリシーの属性集合と比較することを含む、方法。
【請求項１３】
請求項１に記載の方法であって、前記受信されたリクエストは、データ・メッセージを転送するための転送ルールを生成又は変更することのリクエスト、データ・メッセージへのサービス動作を実行するためのサービス・ルールを生成又は変更することのリクエスト、又は前記データセンタ内のマシン又はネットワーク要素をデプロイ又は変更することのリクエストである、方法。
【請求項１４】
請求項１に記載の方法であって、
前記方法は、ポリシー・フレームワークによって実施され、
各ポリシーは、前記ポリシーが適用されるリソースのタイプを識別するリソース・タイプを特定し、
前記ポリシーに前記リソース・タイプを含めることにより、前記フレームワークを再プログラミングすることなく前記ポリシー・フレームワークに新たなリソース・タイプを追加することが可能となる、方法。
【請求項１５】
請求項１に記載の方法であって、前記ポリシーを識別することは、
前記受信されたリクエストに適用可能であるすべてのポリシーを識別することと、
前記受信されたリクエストが、識別された各ポリシーにおいて特定されたすべてのポリシーを満たすかどうかを判定することと、を含み、
前記方法は、前記識別されたポリシーの何れかによって特定された前記ポリシーを前記リクエストが満たさない場合に、前記受信されたリクエストを拒否することをさらに有する、方法。
【請求項１６】
請求項１に記載の方法であって、前記第１リソースは、第２リソースの子であり、前記識別されたポリシーは、前記第２リソースについて特定される、方法。
【請求項１７】
データセンタ内のリソースへの動作を実行するためのリクエストを処理するためのプログラムを記憶する非一時的機械可読媒体であって、前記プログラムは、
データセンタ内のリソースに関する動作を実行することのリクエストを受信することと、
前記リクエストの属性の集合を、前記リソースについて特定された動作に制約を課すポリシーの集合の属性の集合と比較することによって、前記受信されたリクエストに適用可能なポリシーを識別することであって、複数のポリシーについての属性の複数の集合は、前記データセンタ内の異なる階層リソース・レベルでリソースについて表現される、ことと、
前記要求された動作が前記第１リソースについて特定された動作への制約に違反することを前記識別されたポリシーが特定した場合に、前記受信されたリクエストを拒否することと、
のための命令の集合を有する、非一時的機械可読媒体。
【請求項１８】
請求項１７に記載の非一時的機械可読媒体であって、前記プログラムは、
前記リクエストを受信する前に複数のポリシーを受信することであって、
各ポリシーは、
前記ポリシーが適用される１つ以上のデータセンタ・リソースの集合を特定するターゲットと、
前記特定されたリソース集合への動作への制約を特定する表現と、を含む、ことと、
前記リソースに関連する動作のリクエストを処理している間に検査されるストレージに、前記受信されたポリシーを記憶することと、のための命令の集合をさらに有する、非一時的機械可読媒体。
【請求項１９】
請求項１８に記載の非一時的機械可読媒体であって、前記受信されたポリシーは、宣言形式で表現される、非一時的機械可読媒体。
【請求項２０】
請求項１８に記載の非一時的機械可読媒体であって、各ポリシーの前記ターゲットは、
前記特定されたリソース集合についてのリソース・タイプと、
前記データセンタの前記リソース階層内の前記特定されたリソース集合を識別するパス・プレフィックスと、を含む、非一時的機械可読媒体。
【請求項２１】
請求項１８に記載の非一時的機械可読媒体であって、受信されたポリシーの集合についての複数の表現は、
前記ポリシーのターゲットであるリソースの属性の値を制限する値制約と、
前記ターゲット・リソースのインスタンス数を制限するエンティティ・インスタンス数制約と、のうちの少なくとも１つを含む、非一時的機械可読媒体。
【請求項２２】
請求項１８に記載の非一時的機械可読媒体であって、受信されたポリシーの集合についての複数の表現は、
前記ポリシーのターゲットであるリソースの第１属性の値を制限する値制約と、
前記ターゲット・リソースの第２属性の値を制限する関連属性制約と、を含む、非一時的機械可読媒体。
【請求項２３】
請求項１７に記載の非一時的機械可読媒体であって、前記第１リソースは、前記階層の特定のレベルにあり、比較することは、前記リクエストの属性の集合を、前記階層内の前記特定のレベル以上で規定されたリソースについて特定されたポリシーの属性集合と比較することを含む、非一時的機械可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
今日、ソフトウェア定義データセンタ（ＳＤＤＣ）は、プライベート及びパブリック・クラウドの重要な部分である。ＳＤＤＣを管理するために、ユーザに提供されるリソースに対して、幅広く様々なタイプの組織要件が行使されなければならない。これらは、各ＳＤＤＣに非常に固有のカスタマイズ／ポリシーを含む。これらの要件は、ロール・ベース・アクセス制御（ＲＢＡＣ）を超える。例えば、これらの要件は、（１）デフォルトのファイアウォール・ポリシーがホワイトリスト登録であること（明示的なファイアウォール・ルールで開かれていない限り、通信を許可しないこと）、（２）所与のワークロード／アプリに対して、選択されたタイプのトラフィックを許可しないこと、（３）所定の送信元ネットワーク・アドレスのみが所与のワークロードへトラフィックを送信できること、（４）指定されたルータ又はワークロードに対してユニバーサルｄｅｎｙ−ａｌｌ又はａｌｌｏｗ−ａｌｌルールを許可しないこと、のようなファイアウォール・ポリシーでありうる。インフラストラクチャ・サービスが、各テナントが自身のポリシーをもたらすまさにマルチテナントである場合に、これらのポリシーをサポートすることはさらなる課題を追加する。
【発明の概要】
【０００２】
本発明のいくつかの実施形態は、ソフトウェア定義データセンタ（ＳＤＤＣ）内のリソースへの動作を実行するためのリクエストを処理するための方法を提供する。リソースは、いくつかの実施形態においてソフトウェア定義（ＳＤ）リソースである。本方法は最初に、ＳＤＤＣ内の第１リソースに関する動作を実行することのリクエストを受信する。本方法は、リクエストの属性の集合を、リソースについて特定された動作に制約を課すポリシーの集合の属性の集合と比較することによって、第１リソースについて受信されたリクエストに合致する（すなわち、適用可能である）ポリシーを識別する。いくつかの実施形態で、いくつかのポリシーについての属性のいくつかの集合は、ＳＤＤＣの異なる階層リソース・レベルでリソースについて表現されうる。
【０００３】
本方法は、要求された動作が第１リソースについて特定された動作への制約に違反することを識別されたポリシーが特定した場合に、受信されたリクエストを拒否する。一方、いくつかの実施形態において、本方法は、要求された動作が第１リソースについて特定された動作への制約を満たすことを識別されたポリシーが特定した場合に、受信されたリクエストに関連する動作を実行する。他の実施形態で、本方法は、リクエストに合致する任意のポリシーの制約にリクエストが違反しない場合にのみ、この動作を実行する。いくつかの実施形態で、合致するポリシーは、第１リソースについて又はリソースのタイプについて明示的に特定されてもよく、又はＳＤＤＣの階層リソース・レベルにおける第１リソースの親リソースである第２リソースについてそれが規定されている場合に第１リソースについて間接的に特定されうる。
【０００４】
いくつかの実施形態で、ポリシーの集合内のポリシーは、宣言形式（declarative format）で規定される。また、いくつかの実施形態で、リソースの例は、転送要素（例えば、管理されたソフトウェア・スイッチ及びルータ、管理されたソフトウェア・スイッチ及びルータなどによって実施される論理スイッチ及びルータなど）、物理又は論理ネットワーク、物理又は論理ネットワーク・セグメント、物理又は論理ネットワーク・インタフェース、計算要素（例えば、仮想マシン、コンテナなど）、及びサービス・ミドルボックス・モジュール（例えば、ファイアウォール動作、ロード・バランシング動作、ネットワーク・アドレス変換動作、暗号化動作、侵入検知動作、侵入防御動作などのミドルボックス・サービス動作を実行するサービスＶＭ又はモジュール）を含む。
【０００５】
いくつかの実施形態における本方法は、リクエストを受信する前にいくつかのポリシーを受信し、これらのポリシーのそれぞれを、後で受信されたリクエストと合致するポリシーを識別するために使用するストレージに記憶する。一部の実施形態において受信されたポリシーは、ポリシーが適用される１つ以上のデータセンタ・リソースの集合を特定するターゲットを含む。また、これは、特定されたリソース集合への動作への制約を特定する表現（expression）を含む。いくつかの実施形態で、受信されたポリシーは、宣言形式で表現される。
【０００６】
いくつかの実施形態における各ポリシーのターゲットは、特定されたリソース集合についてのリソース・タイプと、データセンタのリソース階層内の特定されたリソース集合を識別するパス・プレフィックスとを含む。いくつかの実施形態で、受信したポリシーについての表現は、ポリシーのターゲット・リソース集合上で特定されうる動作への１つ以上の制約を特定する。制約の一例は、ポリシーのターゲットであるリソースの属性の値を制限する値制約である。いくつかの実施形態で、値制約は、インクルード演算子、エクスクルード演算子、又はイコール演算子のうちの１つである演算子を含む。制約の別の例は、ターゲット・リソースのインスタンス数を制限するエンティティ・インスタンス数制約である。さらに別の例は、値制約によって規定されたプライマリ属性を有するターゲット・リソースのセカンダリ属性の値を制限する関連属性制約である。
【０００７】
受信されたリクエストのターゲット動作である第１リソースがリソース階層内の特定のレベルにある場合に、いくつかの実施形態における本方法は、リクエストの属性の集合を、第１リソース又はリソース階層上の第１リソースの親リソースについて特定されたポリシーの属性集合と比較することによって、第１リソースに関連するポリシーを識別する。いくつかの実施形態におけるターゲット・リソースへの要求された動作の例は、データ・メッセージを転送するための転送ルールの作成又は変更と、データ・メッセージへのミドルボックス・サービス動作を実行するためのサービス・ルールの作成又は変更と、データセンタ内のマシン及び／又はネットワーク要素のデプロイ又はデプロイメントの変更とを含む。
【０００８】
前述の概要は、本発明のいくつかの実施形態の簡単な導入として役立つことを意図している。これは、本書に開示されるすべての発明主題の導入又は概略であることを意味するものではない。以下の詳細な説明及び詳細な説明において参照される図面は、概要において説明される実施形態及び他の実施形態をさらに説明する。したがって、本書によって説明されるすべての実施形態を理解するために、概要、詳細な説明、図面及び特許請求の範囲の完全な検討が必要である。さらに、特許請求の範囲に係る主題は、概要、詳細な説明及び図面における例示的な詳細によって限定されるべきではない。
【図面の簡単な説明】
【０００９】
本発明の新規な特徴は、添付の特許請求の範囲に記載されている。しかし、説明のために、本発明のいくつかの実施形態が以下の図面に記載される。
【００１０】
【図１】いくつかの実施形態のポリシー・フレームワークの例を示す。
【００１１】
【図２】受信されたポリシーの例を示す。
【００１２】
【図３】いくつかの実施形態におけるポリシーの異なる構成要素のオブジェクト図を提示する。
【００１３】
【図４】いくつかの実施形態において、図２のポリシーがポリシー入力プロセッサへどのように提供されるかを示す例を示す。
【００１４】
【図５】ポリシーの別の例を示す。
【００１５】
【図６】ＳＤＤＣ内のソフトウェア定義リソースに関するＡＰＩを処理するために、リクエスト・プロセッサ及びポリシー・フレームワークが実行するプロセスを示す。
【００１６】
【図７】本発明のいくつかの実施形態が実施されるコンピュータ・システムを概念的に示す。
【発明を実施するための形態】
【００１７】
本発明の以下の詳細な説明では、本発明の多数の詳細、実施例及び実施形態が記載され、説明される。しかし、本発明は記載された実施形態に限定されず、本発明は記載された特定の詳細及び例のいくつかをなしに実施されてもよいことが、当業者には明らかであり、明白であろう。
【００１８】
本発明のいくつかの実施形態は、ソフトウェア定義データセンタ（ＳＤＤＣ）内のリソースへの動作を実行するためのリクエストを検証するためのポリシー・フレームワークを提供する。リソースは、いくつかの実施形態においてソフトウェア定義（ＳＤ）リソースである。ポリシー・フレームワークは、ＳＤＤＣ内の第１リソースに関する動作を実行することのリクエストを受信した場合に、当該リクエストの属性の集合を、リソースについて特定された動作に制約を課すポリシーの集合の属性の集合と比較することによって、第１リソースについて受信されたリクエストに合致する（すなわち、適用可能である）１つ以上のポリシーを識別する。いくつかの実施形態で、いくつかのポリシーについての属性のいくつかの集合は、ＳＤＤＣの異なる階層リソース・レベルでリソースについて表現されうる。
【００１９】
ポリシー・フレームワークは、受信されたリクエストについて識別されたポリシーが、要求された動作が第１リソースについて特定された動作への制約に違反することを特定した場合に、受信されたリクエストを拒否する。一方、フレームワークは、リクエストが当該リクエストに合致する識別された如何なるポリシーの如何なる制約にも違反しない場合に、この動作を検証する。いくつかの実施形態で、合致するポリシーは、第１リソースについて又はリソースのタイプについて明示的に特定されてもよく、又はＳＤＤＣの階層リソース・レベルにおける第１リソースの親リソースである第２リソースについてそれが規定される場合に、第１リソースについて間接的に特定されてもよい。
【００２０】
いくつかの実施形態で、ポリシーの集合内のポリシーは、宣言形式で規定される。また、いくつかの実施形態で、リソースの例は、転送要素（例えば、管理されたソフトウェア・スイッチ及びルータ、管理されたソフトウェア・スイッチ及びルータによって実施される論理スイッチ及びルータなど）、物理又は論理ネットワーク、物理又は論理ネットワーク・セグメント、物理又は論理ネットワーク・インタフェース、計算要素（例えば、仮想マシン、コンテナなど）、及びサービス・ミドルボックス・モジュール（例えば、ファイアウォール動作、ロード・バランシング動作、ネットワーク・アドレス変換動作、暗号化動作、侵入検知動作、侵入防御動作などのようなミドルボックス・サービス動作を実行するサービスＶＭ又はモジュール）を含む。
【００２１】
受信されたリクエストのターゲット動作である第１リソースがリソース階層内の特定のレベルにある場合に、いくつかの実施形態におけるポリシー・フレームワークは、リクエストの属性の集合を、第１リソース又はリソース階層上の第１リソースの親リソースについて特定されたポリシーの属性集合と比較することによって、第１リソースに関連するポリシーを識別する。いくつかの実施形態におけるターゲット・リソースへの要求された動作の例は、データ・メッセージを転送するための転送ルールの作成又は変更と、データ・メッセージへのミドルボックス・サービス動作を実行するためのサービス・ルールの作成又は変更と、データセンタ内のマシン及び／又はネットワーク要素のデプロイ又はデプロイメントの変更とを含む。
【００２２】
図１は、いくつかの実施形態のポリシー・フレームワーク１００の例を示す。示されるように、このフレームワークは、ポリシー・ストレージ１０５と、ポリシー入力エンジン１１０と、ポリシー検査エンジン１１５とを含む。以下にさらに説明するように、このフレームワークは、ポリシー・ストレージ１０５にポリシーを記憶するためにポリシー入力プロセッサ１２０とやりとりし、いくつかのＳＤＤＣリソース１４０への動作を実行することのリクエストを検証するためにリクエスト・プロセッサ１２５とやりとりする。
【００２３】
フレームワークが検証する任意のリクエストについて、リクエスト・プロセッサ１２５は、リクエストに関連する動作を実行するために１つ以上のリソース・マネージャ１３０を使用する。以下でさらに説明するように、リソース・マネージャ１３０は、ＳＤＤＣリソースと直接やりとりすることによって、又はローカル及び／又はリモートのコントローラを介して間接的に、動作を実行する。いくつかの実施形態で、リクエスト・プロセッサ１２５、ポリシー・フレームワーク１００、入力プロセッサ１２０及びリソース・マネージャ１３０は、１つ以上のデータセンタ内の異なるマシン（例えば、ＶＭ、コンテナ、スタンドアロン・サーバなど）上で実行され、ネットワークを介して互いに通信する。
【００２４】
いくつかの実施形態で、ポリシー入力プロセッサ１２０は、ポリシー・フレームワークが属するＳＤＤＣ管理システムのＡＰＩゲートウェイを介して、又はＳＤＤＣ管理システムがＳＤＤＣ、ＳＤＤＣテナント及び／又はＳＤＤＣネットワークの管理者に提示するユーザ・インタフェースを介して受信される入力ポリシーＡＰＩコマンドを処理するＡＰＩプロセッサである。これらのＡＰＩコマンドを介して、ポリシー入力プロセッサ１２０は、いくつかのポリシーを受信し、これらのポリシーのそれぞれを、後に受信されたリクエストに合致するポリシーを識別するために使用するストレージに記憶する。
【００２５】
いくつかの実施形態で、受信されたポリシーは、宣言形式で表現される。図２は、受信されたポリシー２００の例を示す。以下でさらに説明するように、このポリシーは、宛先グループ内の宛先マシンへのアクセスをｈｔｔｐ及びｈｔｔｐｓアクセスに制限する。図２に示すように、ポリシーは、（１）ポリシーが適用される１つ以上のデータセンタ・リソースの集合を特定するターゲット２０５と、（２）ターゲット・リソース集合への動作への制約を特定する表現２１０を含む。これは、いくつかの実施形態におけるポリシーの異なる構成要素のオブジェクト図３００を提示する図３でさらに示される。図３に示す例で、ポリシーは、所与のテナント３０５に対して特定される。
【００２６】
いくつかの実施形態における各ポリシーのターゲットは、（１）ターゲット・リソース集合のタイプ２１２、（２）ターゲット・リソース集合の名前２１４、及び（３）データセンタのリソース階層内のターゲット・リソース集合を識別するパス・プレフィックス２１６を含む。示されるように、いくつかの実施形態におけるポリシー・パス２１６は、データセンタ内のリソース又はリソースの集合を一意に識別するためのＵＲＬ形式である。いくつかの実施形態で、ターゲット２０５のタイプ及びパス・プレフィックス属性は、ポリシーがＡＰＩリクエストに適用可能である（すなわち、関連付けられている）かどうか（すなわち、ポリシーがＡＰＩリクエストに関連する属性の集合に合致するかどうか）を判定するために使用される。
【００２７】
ポリシーのためのパス・プレフィックス２１６は、ＳＤＤＣのリソース階層内の１つ以上のリソースへの参照によって特定される。本願の図２及び他の図のいくつかに示されている例で、データセンタのリソース階層は、以下のリソース、すなわちテナント、ドメイン、通信マップ、及び通信エントリを含む。テナントは、マルチテナント・データセンタのテナントであるテナント・エンティティ（例えば、ビジネス・エンティティ）である。ドメインは、テナントのもとのワークロードである。通信マップは、ドメイン内のＶＭからの／への通信に適用可能な、ドメインのもとの通信ルールの集合である。一方、通信エントリは、通信マップのものの単一の通信ルール（例えば、ファイアウォール・ルール）である。
【００２８】
いくつかの実施形態で、ワークロードは、特定の目的のためにユーザによってデプロイされるアプリケーション又はシステムである。ワークロードの一例は、企業でアウトルック・アプリケーションを実行するためにデプロイされたすべてのＶＭを含む。別の例は、異なる層のアプリケーション間でウェブサーバ、アプリケーション・サーバ、データベース・サーバ、ゼロ個以上のミドルボックス・サービス・マシン（例えば、ロード・バランサ、ファイアウォール）を特定する３層のアプリケーション・テンプレートを使用してデプロイされたＶＭを含む。ワークロードの他の例は、シェアポイント・ワークロード、ウィンドウズ・サーバＶＭ、ウィンドウズＶＤＩサービスＶＭなどを含む。
【００２９】
いくつかの実施形態における通信マップの例は、（１）分散ファイアウォール（計算ノードＶＭ及び／又はコンテナを有するホスト・コンピュータ上に実装されたファイアウォール・マシン）、（２）エッジ・ファイアウォール機器又は物理又は論理ネットワークの北／南境界で動作するマシン、及び（３）ホスト・コンピュータ上で実行される計算ノードＶＭ及び／又はコンテナに対する他のミドルボックス・サービス動作を提供するためにホスト・コンピュータ上で実行される挿入されたサービス・モジュールを含む。いくつかの実施形態で、通信エントリの例は、以下の情報、すなわち識別子、名前、説明、送信元グループ、宛先グループ、サービス、アクション、及びスコープを含むタプルを含む。
【００３０】
いくつかの実施形態で、パス・プレフィックスは、パスに含まれるすべての分類上の親とともに、ルートから、識別されたリソース又はリソース集合への、リソース階層を通るパスを特定することによって、リソース又はリソース集合を識別できる。例えば、／ｖｍｗａｒｅとしてパスを特定することによって、テナントＶＭｗａｒｅに関連付けられているすべてのリソースについて第１ポリシーが特定されうる。パス／ｖｍｗａｒｅ／ｄｏｍａｉｎｓ／Ｏｕｔｌｏｏｋを使用することによって、テナントＶＭｗａｒｅのアウトルック・ワークロードについて第２ポリシーが特定されうる。パス／ｖｍｗａｒｅ／ｄｏｍａｉｎｓ／Ｏｕｔｌｏｏｋ／ｃｏｍｍｕｎｉｃａｔｉｏｎ−ｍａｐｓ／ｗｅｂ−ｐｒｏｆｉｌｅを特定することによって、テナントＶＭｗａｒｅのアウトルック・ワークロードのｗｅｂ−ｐｒｏｆｉｌｅについて第３ポリシーが特定されうる。／ｖｍｗａｒｅ／ｄｏｍａｉｎｓ／Ｏｕｔｌｏｏｋ／ｃｏｍｍｕｎｉｃａｔｉｏｎｍａｐｓ／ｗｅｂ−ｐｒｏｆｉｌｅ／ｃｏｍｍｕｎｉｃａｔｉｏｎ−ｅｎｔｒｉｅｓ／ｏｐｅｎ−ｂｒｏｗｓｅｒ−ａｃｃｅｓｓを使用することによって、テナントＶＭｗａｒｅのアウトルック・ワークロードのオープン・ブラウザ・アクセスについて第４ポリシーが特定されうる。一般的に、セキュリティ・ポリシーのパスの形式は、／＜ｔｅｎａｎｔ−ｎａｍｅ＞／ｄｏｍａｉｎｓ／＜ｗｏｒｋｌｏａｄ−ｎａｍｅ＞／ｃｏｍｍｕｎｉｃａｔｉｏｎ−ｍａｐｓ／＜ｓｅｃｕｒｉｔｙ−ｐｏｌｉｃｙｎａｍｅ＞／ｃｏｍｍｕｎｉｃａｔｉｏｎ−ｅｎｔｒｉｅｓ／＜ｒｕｌｅ−ｎａｍｅ＞として特定されうる。
【００３１】
上記の例で、第１ポリシーは、第２、第３、及び第４ポリシーが適用可能な任意のリソースに適用可能であり、第２ポリシーは、第３及び第４ポリシーが適用可能な任意のリソースに適用可能であり、第３ポリシーは、第４ポリシーが適用可能な任意のリソースに適用可能である。これは、第１ポリシーのパス・プレフィックスが第２、第３、及び第４ポリシーのパス・プレフィックスの部分集合であり、第２ポリシーのパス・プレフィックスが第３及び第４ポリシーのパス・プレフィックスの部分集合であり、第３ポリシーのパス・プレフィックスが第４ポリシーのパス・プレフィックスの部分集合であるためである。このアプローチのもとで、リソースに適用可能なポリシーは、リソース又はリソース階層上のリソースの親リソースについて特定されたポリシーである。動作が要求されるリソースに適用可能であるとポリシーが識別されると、以下にさらに記載されるように、ポリシーがこの動作を許可、制限、又は拒否する制約を特定しているかどうかを判定するためにポリシーの表現が分析されなければならない。
【００３２】
表１は、いくつかの実施形態についてパス・プレフィックスのいくつかの他の例を提供する。これらの実施形態は、ＳＤＤＣプロバイダによって運営されるルータを識別するためのプロバイダ、ネットワーク・インタフェースを識別するためのインタフェース、テナント・ネットワークを識別するためのネットワーク、テナント・ネットワーク・セグメントを識別するためのセグメント、及びデータセンタ内のロード・バランサ・マシン又は機器を識別するためのロード・バランサを含む、いくつかの追加のタイプのリソースを有する。
【表１】
2021526275.tif 000003
【００３３】
いくつかの実施形態は、以下にさらに説明されるように、制約を適用するためのオプションのパラメータの１つを特定するためにパス・プレフィックスを利用する。しかし、他の実施形態は、このアプローチを、いくつかのプレフィックスに合致する又はこれを識別するために正規表現を使用する別のアプローチに置き換えることができる。したがって、本発明のすべての実施形態が、特定されたポリシーで階層パスを使用することに限定されるわけではない。
【００３４】
いくつかの実施形態で、受信されたポリシーの表現２１０は、ポリシーのターゲット・リソース集合上で特定されうる動作への１つ以上の制約を特定する。制約の一例は、ポリシーのターゲットであるリソースの属性の値を制限する値制約である。いくつかの実施形態で、値制約は、インクルード演算子、エクスクルード演算子、又はイコール演算子のうちの１つである演算子を含む。制約の別の例は、ターゲット・リソースのインスタンス数を制限する（例えば、ＶＰＮ、ルータ、ゲートウェイ、ロード・バランサ、接続セッション、ファイアウォール・ルールなどの数を制限する）エンティティ・インスタンス数制約である。
【００３５】
さらに別の例は、値制約によって規定されたプライマリ属性を有するターゲット・リソースのセカンダリ属性の値を制限する関連属性制約である。例えば、関連属性制約は、「トラフィックの宛先がアカウンティング・ワークロードであるならば、許可されるサービスはＨＴＴＰＳ及びＳＳＨに制限される」というような制約を規定するために使用されうる。当業者は、他の実施形態が他のタイプの制約表現を含むことを理解するだろう。
【００３６】
図２に示されているポリシー２００は、宛先グループ内の宛先マシンへのアクセスをｈｔｔｐ及びｈｔｔｐｓアクセスに制限する。具体的に、このポリシーは、パス・プレフィックス２１６によって示されるように、ｔｅｎａｎｔＴのドメインのエッジ・ゲートウェイで適用される制約を特定する。この制約は、メッセージが宛先グループＶＣＥＮＴＥＲにアドレス指定された場合に、当該メッセージ（すなわち、アクセス）はそのメッセージのプロトコルがｈｔｔｐ又はｈｔｔｐｓであるとき（すなわち、当該アクセスがｈｔｔｐ又はｈｔｔｐｓプロトコルを使用するとき）にのみ許可されるべきであることを規定する。
【００３７】
図４は、いくつかの実施形態において、図２のポリシー２００がポリシー入力プロセッサにどのように提供されるかを示す例を説明する。示されるように、ポリシー２００は、ＣＵＲＬ命令で始まり、その後に「リクエストＰＡＴＣＨ＼」が続くＣＵＲＬパッチ・コマンド４００において提供される。次に、ポリシー名は、許可ヘッダと、データがＪＳＯＮ形式であることを特定するコンテンツ・タイプがその後に続くＵＲＬとして提供される。最後に、ポリシー２００は、ＣＵＲＬパッチ・コマンドのデータ構成要素として提供される。
【００３８】
図５は、ポリシーの別の例を示す。このポリシー５００は、特定された任意の通信ルールが、エッジ・ゲートウェイでのみ許可アクションを特定できることを特定する。このポリシーにより、管理者はエッジ・ゲートウェイでデータ・メッセージを拒否するルールを規定できなくなる。このポリシーは、接続を開くエッジ・ゲートウェイで管理者のみがファイアウォール・ルールを特定できるようにするホワイトリスト（明示的なファイアウォール・ルールで開かない限り、通信を許可しない）アプローチで、デフォルトのファイアウォール・ポリシーとして使用される。
【００３９】
図６は、ＳＤＤＣ内のＳＤリソースに関するＡＰＩを処理するためにリクエスト・プロセッサ１２５及びポリシー・フレームワーク１００が実行するプロセス６００を示す。いくつかの実施形態において、ＡＰＩは、ＳＤＤＣ内の１つ以上のＳＤリソースへの１つ以上の動作を特定する階層ＡＰＩである。このような階層ＡＰＩは、２０１８年１１月２７日に出願された米国特許出願第１６／２００，６７７号にさらに記載されており、この出願は参照によって本書に組み込まれる。
【００４０】
プロセス６００において、リクエスト・プロセッサ１２５は最初に、（６０５において、）受信された階層ＡＰＩを、ＳＤＤＣ内の１つ以上のＳＤリソースについての１つ以上のリクエストの集合に構文解析する。いくつかの実施形態において、受信されたＡＰＩは、異なるリソースについての異なるリクエストを含んでもよいだけでなく、１つのＳＤリソースについての複数のリクエストを含んでもよい。受信されたＡＰＩは、いくつかの実施形態において、１つのＳＤリソースについての複数の異なるリクエストを含むだけでもよい。各リクエストはいくつかの実施形態においてリソースに実行される１つの動作を特定するが、他の実施形態においてリクエストはリソースに実行される複数の動作を特定できる。
【００４１】
ＡＰＩを１つ以上のリクエストに構文解析した後、リクエスト・プロセッサ１２５は、各リクエストを検証するため（すなわち、各リクエストが、ＡＰＩで参照されるＳＤリソースに適用可能なすべてのポリシー内のすべての制約を満たすかどうかを特定するため）に、ポリシー検査エンジン１１５を呼び出す。したがって、６１０において、リクエスト・プロセッサ１２５は、受信されたＡＰＩから構文解析されたリクエストを選択する。その後、リクエスト・プロセッサ１２５は、（６１５において、）ポリシー検査エンジン１１５に、選択されたリクエストに適用可能な１つ以上のポリシーを識別するように指示する。各リクエストは、ＳＤＤＣのリソース階層内のリソースに関連付けられる。上述したように、いくつかの実施形態において、各リソースは、リソース階層内の他のいくつかの子リソースの親リソースでありうる。
【００４２】
６１５において、ポリシー検査エンジン１１５は、選択されたリクエストのリソースの属性の集合をポリシーのターゲットと比較して、ポリシーがリソースに適用可能かどうかを判定する。具体的に、選択されたリクエストのリソースに適用可能であるポリシーを識別するために、ポリシー検査エンジン１１５は、選択されたリクエストの１つ以上の属性（例えば、リクエストの関連リソースの識別子）を、ポリシー・ストレージ１０５に記憶された各ポリシーのターゲットにおいて特定された１つ以上の属性（例えば、パス・プレフィックス及びリソース・タイプ）と比較して、合致する属性集合を有する（すなわち、選択されたリクエストの属性集合と合致する属性集合を有する）ポリシーを識別する。例えば、アウトルック・ワークロードへのウェブ・アクセスを調整するＡＰＩリクエストについて、ポリシー検査エンジン１１５は、上記の第２、第３、及び第４ポリシー（アウトルック・ワークロードについて、このワークロードのウェブ・プロファイル、及びこのワークロードのブラウザ・アクセス）を、ＡＰＩリクエストに適用可能であるものとして識別する。いくつかの実施形態で、ポリシー・ストレージ１０５は、ポリシーが規定されるのと同じスキーマを使用して（例えば、図２、図４、及び図５を参照して上述したのと同じスキーマを使用して）ポリシーを記憶する。
【００４３】
１つの適用可能なポリシーを識別した後、ポリシー検査エンジンは、（６２０において、）識別されたポリシーの表現が、選択されたリクエストを拒否することを要求する制約を特定するかどうかを判定する。この判定を行うために、ポリシー検査エンジンは、選択されたリクエストの属性集合（例えば、リクエストがＳＤＤＣ内のマシン間のデータ・メッセージ・フローに関する転送動作又はサービス動作に関連する場合のデータ・メッセージ・フロー属性、リクエストがマシン又はネットワーク要素のデプロイに関連する場合のデプロイ属性など）を、適用可能なポリシーの表現の制約について特定される属性と比較して、選択されたリクエストがポリシーの制約に違反するかどうかを確定する。よって、ポリシー検査エンジン１１５は、選択されたリクエストのリソース属性集合をポリシーのターゲットと比較して、リソースへのポリシーの適用可能性を識別する一方で、リソースの属性集合を、適用可能なポリシーの表現と比較して、リクエストを許可するか拒否するかを判定する。
【００４４】
例えば、ＡＰＩリクエストがファイアウォール・ルールの作成を必要とする場合に、ポリシー検査エンジン１１５は、図５のポリシー５００を、適用可能なポリシーであると識別し、その後、ファイアウォール・ルールが許可動作を特定する又は拒否動作を特定すると判定する。要求されたファイアウォール・ルールが許可動作を特定した場合に、ポリシー検査エンジンは、ポリシー５００によって特定された制約をリクエストが満たすと判定するが、ファイアウォール・ルールが拒否を特定した場合に、ポリシー検査エンジンは、特定されたポリシーをリクエストが満たさないと判定し、リクエストを拒否する。
【００４５】
ポリシー検査エンジン１１５は、選択されたリクエストが、識別されたポリシーの制約に違反すると（６２０において）判定した場合に、ＡＰＩを拒否し、拒否されたという通知をＡＰＩのソースに戻すように（６２５において）ＡＰＩ処理エンジン１２５に命令する。ＡＰＩ処理エンジン１２５がＡＰＩを拒否した後、いくつかの実施形態で、プロセスは終了する。他の実施形態で、プロセス６００は、ＡＰＩが少なくとも１つのポリシーに違反すると判定した後に終了しない。これらの実施形態で、ＡＰＩ処理エンジン１２５は、拒否されたＡＰＩが違反したすべてのポリシーを識別するためのレポートをＡＰＩソースに提供できるように、受信されたＡＰＩ内の各リクエストを検証するようにポリシー検査エンジン１１５に指示する。
【００４６】
ポリシー検査エンジン１１５は、選択されたリクエストが、識別されたポリシーの制約に違反しないと（６２０で）判定した場合に、ポリシー・ストア１０５内の他のポリシーが、選択されたリクエストに適用可能であるかどうかを（６３０で）判定する。適用可能である場合に、このエンジン１１５は、（６３５において）このポリシーを選択し、６２０に戻って、このポリシーの表現が、リクエストが違反する制約を特定するかどうかを判定する。プロセスは、リクエストに適用可能であり、まだ処理されていないポリシーを見つけることができる限り、６２０〜６３５をループする。このループは、リクエストが違反する制約を有するポリシーをエンジン１２５が識別した場合、又はリクエストに適用可能なポリシーの分析をエンジンが終了した場合に終了する。
【００４７】
ポリシー検査エンジン１１５が、選択されたリクエストに適用可能なすべてのポリシーを検査したと（６３０で）判定した場合に、このエンジンは、選択されたリクエストが何れのポリシーにも違反しないことをＡＰＩ処理エンジン１２５に（６４０で）通知する。次に、６４２において、ＡＰＩ処理エンジン１２５は、受信されたＡＰＩが、ポリシー検査エンジン１１５によってまだ検証されていない他の構文解析済みリクエストを有するかどうかを判定する。有する場合に、ＡＰＩ処理エンジン１２５は次のリクエストを（６４５で）選択し、６１５に戻って、この新たに選択されたリクエストを検証する（すなわち、このリクエストが、リクエストに適用可能な何れかのポリシーの何れかの制約に違反するかどうかを検査する）ようにポリシー検査エンジン１１５に指示する。
【００４８】
受信されたＡＰＩが、ポリシー検査エンジン１１５によってまだ検証されていない他の構文解析済みリクエストを有しないとＡＰＩ処理エンジン１２５が（６４２において）判定した場合に、ＡＰＩ処理エンジンは（６５０において）１つ以上のデプロイ・エンジン（図示せず）を使用して、処理済み階層ＡＰＩのリクエストの処理に必要な構成変更を持続する（すなわち、ＡＰＩによって影響を受けた任意のリソースに関する以前に特定された構成データを特定又は変更する）。これらのデプロイ・エンジンは、構成データ・ストレージ（図示せず）内の以前に特定された構成データを特定又は変更する。
【００４９】
構成データが構成データ・ストレージに持続されると、ＡＰＩ処理エンジン１２５は、ＡＰＩリクエストが処理されたことを示す通知をＡＰＩのソースに戻す。次に、６６０で、ＡＰＩ処理エンジンは、受信されたＡＰＩ内のリクエストに関連する動作を実行するように１つ以上のリソース・マネージャ１３０に指示する。ＡＰＩプロセッサ１２５によって指示される代わりに、他の実施形態で、デプロイ・プラグインが、リソース・マネージャに、新規又は修正された構成データ集合を構成データ・ストレージからリソースへ配布するように指示する。
【００５０】
ＡＰＩプロセッサ又はデプロイ・プラグインからのこれらの通知に応答して、リソース・マネージャは、次いで、これらの実施形態において、受信されたＡＰＩ内のリクエストに関連する動作を実行する。上述したように、リソース・マネージャは、データセンタ・リソース（例えば、ホスト・コンピュータ）と直接やりとりすることによって、所望のリソース（例えば、ファイアウォール・サービス・マシン又はモジュール）を規定又は変更することによって、又はデータセンタ・リソースとやりとりして所望のリソースを規定又は変更するローカル及び／又はリモート・コントローラを通じて間接的に、その動作を実行できる。
【００５１】
６６０の後、プロセス６００は終了する。
【００５２】
上述の特徴及び用途の多くは、コンピュータ可読記憶媒体（コンピュータ可読媒体とも呼ばれる）に記録された命令の集合として特定されるソフトウェア・プロセスとして実施される。これらの命令が１つ以上の処理部（例えば、１つ以上のプロセッサ、プロセッサのコア、又は他の処理部）によって実行された場合に、それらは、命令に示されたアクションを処理部に実行させる。コンピュータ可読媒体の例は、ＣＤ−ＲＯＭ、フラッシュ・ドライブ、ＲＡＭチップ、ハード・ドライブ、ＥＰＲＯＭ等を含むが、これらに限定されない。コンピュータ可読媒体は、無線で又は有線接続を介して伝わる搬送波及び電気信号を含まない。
【００５３】
この明細書において、「ソフトウェア」という用語は、プロセッサによる処理のためにメモリに読み込まれうる、リードオンリ・メモリに存在するファームウェア又は磁気記憶装置に記憶されたアプリケーションを含むことを意味する。また、いくつかの実施形態で、複数のソフトウェア発明は、別個のソフトウェア発明を残しながら、より大きなプログラムのサブパーツとして実施されうる。いくつかの実施形態で、複数のソフトウェア発明は、別個のプログラムとしても実施されうる。最後に、本書に記載されるソフトウェア発明をまとめて実施する別個のプログラムの任意の組合せは本発明の範囲内である。いくつかの実施形態で、ソフトウェア・プログラムは、１つ以上の電子システム上で動作するようにインストールされた場合に、ソフトウェア・プログラムの動作を実行し実行する１つ以上の特定のマシン実装を規定する。
【００５４】
図７は、本発明のいくつかの実施形態が実施されるコンピュータ・システム７００を概念的に示す。コンピュータ・システム７００は、上述のホスト、コントローラ、及びマネージャのいずれを実施するためにも使用されうる。このように、これは、上述のプロセスのいずれを実行するためにも使用されうる。このコンピュータ・システムは、様々なタイプの一時的でない機械可読媒体と、様々な他のタイプの機械可読媒体のためのインタフェースとを含む。コンピュータ・システム７００は、バス７０５、処理部７１０、システム・メモリ７２５、リードオンリ・メモリ７３０、永久記憶デバイス７３５、入力デバイス７４０、及び出力デバイス７４５を含む。
【００５５】
バス７０５は、コンピュータ・システム７００の多数の内部デバイスを通信可能に接続するすべてのシステム・バス、周辺バス、及びチップセット・バスを集合的に表す。例えば、バス７０５は、処理部７１０を、リードオンリ・メモリ７３０、システム・メモリ７２５、及び永久記憶デバイス７３５と通信可能に接続する。
【００５６】
これらの様々なメモリ部から、処理部７１０は、本発明のプロセスを実行するために、実行すべき命令及び処理すべきデータを読み出す。処理部は、様々な実施形態において、単一プロセッサであってもよいし、マルチコア・プロセッサであってもよい。リードオンリ・メモリ（ＲＯＭ）７３０は、処理部７１０及びコンピュータ・システムの他のモジュールによって必要とされる静的データ及び命令を記憶する。一方、永久記憶デバイス７３５は、読み書き可能なメモリ・デバイスである。このデバイスは、コンピュータ・システム７００がオフの場合でも命令及びデータを格納する不揮発性メモリ部である。本発明のいくつかの実施形態は、永久記憶デバイス７３５として（磁気又は光ディスク及びその対応するディスク・ドライブのような）大容量記憶デバイスを使用する。
【００５７】
他の実施形態で、永久記憶デバイスとして（フロッピー（登録商標）ディスク、フラッシュ・ドライブなどのような）取り外し可能な記憶デバイスを使用する。永久記憶デバイス７３５と同様に、システム・メモリ７２５は、読み書き可能なメモリ・デバイスである。しかし、システム・メモリは、記憶デバイス７３５とは異なり、ランダム・アクセス・メモリのような揮発性の読み書き可能なメモリである。システム・メモリは、プロセッサが実行時に必要とする命令及びデータの一部を記憶する。いくつかの実施形態で、本発明のプロセスは、システム・メモリ７２５、永久記憶デバイス７３５、及び／又はリードオンリ・メモリ７３０に記憶される。処理部７１０は、これらの様々なメモリ部から、いくつかの実施形態のプロセスを実行するために、実行すべき命令及び処理すべきデータを読み出す。
【００５８】
バス７０５は、入力デバイス７４０及び出力デバイス７４５にも接続している。入力デバイスは、ユーザがコンピュータ・システムに情報を伝達しコマンドを選択することを可能にする。入力デバイス７４０は、英数字キーボード及びポインティング・デバイス（「カーソル制御デバイス」とも呼ばれる）を含む。出力デバイス７４５は、コンピュータ・システムによって生成された画像を表示する。出力デバイスは、プリンタと、陰極線管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）のような表示デバイスとを含む。いくつかの実施形態は、入力デバイス及び出力デバイスの両方として機能するタッチスクリーンのようなデバイスを含む。
【００５９】
最後に、図７に示されるように、バス７０５はまた、ネットワーク・アダプタ（図示せず）を介してコンピュータ・システム７００をネットワーク７６５に結合する。このようにして、コンピュータは、（ローカル・エリア・ネットワーク（「ＬＡＮ」）、ワイド・エリア・ネットワーク（「ＷＡＮ」）、又はイントラネットのような）コンピュータのネットワーク、又は（インターネットのような）ネットワークのネットワークの一部であってもよい。コンピュータ・システム７００の任意の又はすべての構成要素は、本発明と併せて使用されてもよい。
【００６０】
いくつかの実施形態は、機械可読又はコンピュータ可読媒体（代替的に、コンピュータ可読記憶媒体、機械可読媒体、又は機械可読記憶媒体と称される）にコンピュータ・プログラム命令を記憶するマイクロプロセッサのような電子部品を含む。このようなコンピュータ可読媒体のいくつかの例は、ＲＡＭ、ＲＯＭ、リードオンリ・コンパクト・ディスク（ＣＤ−ＲＯＭ）、記録可能コンパクト・ディスク（ＣＤ−Ｒ）、書き換え可能コンパクト・ディスク（ＣＤ−ＲＷ）、リードオンリ・ディジタル多目的ディスク（例えば、ＤＶＤ−ＲＯＭ、二層ＤＶＤ−ＲＯＭ）、様々な記録可能／書き換え可能ＤＶＤ（例えば、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ等）、フラッシュ・メモリ（例えば、ＳＤカード、ミニＳＤカード、マイクロＳＤカード等）、磁気及び／又はソリッド・ステート・ハード・ドライブ、リードオンリ及び記録可能ブルーレイ（登録商標）・ディスク、超密度光ディスク、任意の他の光又は磁気媒体、及びフロッピー・ディスクを含む。コンピュータ可読媒体は、少なくとも１つの処理部によって実行可能であり、様々な動作を実行するための命令の集合を含むコンピュータ・プログラムを記憶してもよい。コンピュータ・プログラム又はコンピュータ・コードの例は、コンパイラによって生成されるようなマシン・コードと、インタープリタを使用してコンピュータ、電子部品、又はマイクロプロセッサによって実行される上位レベルのコードを含むファイルを含む。
【００６１】
上記の議論は主に、ソフトウェアを実行するマイクロプロセッサ又はマルチコア・プロセッサに言及しているが、いくつかの実施形態は、特定用途向け集積回路（ＡＳＩＣ）又はフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）のような１つ以上の集積回路によって実行される。いくつかの実施形態で、このような集積回路は、回路自体に記憶された命令を実行する。
【００６２】
本明細書で使用されるように、「コンピュータ」、「サーバ」、「プロセッサ」、及び「メモリ」という用語はすべて、電子デバイス又は他の技術的デバイスを指す。これらの用語は、人々又は人々のグループを除外する。本明細書の目的のために、「表示する」又は「表示している」という用語は、電子デバイス上に表示することを意味する。本明細書で使用されるように、「コンピュータ可読媒体」、「コンピュータ可読媒体群」、及び「機械可読媒体」という用語は、コンピュータによって読み取り可能な形式で情報を記憶する有形の物理オブジェクトに完全に限定される。これらの用語は、任意の無線信号、有線ダウンロード信号、及び任意の他のつかの間の又は一時的な信号を除外する。
【００６３】
本発明が多数の特定の詳細を参照して説明されてきたが、当業者であれば、本発明の精神から逸脱することなく、他の特定の形態で本発明を実施できることを理解するだろう。したがって、当業者は、本発明が前述の例示的な詳細によって限定されるべきではなく、むしろ添付の特許請求の範囲によって規定されるべきであることを理解するだろう。
【図１】
2021526275.tif 000004
【図２】
2021526275.tif 000005
【図３】
2021526275.tif 000006
【図４】
2021526275.tif 000007
【図５】
2021526275.tif 000008
【図６】
2021526275.tif 000009
【図７】
2021526275.tif 000010
【手続補正書】
【提出日】令和3年1月22日(2021.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データセンタ内のリソースへの動作を実行するためのリクエストを処理する方法であって、前記方法は、
データセンタ内のリソースに関する動作を実行することのリクエストを受信することと、
前記リクエストの属性の集合を、前記リソースについて特定された動作に制約を課すポリシーの集合の属性の集合と比較することによって、前記受信されたリクエストに適用可能なポリシーを識別することであって、複数のポリシーについての属性の複数の集合は、前記データセンタ内の異なる階層リソース・レベルでリソースについて表現される、ことと、
前記要求された動作が第１リソースについて特定された動作への制約に違反することを前記識別されたポリシーが特定した場合に、前記受信されたリクエストを拒否することと、
を有する、方法。
【請求項２】
請求項１に記載の方法であって、前記ポリシーの集合内の前記ポリシーは、宣言形式で規定される、方法。
【請求項３】
請求項１に記載の方法であって、異なる階層レベルでの前記リソースは、テナント及びワークロードを含む、方法。
【請求項４】
請求項１に記載の方法であって、異なる階層レベルでの前記リソースは、ワークロード及びポリシーを含む、方法。
【請求項５】
請求項１に記載の方法であって、異なる階層レベルでの前記リソースは、ワークロード及びルールを含む、方法。
【請求項６】
請求項１に記載の方法であって、
前記リクエストを受信する前に複数のポリシーを受信することであって、
各ポリシーは、
前記ポリシーが適用される１つ以上のデータセンタ・リソースの集合を特定するターゲットと、
前記特定されたリソース集合への動作への制約を特定する表現と、を含む、ことと、
前記リソースに関連する動作のリクエストを処理している間に検査されるストレージに、前記受信されたポリシーを記憶することと、をさらに有する方法。
【請求項７】
請求項６に記載の方法であって、前記受信されたポリシーは、宣言形式で表現される、方法。
【請求項８】
請求項７に記載の方法であって、各ポリシーの前記ターゲットは、
前記特定されたリソース集合についてのリソース・タイプと、
前記データセンタの前記リソース階層内の前記特定されたリソース集合を識別するパス・プレフィックスと、を含む、方法。
【請求項９】
請求項７に記載の方法であって、受信されたポリシーの集合についての複数の表現は、
前記ポリシーのターゲットであるリソースの属性の値を制限する値制約と、
前記ターゲット・リソースのインスタンス数を制限するエンティティ・インスタンス数制約と、のうちの少なくとも１つを含む、方法。
【請求項１０】
請求項９に記載の方法であって、前記値制約は、インクルード演算子と、エクスクルード演算子と、イコール演算子とのうちの１つである演算子を含む、方法。
【請求項１１】
請求項７に記載の方法であって、受信されたポリシーの集合についての複数の表現は、
前記ポリシーのターゲットであるリソースの第１属性の値を制限する値制約と、
前記ターゲット・リソースの第２属性の値を制限する関連属性制約と、を含む、方法。
【請求項１２】
請求項１に記載の方法であって、前記第１リソースは、前記階層の特定のレベルにあり、比較することは、リクエストの属性の集合を、前記階層内の前記特定のレベル以上で規定されたリソースについて特定されたポリシーの属性集合と比較することを含む、方法。
【請求項１３】
請求項１に記載の方法であって、前記受信されたリクエストは、データ・メッセージを転送するための転送ルールを生成又は変更することのリクエスト、データ・メッセージへのサービス動作を実行するためのサービス・ルールを生成又は変更することのリクエスト、又は前記データセンタ内のマシン又はネットワーク要素をデプロイ又は変更することのリクエストである、方法。
【請求項１４】
請求項１に記載の方法であって、
前記方法は、ポリシー・フレームワークによって実施され、
各ポリシーは、前記ポリシーが適用されるリソースのタイプを識別するリソース・タイプを特定し、
前記ポリシーに前記リソース・タイプを含めることにより、前記フレームワークを再プログラミングすることなく前記ポリシー・フレームワークに新たなリソース・タイプを追加することが可能となる、方法。
【請求項１５】
請求項１に記載の方法であって、前記ポリシーを識別することは、
前記受信されたリクエストに適用可能であるすべてのポリシーを識別することと、
前記受信されたリクエストが、識別された各ポリシーにおいて特定されたすべてのポリシーを満たすかどうかを判定することと、を含み、
前記方法は、前記識別されたポリシーの何れかによって特定された前記ポリシーを前記リクエストが満たさない場合に、前記受信されたリクエストを拒否することをさらに有する、方法。
【請求項１６】
請求項１に記載の方法であって、前記第１リソースは、第２リソースの子であり、前記識別されたポリシーは、前記第２リソースについて特定される、方法。
【請求項１７】
データセンタ内のリソースへの動作を実行するためのリクエストを処理するためのプログラムであって、前記プログラムは、
データセンタ内のリソースに関する動作を実行することのリクエストを受信することと、
前記リクエストの属性の集合を、前記リソースについて特定された動作に制約を課すポリシーの集合の属性の集合と比較することによって、前記受信されたリクエストに適用可能なポリシーを識別することであって、複数のポリシーについての属性の複数の集合は、前記データセンタ内の異なる階層リソース・レベルでリソースについて表現される、ことと、
前記要求された動作が第１リソースについて特定された動作への制約に違反することを前記識別されたポリシーが特定した場合に、前記受信されたリクエストを拒否することと、
のための命令の集合を有する、プログラム。
【請求項１８】
請求項１７に記載のプログラムであって、前記プログラムは、
前記リクエストを受信する前に複数のポリシーを受信することであって、
各ポリシーは、
前記ポリシーが適用される１つ以上のデータセンタ・リソースの集合を特定するターゲットと、
前記特定されたリソース集合への動作への制約を特定する表現と、を含む、ことと、
前記リソースに関連する動作のリクエストを処理している間に検査されるストレージに、前記受信されたポリシーを記憶することと、のための命令の集合をさらに有する、プログラム。
【請求項１９】
請求項１８に記載のプログラムであって、前記受信されたポリシーは、宣言形式で表現される、プログラム。
【請求項２０】
請求項１８に記載のプログラムであって、各ポリシーの前記ターゲットは、
前記特定されたリソース集合についてのリソース・タイプと、
前記データセンタの前記リソース階層内の前記特定されたリソース集合を識別するパス・プレフィックスと、を含む、プログラム。
【請求項２１】
請求項１８に記載のプログラムであって、受信されたポリシーの集合についての複数の表現は、
前記ポリシーのターゲットであるリソースの属性の値を制限する値制約と、
前記ターゲット・リソースのインスタンス数を制限するエンティティ・インスタンス数制約と、のうちの少なくとも１つを含む、プログラム。
【請求項２２】
請求項１８に記載のプログラムであって、受信されたポリシーの集合についての複数の表現は、
前記ポリシーのターゲットであるリソースの第１属性の値を制限する値制約と、
前記ターゲット・リソースの第２属性の値を制限する関連属性制約と、を含む、プログラム。
【請求項２３】
請求項１７に記載のプログラムであって、前記第１リソースは、前記階層の特定のレベルにあり、比較することは、前記リクエストの属性の集合を、前記階層内の前記特定のレベル以上で規定されたリソースについて特定されたポリシーの属性集合と比較することを含む、プログラム。
【請求項２４】
請求項１乃至１６の何れか１項に記載の方法を実施するための手段を備えることを特徴とするコンピュータ・システム。
【国際調査報告】
2021526275.tif 000011
2021526275.tif 000012
2021526275.tif 000013