IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヴィーエムウェア, インコーポレイテッドの特許一覧

特許7439200SDDCのためのポリシー制約フレームワーク
<>
  • 特許-SDDCのためのポリシー制約フレームワーク 図1
  • 特許-SDDCのためのポリシー制約フレームワーク 図2
  • 特許-SDDCのためのポリシー制約フレームワーク 図3
  • 特許-SDDCのためのポリシー制約フレームワーク 図4
  • 特許-SDDCのためのポリシー制約フレームワーク 図5
  • 特許-SDDCのためのポリシー制約フレームワーク 図6
  • 特許-SDDCのためのポリシー制約フレームワーク 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-16
(45)【発行日】2024-02-27
(54)【発明の名称】SDDCのためのポリシー制約フレームワーク
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240219BHJP
   G06F 9/54 20060101ALI20240219BHJP
【FI】
G06F9/50 150Z
G06F9/54 Z
【請求項の数】 16
【外国語出願】
(21)【出願番号】P 2022144629
(22)【出願日】2022-09-12
(62)【分割の表示】P 2020569078の分割
【原出願日】2019-06-09
(65)【公開番号】P2022184934
(43)【公開日】2022-12-13
【審査請求日】2022-10-11
(31)【優先権主張番号】16/200,678
(32)【優先日】2018-11-27
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】201841022440
(32)【優先日】2018-06-15
(33)【優先権主張国・地域又は機関】IN
(73)【特許権者】
【識別番号】514097912
【氏名又は名称】ヴィーエムウェア エルエルシー
【氏名又は名称原語表記】VMware LLC
【住所又は居所原語表記】3401 Hillview Ave., Palo Alto, CA 94303, U.S.A
(74)【代理人】
【識別番号】100087642
【弁理士】
【氏名又は名称】古谷 聡
(74)【代理人】
【識別番号】100082946
【弁理士】
【氏名又は名称】大西 昭広
(74)【代理人】
【識別番号】100195693
【弁理士】
【氏名又は名称】細井 玲
(74)【代理人】
【識別番号】100203242
【弁理士】
【氏名又は名称】河戸 春樹
(74)【代理人】
【識別番号】100212657
【弁理士】
【氏名又は名称】塚原 一久
(72)【発明者】
【氏名】パラバリ, アマーナス
(72)【発明者】
【氏名】バイジャ, サチン, モハン
(72)【発明者】
【氏名】マーガリアン, パブラッシュ
【審査官】田中 幸雄
(56)【参考文献】
【文献】米国特許出願公開第2018/0063194(US,A1)
【文献】特表2014-535213(JP,A)
【文献】特開2015-115043(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 9/54
(57)【特許請求の範囲】
【請求項1】
データセンタ内のリソースへの動作を実行するためのリクエストを処理するためにコンピュータによって実行される方法であって、前記方法は、
前記データセンタ内の複数のリソースへの複数の動作を実行するための複数のリクエストを含むAPIを受信することと、
前記受信されたAPIを、前記データセンタ内の少なくとも1つのリソースに関して実行する少なくとも1つの動作を各リクエストが特定する前記複数のリクエストに構文解析することと、
構文解析された各リクエストについて、
前記リクエストの属性の集合を、前記複数のリソースについて特定された前記複数の動作に制約を課すポリシーの集合の属性の集合と比較することによって、前記リクエストに適用可能な少なくとも1つのポリシーを識別することと、
前記リクエストが、前記リクエストについて識別された前記ポリシーに違反するかどうかを判定することと、
少なくとも1つの特定のリクエストが前記特定のリクエストについて識別された特定のポリシーに違反すると判定した後に、前記受信されたAPIを許可されないAPIとして拒否することと、
を有する、方法。
【請求項2】
請求項1に記載の方法であって、前記ポリシーの集合内の前記ポリシーは、宣言形式で規定される、方法。
【請求項3】
請求項1に記載の方法であって、前記受信されたAPIは、前記データセンタの異なる階層リソース・レベルでのリソースを識別する階層APIであり、前記ポリシーの集合は、前記データセンタの異なる階層リソース・レベルでのリソースについて特定された動作に制約を課すポリシーを含む、方法。
【請求項4】
請求項3に記載の方法であって、異なる階層レベルでの前記リソースは、ワークロード及びサービス・ルールを含む、方法。
【請求項5】
請求項3に記載の方法であって、前記特定のリクエストは、前記特定のリクエストに関連する特定のリソースについて前記特定のポリシーが特定する制約に前記特定のリクエストが違反する場合に、前記特定のポリシーに違反すると判定される、方法。
【請求項6】
請求項5に記載の方法であって、
前記階層APIを構文解析する前に複数のポリシーを受信することであって、
各ポリシーは、
前記ポリシーが適用される1つ以上のデータセンタ・リソースの集合を特定するターゲットと、
前記特定された1つ以上のデータセンタ・リソースの集合への動作への制約を特定する表現と、を含む、ことと、
前記リソースに関連する動作のリクエストを処理している間に検査されるストレージに、前記受信されたポリシーを記憶することと、をさらに有する方法。
【請求項7】
請求項6に記載の方法であって、前記受信されたポリシーは、宣言形式で表現される、方法。
【請求項8】
請求項7に記載の方法であって、各ポリシーの前記ターゲットは、
前記特定された1つ以上のデータセンタ・リソースの集合についてのリソース・タイプと、
前記データセンタのリソース階層内の前記特定された1つ以上のデータセンタ・リソースの集合を識別するパス・プレフィックスと、を含む、方法。
【請求項9】
請求項7に記載の方法であって、受信されたポリシーの集合についての複数の表現は、
前記ポリシーのターゲット・リソースの属性の値を制限する値制約と、
前記ターゲット・リソースのインスタンス数を制限するエンティティ・インスタンス数制約と、のうちの少なくとも1つを含む、方法。
【請求項10】
請求項9に記載の方法であって、前記値制約は、インクルード演算子と、エクスクルード演算子と、イコール演算子とのうちの1つである演算子を含む、方法。
【請求項11】
請求項7に記載の方法であって、受信されたポリシーの集合についての複数の表現は、
前記ポリシーのターゲット・リソースの第1属性の値を制限する値制約と、
前記ターゲット・リソースの第2属性の値を制限する関連属性制約と、を含む、方法。
【請求項12】
請求項3に記載の方法であって、前記特定のリクエストによって特定された特定のリソースは、特定の階層リソース・レベルにあり、比較することは、前記特定のリクエストの属性の集合を、前記特定の階層リソース・レベル以上で規定されたリソースについて特定されたポリシーの属性集合と比較することを含む、方法。
【請求項13】
請求項12に記載の方法であって、前記特定のリソースは、別のリソースの子リソースであり、前記特定のリソースについての前記ポリシーは、前記別のリソースについて特定される、方法。
【請求項14】
請求項1に記載の方法であって、前記複数のリクエストにおける各リクエストは、データ・メッセージを転送するための転送ルールを生成又は変更することのリクエスト、データ・メッセージへのサービス動作を実行するためのサービス・ルールを生成又は変更することのリクエスト、又は前記データセンタ内のマシン又はネットワーク要素をデプロイ又は変更することのリクエストである、方法。
【請求項15】
少なくとも1つの処理ユニットによって実行された場合に、請求項1乃至14の何れか1項に記載の方法を実施するコンピュータ・プログラム。
【請求項16】
請求項1乃至14の何れか1項に記載の方法を実施するための手段を備えるコンピュータ・システム。
【発明の詳細な説明】
【背景技術】
【0001】
今日、ソフトウェア定義データセンタ(SDDC)は、プライベート及びパブリック・クラウドの重要な部分である。SDDCを管理するために、ユーザに提供されるリソースに対して、幅広く様々なタイプの組織要件が行使されなければならない。これらは、各SDDCに非常に固有のカスタマイズ/ポリシーを含む。これらの要件は、ロール・ベース・アクセス制御(RBAC)を超える。例えば、これらの要件は、(1)デフォルトのファイアウォール・ポリシーがホワイトリスト登録であること(明示的なファイアウォール・ルールで開かれていない限り、通信を許可しないこと)、(2)所与のワークロード/アプリに対して、選択されたタイプのトラフィックを許可しないこと、(3)所定の送信元ネットワーク・アドレスのみが所与のワークロードへトラフィックを送信できること、(4)指定されたルータ又はワークロードに対してユニバーサルdeny-all又はallow-allルールを許可しないこと、のようなファイアウォール・ポリシーでありうる。インフラストラクチャ・サービスが、各テナントが自身のポリシーをもたらすまさにマルチテナントである場合に、これらのポリシーをサポートすることはさらなる課題を追加する。
【発明の概要】
【0002】
本発明のいくつかの実施形態は、ソフトウェア定義データセンタ(SDDC)内のリソースへの動作を実行するためのリクエストを処理するための方法を提供する。リソースは、いくつかの実施形態においてソフトウェア定義(SD)リソースである。本方法は最初に、SDDC内の第1リソースに関する動作を実行することのリクエストを受信する。本方法は、リクエストの属性の集合を、リソースについて特定された動作に制約を課すポリシーの集合の属性の集合と比較することによって、第1リソースについて受信されたリクエストに合致する(すなわち、適用可能である)ポリシーを識別する。いくつかの実施形態で、いくつかのポリシーについての属性のいくつかの集合は、SDDCの異なる階層リソース・レベルでリソースについて表現されうる。
【0003】
本方法は、要求された動作が第1リソースについて特定された動作への制約に違反することを識別されたポリシーが特定した場合に、受信されたリクエストを拒否する。一方、いくつかの実施形態において、本方法は、要求された動作が第1リソースについて特定された動作への制約を満たすことを識別されたポリシーが特定した場合に、受信されたリクエストに関連する動作を実行する。他の実施形態で、本方法は、リクエストに合致する任意のポリシーの制約にリクエストが違反しない場合にのみ、この動作を実行する。いくつかの実施形態で、合致するポリシーは、第1リソースについて又はリソースのタイプについて明示的に特定されてもよく、又はSDDCの階層リソース・レベルにおける第1リソースの親リソースである第2リソースについてそれが規定されている場合に第1リソースについて間接的に特定されうる。
【0004】
いくつかの実施形態で、ポリシーの集合内のポリシーは、宣言形式(declarative format)で規定される。また、いくつかの実施形態で、リソースの例は、転送要素(例えば、管理されたソフトウェア・スイッチ及びルータ、管理されたソフトウェア・スイッチ及びルータなどによって実施される論理スイッチ及びルータなど)、物理又は論理ネットワーク、物理又は論理ネットワーク・セグメント、物理又は論理ネットワーク・インタフェース、計算要素(例えば、仮想マシン、コンテナなど)、及びサービス・ミドルボックス・モジュール(例えば、ファイアウォール動作、ロード・バランシング動作、ネットワーク・アドレス変換動作、暗号化動作、侵入検知動作、侵入防御動作などのミドルボックス・サービス動作を実行するサービスVM又はモジュール)を含む。
【0005】
いくつかの実施形態における本方法は、リクエストを受信する前にいくつかのポリシーを受信し、これらのポリシーのそれぞれを、後で受信されたリクエストと合致するポリシーを識別するために使用するストレージに記憶する。一部の実施形態において受信されたポリシーは、ポリシーが適用される1つ以上のデータセンタ・リソースの集合を特定するターゲットを含む。また、これは、特定されたリソース集合への動作への制約を特定する表現(expression)を含む。いくつかの実施形態で、受信されたポリシーは、宣言形式で表現される。
【0006】
いくつかの実施形態における各ポリシーのターゲットは、特定されたリソース集合についてのリソース・タイプと、データセンタのリソース階層内の特定されたリソース集合を識別するパス・プレフィックスとを含む。いくつかの実施形態で、受信したポリシーについての表現は、ポリシーのターゲット・リソース集合上で特定されうる動作への1つ以上の制約を特定する。制約の一例は、ポリシーのターゲットであるリソースの属性の値を制限する値制約である。いくつかの実施形態で、値制約は、インクルード演算子、エクスクルード演算子、又はイコール演算子のうちの1つである演算子を含む。制約の別の例は、ターゲット・リソースのインスタンス数を制限するエンティティ・インスタンス数制約である。さらに別の例は、値制約によって規定されたプライマリ属性を有するターゲット・リソースのセカンダリ属性の値を制限する関連属性制約である。
【0007】
受信されたリクエストのターゲット動作である第1リソースがリソース階層内の特定のレベルにある場合に、いくつかの実施形態における本方法は、リクエストの属性の集合を、第1リソース又はリソース階層上の第1リソースの親リソースについて特定されたポリシーの属性集合と比較することによって、第1リソースに関連するポリシーを識別する。いくつかの実施形態におけるターゲット・リソースへの要求された動作の例は、データ・メッセージを転送するための転送ルールの作成又は変更と、データ・メッセージへのミドルボックス・サービス動作を実行するためのサービス・ルールの作成又は変更と、データセンタ内のマシン及び/又はネットワーク要素のデプロイ又はデプロイメントの変更とを含む。
【0008】
前述の概要は、本発明のいくつかの実施形態の簡単な導入として役立つことを意図している。これは、本書に開示されるすべての発明主題の導入又は概略であることを意味するものではない。以下の詳細な説明及び詳細な説明において参照される図面は、概要において説明される実施形態及び他の実施形態をさらに説明する。したがって、本書によって説明されるすべての実施形態を理解するために、概要、詳細な説明、図面及び特許請求の範囲の完全な検討が必要である。さらに、特許請求の範囲に係る主題は、概要、詳細な説明及び図面における例示的な詳細によって限定されるべきではない。
【図面の簡単な説明】
【0009】
本発明の新規な特徴は、添付の特許請求の範囲に記載されている。しかし、説明のために、本発明のいくつかの実施形態が以下の図面に記載される。
【0010】
図1】いくつかの実施形態のポリシー・フレームワークの例を示す。
【0011】
図2】受信されたポリシーの例を示す。
【0012】
図3】いくつかの実施形態におけるポリシーの異なる構成要素のオブジェクト図を提示する。
【0013】
図4】いくつかの実施形態において、図2のポリシーがポリシー入力プロセッサへどのように提供されるかを示す例を示す。
【0014】
図5】ポリシーの別の例を示す。
【0015】
図6】SDDC内のソフトウェア定義リソースに関するAPIを処理するために、リクエスト・プロセッサ及びポリシー・フレームワークが実行するプロセスを示す。
【0016】
図7】本発明のいくつかの実施形態が実施されるコンピュータ・システムを概念的に示す。
【発明を実施するための形態】
【0017】
本発明の以下の詳細な説明では、本発明の多数の詳細、実施例及び実施形態が記載され、説明される。しかし、本発明は記載された実施形態に限定されず、本発明は記載された特定の詳細及び例のいくつかをなしに実施されてもよいことが、当業者には明らかであり、明白であろう。
【0018】
本発明のいくつかの実施形態は、ソフトウェア定義データセンタ(SDDC)内のリソースへの動作を実行するためのリクエストを検証するためのポリシー・フレームワークを提供する。リソースは、いくつかの実施形態においてソフトウェア定義(SD)リソースである。ポリシー・フレームワークは、SDDC内の第1リソースに関する動作を実行することのリクエストを受信した場合に、当該リクエストの属性の集合を、リソースについて特定された動作に制約を課すポリシーの集合の属性の集合と比較することによって、第1リソースについて受信されたリクエストに合致する(すなわち、適用可能である)1つ以上のポリシーを識別する。いくつかの実施形態で、いくつかのポリシーについての属性のいくつかの集合は、SDDCの異なる階層リソース・レベルでリソースについて表現されうる。
【0019】
ポリシー・フレームワークは、受信されたリクエストについて識別されたポリシーが、要求された動作が第1リソースについて特定された動作への制約に違反することを特定した場合に、受信されたリクエストを拒否する。一方、フレームワークは、リクエストが当該リクエストに合致する識別された如何なるポリシーの如何なる制約にも違反しない場合に、この動作を検証する。いくつかの実施形態で、合致するポリシーは、第1リソースについて又はリソースのタイプについて明示的に特定されてもよく、又はSDDCの階層リソース・レベルにおける第1リソースの親リソースである第2リソースについてそれが規定される場合に、第1リソースについて間接的に特定されてもよい。
【0020】
いくつかの実施形態で、ポリシーの集合内のポリシーは、宣言形式で規定される。また、いくつかの実施形態で、リソースの例は、転送要素(例えば、管理されたソフトウェア・スイッチ及びルータ、管理されたソフトウェア・スイッチ及びルータによって実施される論理スイッチ及びルータなど)、物理又は論理ネットワーク、物理又は論理ネットワーク・セグメント、物理又は論理ネットワーク・インタフェース、計算要素(例えば、仮想マシン、コンテナなど)、及びサービス・ミドルボックス・モジュール(例えば、ファイアウォール動作、ロード・バランシング動作、ネットワーク・アドレス変換動作、暗号化動作、侵入検知動作、侵入防御動作などのようなミドルボックス・サービス動作を実行するサービスVM又はモジュール)を含む。
【0021】
受信されたリクエストのターゲット動作である第1リソースがリソース階層内の特定のレベルにある場合に、いくつかの実施形態におけるポリシー・フレームワークは、リクエストの属性の集合を、第1リソース又はリソース階層上の第1リソースの親リソースについて特定されたポリシーの属性集合と比較することによって、第1リソースに関連するポリシーを識別する。いくつかの実施形態におけるターゲット・リソースへの要求された動作の例は、データ・メッセージを転送するための転送ルールの作成又は変更と、データ・メッセージへのミドルボックス・サービス動作を実行するためのサービス・ルールの作成又は変更と、データセンタ内のマシン及び/又はネットワーク要素のデプロイ又はデプロイメントの変更とを含む。
【0022】
図1は、いくつかの実施形態のポリシー・フレームワーク100の例を示す。示されるように、このフレームワークは、ポリシー・ストレージ105と、ポリシー入力エンジン110と、ポリシー検査エンジン115とを含む。以下にさらに説明するように、このフレームワークは、ポリシー・ストレージ105にポリシーを記憶するためにポリシー入力プロセッサ120とやりとりし、いくつかのSDDCリソース140への動作を実行することのリクエストを検証するためにリクエスト・プロセッサ125とやりとりする。
【0023】
フレームワークが検証する任意のリクエストについて、リクエスト・プロセッサ125は、リクエストに関連する動作を実行するために1つ以上のリソース・マネージャ130を使用する。以下でさらに説明するように、リソース・マネージャ130は、SDDCリソースと直接やりとりすることによって、又はローカル及び/又はリモートのコントローラを介して間接的に、動作を実行する。いくつかの実施形態で、リクエスト・プロセッサ125、ポリシー・フレームワーク100、入力プロセッサ120及びリソース・マネージャ130は、1つ以上のデータセンタ内の異なるマシン(例えば、VM、コンテナ、スタンドアロン・サーバなど)上で実行され、ネットワークを介して互いに通信する。
【0024】
いくつかの実施形態で、ポリシー入力プロセッサ120は、ポリシー・フレームワークが属するSDDC管理システムのAPIゲートウェイを介して、又はSDDC管理システムがSDDC、SDDCテナント及び/又はSDDCネットワークの管理者に提示するユーザ・インタフェースを介して受信される入力ポリシーAPIコマンドを処理するAPIプロセッサである。これらのAPIコマンドを介して、ポリシー入力プロセッサ120は、いくつかのポリシーを受信し、これらのポリシーのそれぞれを、後に受信されたリクエストに合致するポリシーを識別するために使用するストレージに記憶する。
【0025】
いくつかの実施形態で、受信されたポリシーは、宣言形式で表現される。図2は、受信されたポリシー200の例を示す。以下でさらに説明するように、このポリシーは、宛先グループ内の宛先マシンへのアクセスをhttp及びhttpsアクセスに制限する。図2に示すように、ポリシーは、(1)ポリシーが適用される1つ以上のデータセンタ・リソースの集合を特定するターゲット205と、(2)ターゲット・リソース集合への動作への制約を特定する表現210を含む。これは、いくつかの実施形態におけるポリシーの異なる構成要素のオブジェクト図300を提示する図3でさらに示される。図3に示す例で、ポリシーは、所与のテナント305に対して特定される。
【0026】
いくつかの実施形態における各ポリシーのターゲットは、(1)ターゲット・リソース集合のタイプ212、(2)ターゲット・リソース集合の名前214、及び(3)データセンタのリソース階層内のターゲット・リソース集合を識別するパス・プレフィックス216を含む。示されるように、いくつかの実施形態におけるポリシー・パス216は、データセンタ内のリソース又はリソースの集合を一意に識別するためのURL形式である。いくつかの実施形態で、ターゲット205のタイプ及びパス・プレフィックス属性は、ポリシーがAPIリクエストに適用可能である(すなわち、関連付けられている)かどうか(すなわち、ポリシーがAPIリクエストに関連する属性の集合に合致するかどうか)を判定するために使用される。
【0027】
ポリシーのためのパス・プレフィックス216は、SDDCのリソース階層内の1つ以上のリソースへの参照によって特定される。本願の図2及び他の図のいくつかに示されている例で、データセンタのリソース階層は、以下のリソース、すなわちテナント、ドメイン、通信マップ、及び通信エントリを含む。テナントは、マルチテナント・データセンタのテナントであるテナント・エンティティ(例えば、ビジネス・エンティティ)である。ドメインは、テナントのもとのワークロードである。通信マップは、ドメイン内のVMからの/への通信に適用可能な、ドメインのもとの通信ルールの集合である。一方、通信エントリは、通信マップのものの単一の通信ルール(例えば、ファイアウォール・ルール)である。
【0028】
いくつかの実施形態で、ワークロードは、特定の目的のためにユーザによってデプロイされるアプリケーション又はシステムである。ワークロードの一例は、企業でアウトルック・アプリケーションを実行するためにデプロイされたすべてのVMを含む。別の例は、異なる層のアプリケーション間でウェブサーバ、アプリケーション・サーバ、データベース・サーバ、ゼロ個以上のミドルボックス・サービス・マシン(例えば、ロード・バランサ、ファイアウォール)を特定する3層のアプリケーション・テンプレートを使用してデプロイされたVMを含む。ワークロードの他の例は、シェアポイント・ワークロード、ウィンドウズ・サーバVM、ウィンドウズVDIサービスVMなどを含む。
【0029】
いくつかの実施形態における通信マップの例は、(1)分散ファイアウォール(計算ノードVM及び/又はコンテナを有するホスト・コンピュータ上に実装されたファイアウォール・マシン)、(2)エッジ・ファイアウォール機器又は物理又は論理ネットワークの北/南境界で動作するマシン、及び(3)ホスト・コンピュータ上で実行される計算ノードVM及び/又はコンテナに対する他のミドルボックス・サービス動作を提供するためにホスト・コンピュータ上で実行される挿入されたサービス・モジュールを含む。いくつかの実施形態で、通信エントリの例は、以下の情報、すなわち識別子、名前、説明、送信元グループ、宛先グループ、サービス、アクション、及びスコープを含むタプルを含む。
【0030】
いくつかの実施形態で、パス・プレフィックスは、パスに含まれるすべての分類上の親とともに、ルートから、識別されたリソース又はリソース集合への、リソース階層を通るパスを特定することによって、リソース又はリソース集合を識別できる。例えば、/vmwareとしてパスを特定することによって、テナントVMwareに関連付けられているすべてのリソースについて第1ポリシーが特定されうる。パス/vmware/domains/Outlookを使用することによって、テナントVMwareのアウトルック・ワークロードについて第2ポリシーが特定されうる。パス/vmware/domains/Outlook/communication-maps/web-profileを特定することによって、テナントVMwareのアウトルック・ワークロードのweb-profileについて第3ポリシーが特定されうる。/vmware/domains/Outlook/communicationmaps/web-profile/communication-entries/open-browser-accessを使用することによって、テナントVMwareのアウトルック・ワークロードのオープン・ブラウザ・アクセスについて第4ポリシーが特定されうる。一般的に、セキュリティ・ポリシーのパスの形式は、/<tenant-name>/domains/<workload-name>/communication-maps/<security-policyname>/communication-entries/<rule-name>として特定されうる。
【0031】
上記の例で、第1ポリシーは、第2、第3、及び第4ポリシーが適用可能な任意のリソースに適用可能であり、第2ポリシーは、第3及び第4ポリシーが適用可能な任意のリソースに適用可能であり、第3ポリシーは、第4ポリシーが適用可能な任意のリソースに適用可能である。これは、第1ポリシーのパス・プレフィックスが第2、第3、及び第4ポリシーのパス・プレフィックスの部分集合であり、第2ポリシーのパス・プレフィックスが第3及び第4ポリシーのパス・プレフィックスの部分集合であり、第3ポリシーのパス・プレフィックスが第4ポリシーのパス・プレフィックスの部分集合であるためである。このアプローチのもとで、リソースに適用可能なポリシーは、リソース又はリソース階層上のリソースの親リソースについて特定されたポリシーである。動作が要求されるリソースに適用可能であるとポリシーが識別されると、以下にさらに記載されるように、ポリシーがこの動作を許可、制限、又は拒否する制約を特定しているかどうかを判定するためにポリシーの表現が分析されなければならない。
【0032】
表1は、いくつかの実施形態についてパス・プレフィックスのいくつかの他の例を提供する。これらの実施形態は、SDDCプロバイダによって運営されるルータを識別するためのプロバイダ、ネットワーク・インタフェースを識別するためのインタフェース、テナント・ネットワークを識別するためのネットワーク、テナント・ネットワーク・セグメントを識別するためのセグメント、及びデータセンタ内のロード・バランサ・マシン又は機器を識別するためのロード・バランサを含む、いくつかの追加のタイプのリソースを有する。
【表1】
【0033】
いくつかの実施形態は、以下にさらに説明されるように、制約を適用するためのオプションのパラメータの1つを特定するためにパス・プレフィックスを利用する。しかし、他の実施形態は、このアプローチを、いくつかのプレフィックスに合致する又はこれを識別するために正規表現を使用する別のアプローチに置き換えることができる。したがって、本発明のすべての実施形態が、特定されたポリシーで階層パスを使用することに限定されるわけではない。
【0034】
いくつかの実施形態で、受信されたポリシーの表現210は、ポリシーのターゲット・リソース集合上で特定されうる動作への1つ以上の制約を特定する。制約の一例は、ポリシーのターゲットであるリソースの属性の値を制限する値制約である。いくつかの実施形態で、値制約は、インクルード演算子、エクスクルード演算子、又はイコール演算子のうちの1つである演算子を含む。制約の別の例は、ターゲット・リソースのインスタンス数を制限する(例えば、VPN、ルータ、ゲートウェイ、ロード・バランサ、接続セッション、ファイアウォール・ルールなどの数を制限する)エンティティ・インスタンス数制約である。
【0035】
さらに別の例は、値制約によって規定されたプライマリ属性を有するターゲット・リソースのセカンダリ属性の値を制限する関連属性制約である。例えば、関連属性制約は、「トラフィックの宛先がアカウンティング・ワークロードであるならば、許可されるサービスはHTTPS及びSSHに制限される」というような制約を規定するために使用されうる。当業者は、他の実施形態が他のタイプの制約表現を含むことを理解するだろう。
【0036】
図2に示されているポリシー200は、宛先グループ内の宛先マシンへのアクセスをhttp及びhttpsアクセスに制限する。具体的に、このポリシーは、パス・プレフィックス216によって示されるように、tenantTのドメインのエッジ・ゲートウェイで適用される制約を特定する。この制約は、メッセージが宛先グループVCENTERにアドレス指定された場合に、当該メッセージ(すなわち、アクセス)はそのメッセージのプロトコルがhttp又はhttpsであるとき(すなわち、当該アクセスがhttp又はhttpsプロトコルを使用するとき)にのみ許可されるべきであることを規定する。
【0037】
図4は、いくつかの実施形態において、図2のポリシー200がポリシー入力プロセッサにどのように提供されるかを示す例を説明する。示されるように、ポリシー200は、CURL命令で始まり、その後に「リクエストPATCH\」が続くCURLパッチ・コマンド400において提供される。次に、ポリシー名は、許可ヘッダと、データがJSON形式であることを特定するコンテンツ・タイプがその後に続くURLとして提供される。最後に、ポリシー200は、CURLパッチ・コマンドのデータ構成要素として提供される。
【0038】
図5は、ポリシーの別の例を示す。このポリシー500は、特定された任意の通信ルールが、エッジ・ゲートウェイでのみ許可アクションを特定できることを特定する。このポリシーにより、管理者はエッジ・ゲートウェイでデータ・メッセージを拒否するルールを規定できなくなる。このポリシーは、接続を開くエッジ・ゲートウェイで管理者のみがファイアウォール・ルールを特定できるようにするホワイトリスト(明示的なファイアウォール・ルールで開かない限り、通信を許可しない)アプローチで、デフォルトのファイアウォール・ポリシーとして使用される。
【0039】
図6は、SDDC内のSDリソースに関するAPIを処理するためにリクエスト・プロセッサ125及びポリシー・フレームワーク100が実行するプロセス600を示す。いくつかの実施形態において、APIは、SDDC内の1つ以上のSDリソースへの1つ以上の動作を特定する階層APIである。このような階層APIは、2018年11月27日に出願された米国特許出願第16/200,677号にさらに記載されており、この出願は参照によって本書に組み込まれる。
【0040】
プロセス600において、リクエスト・プロセッサ125は最初に、(605において、)受信された階層APIを、SDDC内の1つ以上のSDリソースについての1つ以上のリクエストの集合に構文解析する。いくつかの実施形態において、受信されたAPIは、異なるリソースについての異なるリクエストを含んでもよいだけでなく、1つのSDリソースについての複数のリクエストを含んでもよい。受信されたAPIは、いくつかの実施形態において、1つのSDリソースについての複数の異なるリクエストを含むだけでもよい。各リクエストはいくつかの実施形態においてリソースに実行される1つの動作を特定するが、他の実施形態においてリクエストはリソースに実行される複数の動作を特定できる。
【0041】
APIを1つ以上のリクエストに構文解析した後、リクエスト・プロセッサ125は、各リクエストを検証するため(すなわち、各リクエストが、APIで参照されるSDリソースに適用可能なすべてのポリシー内のすべての制約を満たすかどうかを特定するため)に、ポリシー検査エンジン115を呼び出す。したがって、610において、リクエスト・プロセッサ125は、受信されたAPIから構文解析されたリクエストを選択する。その後、リクエスト・プロセッサ125は、(615において、)ポリシー検査エンジン115に、選択されたリクエストに適用可能な1つ以上のポリシーを識別するように指示する。各リクエストは、SDDCのリソース階層内のリソースに関連付けられる。上述したように、いくつかの実施形態において、各リソースは、リソース階層内の他のいくつかの子リソースの親リソースでありうる。
【0042】
615において、ポリシー検査エンジン115は、選択されたリクエストのリソースの属性の集合をポリシーのターゲットと比較して、ポリシーがリソースに適用可能かどうかを判定する。具体的に、選択されたリクエストのリソースに適用可能であるポリシーを識別するために、ポリシー検査エンジン115は、選択されたリクエストの1つ以上の属性(例えば、リクエストの関連リソースの識別子)を、ポリシー・ストレージ105に記憶された各ポリシーのターゲットにおいて特定された1つ以上の属性(例えば、パス・プレフィックス及びリソース・タイプ)と比較して、合致する属性集合を有する(すなわち、選択されたリクエストの属性集合と合致する属性集合を有する)ポリシーを識別する。例えば、アウトルック・ワークロードへのウェブ・アクセスを調整するAPIリクエストについて、ポリシー検査エンジン115は、上記の第2、第3、及び第4ポリシー(アウトルック・ワークロードについて、このワークロードのウェブ・プロファイル、及びこのワークロードのブラウザ・アクセス)を、APIリクエストに適用可能であるものとして識別する。いくつかの実施形態で、ポリシー・ストレージ105は、ポリシーが規定されるのと同じスキーマを使用して(例えば、図2図4、及び図5を参照して上述したのと同じスキーマを使用して)ポリシーを記憶する。
【0043】
1つの適用可能なポリシーを識別した後、ポリシー検査エンジンは、(620において、)識別されたポリシーの表現が、選択されたリクエストを拒否することを要求する制約を特定するかどうかを判定する。この判定を行うために、ポリシー検査エンジンは、選択されたリクエストの属性集合(例えば、リクエストがSDDC内のマシン間のデータ・メッセージ・フローに関する転送動作又はサービス動作に関連する場合のデータ・メッセージ・フロー属性、リクエストがマシン又はネットワーク要素のデプロイに関連する場合のデプロイ属性など)を、適用可能なポリシーの表現の制約について特定される属性と比較して、選択されたリクエストがポリシーの制約に違反するかどうかを確定する。よって、ポリシー検査エンジン115は、選択されたリクエストのリソース属性集合をポリシーのターゲットと比較して、リソースへのポリシーの適用可能性を識別する一方で、リソースの属性集合を、適用可能なポリシーの表現と比較して、リクエストを許可するか拒否するかを判定する。
【0044】
例えば、APIリクエストがファイアウォール・ルールの作成を必要とする場合に、ポリシー検査エンジン115は、図5のポリシー500を、適用可能なポリシーであると識別し、その後、ファイアウォール・ルールが許可動作を特定する又は拒否動作を特定すると判定する。要求されたファイアウォール・ルールが許可動作を特定した場合に、ポリシー検査エンジンは、ポリシー500によって特定された制約をリクエストが満たすと判定するが、ファイアウォール・ルールが拒否を特定した場合に、ポリシー検査エンジンは、特定されたポリシーをリクエストが満たさないと判定し、リクエストを拒否する。
【0045】
ポリシー検査エンジン115は、選択されたリクエストが、識別されたポリシーの制約に違反すると(620において)判定した場合に、APIを拒否し、拒否されたという通知をAPIのソースに戻すように(625において)API処理エンジン125に命令する。API処理エンジン125がAPIを拒否した後、いくつかの実施形態で、プロセスは終了する。他の実施形態で、プロセス600は、APIが少なくとも1つのポリシーに違反すると判定した後に終了しない。これらの実施形態で、API処理エンジン125は、拒否されたAPIが違反したすべてのポリシーを識別するためのレポートをAPIソースに提供できるように、受信されたAPI内の各リクエストを検証するようにポリシー検査エンジン115に指示する。
【0046】
ポリシー検査エンジン115は、選択されたリクエストが、識別されたポリシーの制約に違反しないと(620で)判定した場合に、ポリシー・ストア105内の他のポリシーが、選択されたリクエストに適用可能であるかどうかを(630で)判定する。適用可能である場合に、このエンジン115は、(635において)このポリシーを選択し、620に戻って、このポリシーの表現が、リクエストが違反する制約を特定するかどうかを判定する。プロセスは、リクエストに適用可能であり、まだ処理されていないポリシーを見つけることができる限り、620~635をループする。このループは、リクエストが違反する制約を有するポリシーをエンジン125が識別した場合、又はリクエストに適用可能なポリシーの分析をエンジンが終了した場合に終了する。
【0047】
ポリシー検査エンジン115が、選択されたリクエストに適用可能なすべてのポリシーを検査したと(630で)判定した場合に、このエンジンは、選択されたリクエストが何れのポリシーにも違反しないことをAPI処理エンジン125に(640で)通知する。次に、642において、API処理エンジン125は、受信されたAPIが、ポリシー検査エンジン115によってまだ検証されていない他の構文解析済みリクエストを有するかどうかを判定する。有する場合に、API処理エンジン125は次のリクエストを(645で)選択し、615に戻って、この新たに選択されたリクエストを検証する(すなわち、このリクエストが、リクエストに適用可能な何れかのポリシーの何れかの制約に違反するかどうかを検査する)ようにポリシー検査エンジン115に指示する。
【0048】
受信されたAPIが、ポリシー検査エンジン115によってまだ検証されていない他の構文解析済みリクエストを有しないとAPI処理エンジン125が(642において)判定した場合に、API処理エンジンは(650において)1つ以上のデプロイ・エンジン(図示せず)を使用して、処理済み階層APIのリクエストの処理に必要な構成変更を持続する(すなわち、APIによって影響を受けた任意のリソースに関する以前に特定された構成データを特定又は変更する)。これらのデプロイ・エンジンは、構成データ・ストレージ(図示せず)内の以前に特定された構成データを特定又は変更する。
【0049】
構成データが構成データ・ストレージに持続されると、API処理エンジン125は、APIリクエストが処理されたことを示す通知をAPIのソースに戻す。次に、660で、API処理エンジンは、受信されたAPI内のリクエストに関連する動作を実行するように1つ以上のリソース・マネージャ130に指示する。APIプロセッサ125によって指示される代わりに、他の実施形態で、デプロイ・プラグインが、リソース・マネージャに、新規又は修正された構成データ集合を構成データ・ストレージからリソースへ配布するように指示する。
【0050】
APIプロセッサ又はデプロイ・プラグインからのこれらの通知に応答して、リソース・マネージャは、次いで、これらの実施形態において、受信されたAPI内のリクエストに関連する動作を実行する。上述したように、リソース・マネージャは、データセンタ・リソース(例えば、ホスト・コンピュータ)と直接やりとりすることによって、所望のリソース(例えば、ファイアウォール・サービス・マシン又はモジュール)を規定又は変更することによって、又はデータセンタ・リソースとやりとりして所望のリソースを規定又は変更するローカル及び/又はリモート・コントローラを通じて間接的に、その動作を実行できる。
【0051】
660の後、プロセス600は終了する。
【0052】
上述の特徴及び用途の多くは、コンピュータ可読記憶媒体(コンピュータ可読媒体とも呼ばれる)に記録された命令の集合として特定されるソフトウェア・プロセスとして実施される。これらの命令が1つ以上の処理部(例えば、1つ以上のプロセッサ、プロセッサのコア、又は他の処理部)によって実行された場合に、それらは、命令に示されたアクションを処理部に実行させる。コンピュータ可読媒体の例は、CD-ROM、フラッシュ・ドライブ、RAMチップ、ハード・ドライブ、EPROM等を含むが、これらに限定されない。コンピュータ可読媒体は、無線で又は有線接続を介して伝わる搬送波及び電気信号を含まない。
【0053】
この明細書において、「ソフトウェア」という用語は、プロセッサによる処理のためにメモリに読み込まれうる、リードオンリ・メモリに存在するファームウェア又は磁気記憶装置に記憶されたアプリケーションを含むことを意味する。また、いくつかの実施形態で、複数のソフトウェア発明は、別個のソフトウェア発明を残しながら、より大きなプログラムのサブパーツとして実施されうる。いくつかの実施形態で、複数のソフトウェア発明は、別個のプログラムとしても実施されうる。最後に、本書に記載されるソフトウェア発明をまとめて実施する別個のプログラムの任意の組合せは本発明の範囲内である。いくつかの実施形態で、ソフトウェア・プログラムは、1つ以上の電子システム上で動作するようにインストールされた場合に、ソフトウェア・プログラムの動作を実行し実行する1つ以上の特定のマシン実装を規定する。
【0054】
図7は、本発明のいくつかの実施形態が実施されるコンピュータ・システム700を概念的に示す。コンピュータ・システム700は、上述のホスト、コントローラ、及びマネージャのいずれを実施するためにも使用されうる。このように、これは、上述のプロセスのいずれを実行するためにも使用されうる。このコンピュータ・システムは、様々なタイプの一時的でない機械可読媒体と、様々な他のタイプの機械可読媒体のためのインタフェースとを含む。コンピュータ・システム700は、バス705、処理部710、システム・メモリ725、リードオンリ・メモリ730、永久記憶デバイス735、入力デバイス740、及び出力デバイス745を含む。
【0055】
バス705は、コンピュータ・システム700の多数の内部デバイスを通信可能に接続するすべてのシステム・バス、周辺バス、及びチップセット・バスを集合的に表す。例えば、バス705は、処理部710を、リードオンリ・メモリ730、システム・メモリ725、及び永久記憶デバイス735と通信可能に接続する。
【0056】
これらの様々なメモリ部から、処理部710は、本発明のプロセスを実行するために、実行すべき命令及び処理すべきデータを読み出す。処理部は、様々な実施形態において、単一プロセッサであってもよいし、マルチコア・プロセッサであってもよい。リードオンリ・メモリ(ROM)730は、処理部710及びコンピュータ・システムの他のモジュールによって必要とされる静的データ及び命令を記憶する。一方、永久記憶デバイス735は、読み書き可能なメモリ・デバイスである。このデバイスは、コンピュータ・システム700がオフの場合でも命令及びデータを格納する不揮発性メモリ部である。本発明のいくつかの実施形態は、永久記憶デバイス735として(磁気又は光ディスク及びその対応するディスク・ドライブのような)大容量記憶デバイスを使用する。
【0057】
他の実施形態で、永久記憶デバイスとして(フロッピー(登録商標)ディスク、フラッシュ・ドライブなどのような)取り外し可能な記憶デバイスを使用する。永久記憶デバイス735と同様に、システム・メモリ725は、読み書き可能なメモリ・デバイスである。しかし、システム・メモリは、記憶デバイス735とは異なり、ランダム・アクセス・メモリのような揮発性の読み書き可能なメモリである。システム・メモリは、プロセッサが実行時に必要とする命令及びデータの一部を記憶する。いくつかの実施形態で、本発明のプロセスは、システム・メモリ725、永久記憶デバイス735、及び/又はリードオンリ・メモリ730に記憶される。処理部710は、これらの様々なメモリ部から、いくつかの実施形態のプロセスを実行するために、実行すべき命令及び処理すべきデータを読み出す。
【0058】
バス705は、入力デバイス740及び出力デバイス745にも接続している。入力デバイスは、ユーザがコンピュータ・システムに情報を伝達しコマンドを選択することを可能にする。入力デバイス740は、英数字キーボード及びポインティング・デバイス(「カーソル制御デバイス」とも呼ばれる)を含む。出力デバイス745は、コンピュータ・システムによって生成された画像を表示する。出力デバイスは、プリンタと、陰極線管(CRT)又は液晶ディスプレイ(LCD)のような表示デバイスとを含む。いくつかの実施形態は、入力デバイス及び出力デバイスの両方として機能するタッチスクリーンのようなデバイスを含む。
【0059】
最後に、図7に示されるように、バス705はまた、ネットワーク・アダプタ(図示せず)を介してコンピュータ・システム700をネットワーク765に結合する。このようにして、コンピュータは、(ローカル・エリア・ネットワーク(「LAN」)、ワイド・エリア・ネットワーク(「WAN」)、又はイントラネットのような)コンピュータのネットワーク、又は(インターネットのような)ネットワークのネットワークの一部であってもよい。コンピュータ・システム700の任意の又はすべての構成要素は、本発明と併せて使用されてもよい。
【0060】
いくつかの実施形態は、機械可読又はコンピュータ可読媒体(代替的に、コンピュータ可読記憶媒体、機械可読媒体、又は機械可読記憶媒体と称される)にコンピュータ・プログラム命令を記憶するマイクロプロセッサのような電子部品を含む。このようなコンピュータ可読媒体のいくつかの例は、RAM、ROM、リードオンリ・コンパクト・ディスク(CD-ROM)、記録可能コンパクト・ディスク(CD-R)、書き換え可能コンパクト・ディスク(CD-RW)、リードオンリ・ディジタル多目的ディスク(例えば、DVD-ROM、二層DVD-ROM)、様々な記録可能/書き換え可能DVD(例えば、DVD-RAM、DVD-RW、DVD+RW等)、フラッシュ・メモリ(例えば、SDカード、ミニSDカード、マイクロSDカード等)、磁気及び/又はソリッド・ステート・ハード・ドライブ、リードオンリ及び記録可能ブルーレイ(登録商標)・ディスク、超密度光ディスク、任意の他の光又は磁気媒体、及びフロッピー・ディスクを含む。コンピュータ可読媒体は、少なくとも1つの処理部によって実行可能であり、様々な動作を実行するための命令の集合を含むコンピュータ・プログラムを記憶してもよい。コンピュータ・プログラム又はコンピュータ・コードの例は、コンパイラによって生成されるようなマシン・コードと、インタープリタを使用してコンピュータ、電子部品、又はマイクロプロセッサによって実行される上位レベルのコードを含むファイルを含む。
【0061】
上記の議論は主に、ソフトウェアを実行するマイクロプロセッサ又はマルチコア・プロセッサに言及しているが、いくつかの実施形態は、特定用途向け集積回路(ASIC)又はフィールド・プログラマブル・ゲート・アレイ(FPGA)のような1つ以上の集積回路によって実行される。いくつかの実施形態で、このような集積回路は、回路自体に記憶された命令を実行する。
【0062】
本明細書で使用されるように、「コンピュータ」、「サーバ」、「プロセッサ」、及び「メモリ」という用語はすべて、電子デバイス又は他の技術的デバイスを指す。これらの用語は、人々又は人々のグループを除外する。本明細書の目的のために、「表示する」又は「表示している」という用語は、電子デバイス上に表示することを意味する。本明細書で使用されるように、「コンピュータ可読媒体」、「コンピュータ可読媒体群」、及び「機械可読媒体」という用語は、コンピュータによって読み取り可能な形式で情報を記憶する有形の物理オブジェクトに完全に限定される。これらの用語は、任意の無線信号、有線ダウンロード信号、及び任意の他のつかの間の又は一時的な信号を除外する。
【0063】
本発明が多数の特定の詳細を参照して説明されてきたが、当業者であれば、本発明の精神から逸脱することなく、他の特定の形態で本発明を実施できることを理解するだろう。したがって、当業者は、本発明が前述の例示的な詳細によって限定されるべきではなく、むしろ添付の特許請求の範囲によって規定されるべきであることを理解するだろう。
図1
図2
図3
図4
図5
図6
図7