(57)【要約】【課題】  仮想（オーバーレイ）ネットワーク環境内のエンティティ間の接続についての、アイデンティティ及びアクセス管理ベースのアクセス制御を提供するための方法及び装置。【解決手段】  オーバーレイネットワークのカプセル化層において、帯域外の接続生成プロセスを利用してアクセス制御を施行し、それ故に、ソースとターゲットとの間のオーバーレイネットワーク接続を、ポリシに従い許可または拒否することができる。例えば、リソースにはアイデンティティが与えられ得、識別されたリソースがロールを担い、他のリソースへの接続の構築に関する認可を含む、ロールについてのポリシを定義することができる。所与のリソース（ソース）が別のリソース（ターゲット）との接続の構築を試みるときに、ロール（複数可）を決定し、ロールについてのポリシ（複数可）を識別し、認可（複数可）を確認して、オーバーレイネットワークを通じたソースからターゲットまでの接続を許可または拒否するかを決定することができる。【選択図】図８
2018093547.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク基板と、
プロバイダネットワークにおいてポリシを管理及び評価するように構成されたアクセス制御サービスを実施する一つ以上のコンピューティングデバイスと、
一つ以上のリソースインスタンスをその各々が実装する複数のホストデバイスと、を備えており、
前記ホストデバイスの一つ以上が、各々、
前記それぞれのホストデバイスにおいてリソースインスタンスからネットワークパケットを取得し、
前記リソースインスタンスに関連するポリシを決定し、
前記アクセス制御サービスと通信して、前記アクセス制御サービスによって実行される前記リソースインスタンスに関連する前記ポリシの評価に従い、前記リソースインスタンスについての、前記ネットワークパケットによって示されるターゲットへの接続をオープンにすることを許可するか否かを決定し、
前記ポリシに従い前記ネットワークパケットによって示されるターゲットへの接続をオープンにすることを前記リソースインスタンスが許可された場合には、一つ以上のネットワークパケットを、前記リソースインスタンスから、前記ネットワーク基板にわたるオーバーレイネットワークパスを通じて前記ターゲットに送信し、
前記ポリシに従い前記ネットワークパケットによって示されるターゲットへの接続をオープンにすることを前記リソースインスタンスが許可されなかった場合には、前記ネットワークパケットを前記ターゲットに送信することなく、前記ネットワークパケットを廃棄するように構成された、プロバイダネットワーク。
【請求項２】
前記ターゲットが、前記プロバイダネットワークにおける別のリソースインスタンス、または別のネットワークにおけるエンドポイントである、請求項１に記載のプロバイダネットワーク。
【請求項３】
前記リソースインスタンス及び前記ターゲットが、共に、前記プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装内のリソースインスタンスである、請求項１に記載のプロバイダネットワーク。
【請求項４】
前記リソースインスタンスについての、前記ネットワークパケットによって示されるターゲットへの接続をオープンにすることを許可するか否かを決定するために、前記アクセス制御サービスが、さらに、前記ターゲットに関連するポリシを決定及び評価するように構成され、前記リソースインスタンスに関連する前記ポリシ及び前記ターゲットに関連する前記ポリシの両方が前記接続を許可する場合に、前記リソースインスタンスについてのみ、前記ターゲットへの接続をオープンにすることを許可する、請求項１に記載のプロバイダネットワーク。
【請求項５】
前記リソースインスタンスが、前記ホストデバイスにおける仮想マシン（ＶＭ）として実装され、各ホストデバイスが、前記それぞれのホストデバイスにおける複数の仮想マシン（ＶＭ）をモニタする仮想マシンモニタ（ＶＭＭ）を含み、前記ホストデバイスにおける前記ＶＭＭが、前述の取得、前述のアクセス及び前述の送信を実行する、請求項１に記載のプロバイダネットワーク。
【請求項６】
前記リソースインスタンスに関連する前記ポリシを評価するために、前記アクセス制御サービスが、
前記プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装におけるロールを前記リソースインスタンスが担ったことを決定し、
前記リソースインスタンスが担った前記ロールに関連するポリシを決定し、
前記ロールに関連する前記ポリシを評価するように構成された、請求項１に記載のプロバイダネットワーク。
【請求項７】
前記一つ以上のネットワークパケットを、前記リソースインスタンスから、前記ネットワーク基板にわたるオーバーレイネットワークパスを通じて前記ターゲットに送信するために、前記ホストデバイスが、
カプセル化プロトコルに従い前記一つ以上のネットワークパケットをカプセル化して、一つ以上のカプセル化パケットを生成し、
前記カプセル化パケットを、前記カプセル化パケットにおけるルーティング情報に従い、前記ターゲットに伝送されるように前記ネットワーク基板に送信するように構成された、請求項１に記載のプロバイダネットワーク。
【請求項８】
前記ネットワーク基板に実装されたオーバーレイネットワーク外部のエンドポイントと通信して、前記オーバーレイネットワークにおける前記エンドポイントについてのアイデンティティを構築し、
前記アクセス制御サービスにアクセスして、ターゲットリソースインスタンスに関連するポリシの評価に従い、前記エンドポイントについての、前記オーバーレイネットワークを通じた前記ターゲットリソースインスタンスへの接続をオープンにすることを許可することを決定し、
前述の決定に応答して、一つ以上のネットワークパケットを、前記エンドポイントから、前記ネットワーク基板にわたるオーバーレイネットワークパスを通じて前記ターゲットリソースインスタンスに送信するように構成された一つ以上のネットワークデバイスをさらに備えた、請求項１に記載のプロバイダネットワーク。
【請求項９】
プロバイダネットワーク内のホストデバイスに実装されたカプセル化層プロセスによって、前記ホストデバイスに実装された一つ以上のリソースインスタンスのうちの一つから、ターゲットエンドポイントに導かれるネットワークパケットを取得することと、
前記プロバイダネットワークにおけるアイデンティティ及びアクセス管理環境に従い、前記リソースインスタンスをプリンシパルとして識別することを決定することと、
前記プリンシパルに関連するポリシを決定することと、
前記プリンシパルに関連する前記ポリシの評価に従い、前記プリンシパルについての、前記ターゲットエンドポイントへの接続をオープンにすることを許可することを決定することと、
前記プリンシパルが前記ターゲットエンドポイントへの接続をオープンにすることを許可されたことの前述の決定に応答して、
一つ以上のカプセル化パケットを生成するためのカプセル化プロトコルに従い、前記リソースインスタンスからの一つ以上のネットワークパケットをカプセル化し、前記ターゲットエンドポイントに導くことと、及び
前記一つ以上のカプセル化パケットを、前記カプセル化パケットにおけるルーティング情報に従い、前記ターゲットエンドポイントに伝送されるように前記プロバイダネットワークのネットワーク基板に送信することと、を含む、方法。
【請求項１０】
前記リソースインスタンス及び前記ターゲットエンドポイントが、共に、前記プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装内のリソースインスタンスである、請求項９に記載の方法。
【請求項１１】
前記プリンシパルに関連するポリシの認可ステートメントの評価に従う、前記プリンシパルについての、前記ターゲットエンドポイントへの接続をオープンにすることを許可することの前述の決定が、
前記カプセル化層プロセスがポリシ評価リクエストを前記プロバイダネットワークにおけるアクセス制御サービスに送信することと、
前記アクセス制御サービスによって、前記プリンシパルに関連する前記ポリシを決定することと、
前記アクセス制御サービスによって、前記プリンシパルに関連する前記ポリシにおける一つ以上の認可ステートメントを評価して、前記プリンシパルについての、前記ターゲットエンドポイントに関連するリソースへの接続をオープンにすることを前記ポリシが許可することを決定することと、及び
前記プリンシパルについての、前記ターゲットエンドポイントへの接続をオープンにすることが許可されたことを、前記カプセル化層プロセスに示すことと、を含む、請求項９に記載の方法。
【請求項１２】
前記アクセス制御サービスが、さらに、前記ターゲットエンドポイントに関連する前記リソースに関連するポリシの決定及び評価を実行し、前記プリンシパルに関連する前記ポリシ及び前記リソースに関連する前記ポリシの両方が前記接続を許可する場合に、前記プリンシパルについてのみ、前記リソースへの接続をオープンにすることを許可する、請求項１１に記載の方法。
【請求項１３】
前記プリンシパルに関連する前記ポリシにおける各認可ステートメントが、認可を許可または拒否するかについての一つ以上のアクション、前記認可ステートメントが適用される一つ以上のリソース、及び前記示された一つ以上のアクションが前記示された一つ以上のリソースについて許可または拒否されるかを示す、請求項１１に記載の方法。
【請求項１４】
前記カプセル化層プロセスによって、前記アイデンティティ及びアクセス管理環境に従い、前記プリンシパルとして識別されたリソースインスタンスから、別のターゲットエンドポイントに導かれる前記他のネットワークパケットを取得することと、
前記プリンシパルに関連するポリシの評価に従い、前記プリンシパルについての、前記他のターゲットエンドポイントへの接続をオープンにすることを許可しないことを決定することと、及び
前述の決定に応答して、前記ネットワークパケットを前記他のターゲットエンドポイントに送信せずに、前記他のネットワークパケットを廃棄することと、をさらに含む、請求項９に記載の方法。
【請求項１５】
前記プリンシパルに関連するポリシの評価に従う、前記プリンシパルについての、前記ターゲットエンドポイントへの接続をオープンにすることを許可することの前述の決定が、
前記プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装におけるロールを前記プリンシパルが担ったことを決定することと、ここで、前記プリンシパルに関連する前記ポリシが、前記プリンシパルが担った前記ロールに関連するポリシであり、及び
前記ロールに関連する前記ポリシを評価して、前記プリンシパルについての、前記ターゲットエンドポイントへの接続をオープンにすることを許可することを決定することと、を含む、請求項９に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
多くの企業及び他の組織は、（例えば、ローカルネットワークの一部として）同一場所に配置されたコンピューティングシステム、あるいは、（例えば、一つ以上のプライベート及び／またはパブリック中間ネットワークによって接続された）複数の異なる地理的位置に配置されたコンピューティングシステムなどの、業務をサポートするための多数のコンピューティングシステムを相互接続するコンピュータネットワークを動作させている。例えば、かなりの数の相互接続されたコンピューティングシステムを収容するデータセンタ、例えば、単一の組織及びその代行者が動作させているプライベートデータセンタ、並びにコンピューティングリソースを顧客またはクライアントに提供するためのビジネスとしてエンティティが動作させているパブリックデータセンタが、一般的となってきた。一部のパブリックデータセンタのオペレータは、ネットワークアクセス、電力及び安全に設置されたファシリティを、さまざまなクライアントが所有しているコンピューティングハードウェアに提供し、その一方で、他のパブリックデータセンタのオペレータは、クライアントが使用するために利用可能なハードウェアリソースも含む「フルサービス」ファシリティを提供する。しかしながら、典型的なデータセンタのスケール及び範囲が増大するにつれて、物理コンピューティングリソースをプロビジョニング、動作及び管理するタスクは、ますます複雑になってきた。
【０００２】
コモディティハードウェアのための仮想化テクノロジの出現は、多様なニーズを持つ多くのクライアントのための大規模なコンピューティングリソースの管理に対して利益を与えてきた。これにより、さまざまなコンピューティングリソースを、複数のクライアントによって効率的にかつ安全に共有することに加えて、物理ノードのセットの間の、コンピューティングリソースのプロビジョニング、管理及び動作を促進することができるようになった。例えば、仮想化テクノロジによって、単一の物理コンピューティングマシンによってホストされた一つ以上の仮想マシンを各ユーザに提供することによって、単一の物理コンピューティングマシンを複数のユーザ間で共有することができる。ここでは、各々のそのような仮想マシンが、所与のハードウェアコンピューティングリソースの唯一のオペレータ及び管理者であるという錯覚をユーザに与える異なる論理コンピューティングシステムの機能を果たし、一方で、アプリケーション隔離及びセキュリティもさまざまな仮想マシン間に提供するソフトウェアシミュレーションである。さらに、一部の仮想化テクノロジは、単一の仮想マシンなどの、二つ以上の物理リソースにわたる仮想リソースを、複数の異なる物理コンピューティングシステムにわたる複数の仮想プロセッサに提供することができる。別の実施例として、仮想化テクノロジによって、複数のデータストレージデバイスにわたって分配することができる仮想化データストアを各ユーザに提供することによって、データストレージハードウェアを複数のユーザ間で共有することができる。ここでは、各々のそのような仮想化データストアが、データストレージリソースの唯一のオペレータ及び管理者であるという錯覚をユーザに与える異なる論理データストアの機能を果たす。別の実施例として、仮想化オペレーティングシステムは、ネットワークにわたるメモリページのコピーの停止及び開始、さらには、実行中にそれに続く、「ライブマイグレーション」としても公知のプロセスを使用するネットワークトラフィックの最後のスナップショット及び再ルーティングのいずれかによって、物理ノード間をより容易に移動することができる。
【０００３】
結局は、これらのトレンドは、一方では、コンピューティング及びストレージリソースの大きな共通のプールからのリソースを共有し、他方では、テナント固有のリソースを、プライバシ及びセキュリティを維持する論理的に分離した方式において機能させる、複数の顧客または「テナント」のための大規模な「ユーティリティスタイル」（利用時払い）のコンピューティング環境の出現をもたらした。そのようなシステムは、マルチテナントのクラウドコンピューティング環境または「パブリッククラウド」として公知である。この用法では、「パブリック」という用語は、テナントの使用が分離されてなくかつ安全でないことは意味しない。むしろ、パブリックのメンバが、パブリッククラウド内の論理的に分離されたリソースにアクセスでき、少なくとも一部の場合では、例えば、１時間当たり、ギガバイト当たりまたは月当たりの基準に基づく使用に対する代金を支払うことができることを意味する。
【図面の簡単な説明】
【０００４】
【図１】少なくともいくつかの実施形態に従う、オーバーレイネットワーク接続におけるアクセス制御方法の高レベルフローチャートである。
【図２】アクセス制御のための方法及び装置の実施形態を実施できる実施例のプロバイダネットワーク環境を図示する。
【図３】少なくともいくつかの実施形態に従う、プロバイダネットワークにおけるアクセス制御サービスを図示する。
【図４Ａ−４Ｂ】少なくともいくつかの実施形態に従う、ポリシについての一般形式の非限定的な実施例を提供する。
【図５Ａ−５Ｂ】少なくともいくつかの実施形態に従う、プリンシパルまたはリソースについて定義できるポリシの非限定的な実施例を提供する。
【図６】少なくともいくつかの実施形態に従う、クライアントの仮想プライベートネットワークにおいてリソースインスタンス間のアクセス制御を提供するための方法及び装置を図示するブロック図である。
【図７】少なくともいくつかの実施形態に従う、クライアントの仮想プライベートネットワークにおけるリソースインスタンスと外部エンドポイントとの間のアクセス制御を提供するための方法及び装置を図示するブロック図である。
【図８】少なくともいくつかの実施形態に従う、プリンシパルがロールを担い、ロールがポリシを有し、かつロールについてのポリシの評価に基づいてアクセスを許可または拒否する、オーバーレイネットワーク接続におけるアクセス制御方法のフローチャートである。
【図９】少なくともいくつかの実施形態に従う、実施例のプロバイダネットワーク環境を図示する。
【図１０】いくつかの実施形態に従う、ＩＰトンネリング技術を使用して、ネットワーク基板においてオーバーレイネットワークを実装する実施例のデータセンタを図示する。
【図１１】少なくともいくつかの実施形態に従う、ストレージ仮想化サービス及びハードウェア仮想化サービスをクライアントに提供する実施例のプロバイダネットワークのブロック図である。
【図１２】少なくともいくつかの実施形態に従う、仮想プライベートネットワークを少なくとも何人かのクライアントに提供する実施例のプロバイダネットワークを図示する。
【図１３】少なくともいくつかの実施形態に従う、プロバイダネットワークにおける実施例の仮想プライベートネットワーク実装内のサブネット及びグループを図示する。
【図１４】いくつかの実施形態において使用できる実施例のコンピュータシステムを図示するブロック図である。
【発明を実施するための形態】
【０００５】
いくつかの実施形態についての実施例及び実例となる図面を手段として実施形態を本明細書に記述するが、当業者は、実施形態が、記述された実施形態または図面に限定されないことを認識する。図面及びそれに関する詳細な説明が、開示する特定の形態に実施形態を限定することは意図せず、むしろ、その意図が、添付の特許請求の範囲によって定義されるような精神及び範囲内に収まるすべての変更物、均等物及び代替物を含むことを理解すべきである。本明細書に使用される見出しは、構成のみを目的とし、記述または特許請求の範囲の範囲を限定するのに使用されることは意図しない。本出願書類全体を通して使用される「することができる」という言葉は、義務的な意味（すなわち、必須の意味）ではなく、許容的な意味（すなわち、可能性を有する意味）において使用される。同様に、「を含む」、「を含んでいる」及び「を含む（三人称単数）」という言葉は、それを含むがそれに限定されないという意味である。
【０００６】
仮想ネットワークにおけるアイデンティティ及びアクセス管理ベースのアクセス制御のための方法及び装置のさまざまな実施形態を記述する。より具体的には、アイデンティティ及びアクセス管理ベースの、オーバーレイネットワーク環境内のエンティティ間の接続の制御、構築及び管理を提供するための方法の実施形態を記述する。これらの方法は、アイデンティティ及びアクセス管理ベースのアクセス制御方法、または単にアクセス制御方法として本明細書に言及され得る。オーバーレイネットワーク環境は、例えば、エンティティ間の通信のために、ネットワーク基板にわたってカプセル化プロトコル技術を使用することができる。ネットワーク基板にわたってカプセル化プロトコル技術を使用するオーバーレイネットワーク環境では、ネットワークパケットは、ネットワークパケットソース（ネットワークパケットを生成するエンティティ）によって生成され、カプセル化プロトコル技術に従い実装されたカプセル化層において包装またはカプセル化され、（本明細書においてカプセル化パケットまたはネットワーク基板パケットとしても参照される）カプセル化プロトコルパケットを生産することができる。次に、カプセル化パケットを、カプセル化パケットについてのルーティング情報に従い、ネットワーク基板にわたって宛先に伝送することができる。ネットワーク基板にわたるカプセル化パケットのカプセル化情報に従うルーティングは、ネットワーク基板にわたるオーバーレイネットワーク経路またはパスを通じてカプセル化パケットを送信するものとみなすことができる。宛先において、カプセル化層が、カプセル化パケットからネットワークパケットを取り出し（カプセル除去と称されるプロセス）、ネットワークパケットをネットワークパケット宛先（ネットワークパケットを消費するエンティティ）に提供または送信する。
【０００７】
従来の物理ネットワーク環境では、パケットを別のＩＰアドレスに送信することを試みる物理ノードによる最初のステップは、サブネットにおけるすべてのホストによって論理的に受信されるブロードキャストパケットであるＡＲＰ（アドレス解決プロトコル）パケットを送信することであった。（いくつかの実施では、ネットワークスイッチが、以前のブロードキャストの結果をキャッシュしてこのプロセスを短絡できるが、論理アルゴリズムは変更されない。）ＡＲＰパケットは、リソース発見メッセージ、どの物理ノードが所望のＩＰアドレスに対応するホストであるかの問合せとして働く。正常に動作するネットワークでは、唯一のホスト（そのＩＰアドレスに関与するホスト）が、そのＭＡＣ（媒体アクセス制御、または層２）アドレスに応答する。その後、送信ホストが、ＭＡＣアドレスとＩＰアドレスとの間のマッピングを、そのローカルＡＲＰテーブルにキャッシュする。この標準的な方法にはセキュリティリスクが存在することに留意されたい。例えば、ＡＲＰリクエストが真を意味していることに対する応答が多くの物理ネットワークの制限であるか否かを決定するのに安全な方法がなく、「ＡＲＰキャッシュポイズニング」が既知のネットワークセキュリティ攻撃ベクトルであるという事実がある。
【０００８】
オーバーレイネットワーク環境では、前述のプロセスは、下位互換性ではあるが、セキュリティリスクを減少できるように模倣される。オーバーレイネットワークの少なくともいくつかの実施では、ＡＲＰパケットは、転送されないが、所与のＩＰアドレスにおける別のホストと通信することをホストが望むカプセル化層を通知するある種のアプリケーションプログラミングインターフェース（ＡＰＩ）コールとして扱われる。次に、カプセル化層は、マッピングサービスにおいてルックアップを実行し、パケットをその宛先に送信する権利をホストが有するか否か、そして送信元から受信するように構成された、リクエストされたＩＰアドレスを持つ、対応する可能性がある受信ノードが存在するか否かを決定する。このマッピングサービスルックアップが成功した場合には、カプセル化層は、仮想ＭＡＣ（ＶＭＡＣ）アドレスを、リクエストしているホストに戻し、その後、オーバーレイネットワークホストに戻すように提示されるＶＭＡＣによって所有されるものとして、探索されたＩＰアドレスを処理する。少なくともいくつかの実施では、ＡＲＰパケットを視認またはそれに直接応答することをホストに許可しないことによって、ネットワークセキュリティを向上する。
【０００９】
オーバーレイネットワーク環境では、ネットワークパケットソース及びネットワークパケット宛先の観点からすれば、従来の方法においてネットワークパケットを転送する物理ネットワークによって二つのエンティティが接続されているかのようである。しかしながら、実際には、ネットワークパケットソースからのネットワークパケットは、カプセル化され、潜在的に異なるアドレス指定スキーム、ルーティングスキーム、プロトコル、ネットワーク基板を通じてパケットを供給するための、オーバーレイネットワーク環境において使用されるその他のものを用いて、ネットワークパケット宛先に伝送されるようにネットワーク基板にわたって送信される。
【００１０】
各々のカプセル化パケットは、一つ、二つまたはそれ以上のネットワークパケットを含むことができる。さまざまな実施形態では、カプセル化プロトコルは、ＩＰｖ６（インターネットプロトコルバージョン６）またはユーザデータグラムプロトコル（ＵＤＰ）などの標準ネットワークプロトコル、あるいは、非標準の、カスタムなまたは私有のネットワークプロトコルであってもよい。カプセル化プロトコルに従いカプセル化されたネットワークパケットは、例えば、これらに限定されないが、ＩＰｖ４（インターネットプロトコルバージョン４）パケット、ＩＰｖ６パケット、伝送制御プロトコル（ＴＣＰ）パケット、ユーザデータグラムプロトコル（ＵＤＰ）パケット、またはインターネット制御メッセージプロトコル（ＩＣＭＰ）パケットを含むインターネットプロトコル（ＩＰ）技術パケットであってもよい。しかしながら、ネットワークパケットは、他のＩＰプロトコル、ＩＰプロトコルとは異なる他の標準プロトコル（例えば、ＯＳＩ  ＴＰ４）に従うパケット、または他の非標準の、カスタムなもしくは私有のプロトコル（例えば、Ｎｏｖｅｌｌ  ＩＰＸ／ＳＰＸまたはＸｅｒｏｘ  ＸＮＳ）に従うパケットであってもよい。
【００１１】
従来、オーバーレイネットワーク環境において、エンティティ間の接続（例えば、ネットワークパケットソースとネットワークパケット宛先との間のオーバーレイネットワークパス）は、デバイス及び／または簡潔さのために本明細書においてカプセル化層プロセスと称され得るカプセル化層におけるプロセスによって構築される。カプセル化層プロセスの実施例として、オーバーレイネットワーク環境は、仮想マシンモニタ（ＶＭＭ）とも称される、ハイパーバイザのインスタンスを各々が実装するホストシステムを含むことができる。これは、それぞれのホストシステムにおける一つ以上の仮想マシンインスタンス（ＶＭ）の代わりにカプセル化層の機能性を実行し、オーバーレイネットワークカプセル化プロトコルに従い他のエンティティへのパケットフロー（例えば、オーバーレイネットワークパス）を構築する。別の実施例として、カプセル化層プロセスは、ネットワークパケットソースからいくつかまたはすべてのネットワークパケットをインターセプトし、ネットワーク基板にわたって供給するために、カプセル化プロトコルに従いパケットをカプセル化するコプロセッサとしてまたはそこにおいて実施することができる。なおも別の実施例として、カプセル化層プロセスは、（ネットワーキングの観点から見て）ＶＭＭとネットワーク基板との間、または（ネットワーキングの観点から見て）物理ハードウェアデバイスにおけるオペレーティングシステムとネットワーク基板との間に位置するデバイスとしてまたはそこにおいて実施することができる。一般に、カプセル化層プロセスのインスタンスは、オーバーレイネットワークのカプセル化プロトコル技術に従いネットワークパケットのカプセル化またはカプセル除去を行うために、ネットワークパケットソースまたは宛先とネットワーク基板との間のどこにでも実装することができる。
【００１２】
通常、オーバーレイネットワークにおける二つのエンティティ間のパケットフローの構築には、ローカルＶＭからネットワークパケットを受信し、（必ずではないが、ネットワークにおける別のＶＭであってもよい）ターゲットへのマッピング情報（例えば、基板アドレスマッピングについてのオーバーレイアドレス）を決定するためにマッピングサービスまたはユーティリティ（または、マッピング情報のローカルキャッシュ）にアクセスし、マッピング情報に従いネットワークパケット（複数可）をカプセル化し、カプセル化情報に従い、ターゲットに伝送されるネットワーク基板にカプセル化パケットを送信するＶＭＭが必要となり得る。
【００１３】
従来、カプセル化層は、単純なネットワークＩＰアドレスアクセス制御方法を実施することができる。例えば、ソースＶＭＭによるクエリ（例えば、ＡＲＰクエリ）に応答し、マッピングサービスが有効なターゲットアドレスを有し、かつソースアドレスがそのターゲットアドレスにパケットを送信することが許可された場合には、その結果、ターゲットアドレス（例えば、ＶＭＡＣアドレス）がＶＭＭに戻され、ＶＭＭは、ターゲットアドレスに従いネットワークパケット（複数可）をカプセル化し、カプセル化パケットを、ターゲットに伝送されるように基板ネットワークに送信する。いくつかの実施では、オーバーレイネットワークは、ソースのグループ及びターゲットシステムに必要となる基本アクセス規則を書き込み、ネットワーク層において、「アイデンティティ」の大まかな概念のみを提供することができる。例えば、基本アクセス規則は、グループＡにおける一つ以上のサーバに、ＴＣＰプロトコル及びポート８０を使用してグループＢにおける一つ以上のサーバにパケットを送信させることができる。しかしながら、従来、カプセル化層は、ネットワーキングエンティティ間の接続を構築するときに、周囲のセキュリティシステム及びネットワーク環境（例えば、プロバイダネットワーク環境）に存在するより一般的なアイデンティティ及びアクセス管理ベースのポリシを施行しない。
【００１４】
前述のようなカプセル化層におけるエンティティ間のオーバーレイネットワークパスまたは接続を構築するプロセスは、帯域外の接続生成プロセスとみなすことができる。（必ずではないが、プロバイダネットワークにおけるソースＶＭ及び宛先ＶＭであってもよい）ソース及びターゲットエンティティは、カプセル化層によって提供されたオーバーレイネットワークまたはオーバーレイネットワーク接続を認識しない。カプセル化層におけるこの帯域外の接続生成プロセスは、カプセル化層におけるアイデンティティ及びアクセス管理ベースのアクセス制御方法及び装置の実施を可能にするように利用することができる。実施形態では、カプセル化層においてネットワークにおけるエンティティ（プリンシパル及び／またはリソース）についてのアイデンティティを構築し、（例えば、プロバイダネットワークにおけるＶＭ、またはＶＭ内のオペレーティングシステムプリンシパルについての）ポリシを定義することができる。ネットワークにおけるエンティティ間の接続を評価及び構築するときに、アイデンティティに従い、（例えば、ＶＭＭまたは他のカプセル化層プロセスによって）カプセル化層においてポリシを施行することができる。
【００１５】
ソース及びターゲットエンティティが、ＴＣＰなどのコネクション型プロトコルを通じても、またはＵＤＰもしくはＩＣＭＰなどのコネクションレスプロトコルを通じても通信できることに留意されたい。いずれの場合でも、カプセル化層は、通常、ソースエンティティがネットワークパケットをターゲットエンティティに送信できることが確定され得る帯域外の接続設定を実行することができる。それ故に、コネクションレスプロトコルでさえも、カプセル化層は、二つのエンティティ間のオーバーレイネットワーク「接続」またはパスを構築することができる。それ故に、実施形態では、カプセル化層は、コネクション型及びコネクションレスのネットワークプロトコルの両方において、帯域外の接続設定期間に、二つのエンティティ間のオーバーレイネットワークを通じるネットワーク通信を許可または拒否するかに関する決定の一部として、プリンシパル及びリソースについてのアイデンティティ及びアクセス管理ポリシを評価することを含むことができる。
【００１６】
少なくともいくつかの実施形態では、ホストシステムにおけるＶＭＭは、それぞれのホストシステムにおけるＶＭ（リソースインスタンス）のプライベートＩＰアドレスを認識する。少なくともいくつかの実施形態では、リソースインスタンス（または、後述するような他のリソース識別子）についてのアイデンティティがプライベートＩＰアドレス情報に関連し、これによりＶＭＭは、論理的にローカルなまたはプライベートなリソースインスタンスのアイデンティティも認識または発見することができる。
【００１７】
本明細書に使用されるようなプライベートＩＰアドレスが、プロバイダネットワークにおけるリソースインスタンスの内部ネットワークアドレスを指すことに留意されたい。プロバイダネットワーク外部で発生したネットワークトラフィックは、プライベートＩＰアドレスに直接には伝送されない。代わりに、トラフィックは、リソースインスタンスのプライベートＩＰアドレスにマッピングされたパブリックＩＰアドレスを使用する。本明細書に使用されるようなパブリックＩＰアドレスは、サービスプロバイダまたはクライアントのいずれかによってプロバイダネットワークにおけるリソースインスタンスに割り当てられたプロバイダネットワークのインターネットルーティング可能なネットワークアドレスである。プロバイダネットワークのパブリックＩＰアドレスに伝送されるトラフィックは、例えば、１：１ネットワークアドレス変換（ＮＡＴ）を通じて変換し、プロバイダネットワークにおけるリソースインスタンスのそれぞれのプライベートＩＰアドレスに転送することができる。本明細書に使用されるような所与のプライベートＩＰアドレスが、必ずしもパブリックＩＰアドレスにマッピングされないことに留意されたい。
【００１８】
本明細書に使用されるようなプライベートＩＰアドレスは、必ずではないが、通常、例えば、プロバイダネットワークもしくはそのサブネットワーク内、またはプロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装内のみにおいてルーティング可能な非インターネットルーティング可能なＩＰアドレス（例えば、ＲＦＣ１９１８アドレス）であってもよい。しかしながら、いくつかの実施では、プライベートＩＰアドレスは、それ自体がインターネットルーティング可能なアドレスであってもよい。言い換えれば、クライアントは、プロバイダネットワークにおけるクライアントのリソースインスタンスにおいて、及びプロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装内において、インターネットルーティング可能なアドレスまたは非ルーティング可能なアドレスを使用することができる。少なくともいくつかの実施形態では、クライアントは、プライベートネットワークにおいて使用されるクライアントのプライベートアドレス指定スキームに従いプライベートＩＰアドレスを特定のリソースインスタンに割り当てる、及び／または（サービスプロバイダによってクライアントに割り当てられた）パブリックＩＰアドレスを、クライアントのプライベートＩＰアドレスまたはそのレンジにマッピングまたは再マッピングすることによって、クライアントの仮想プライベートネットワーク内のリソースインスタンスのアクセス及びアドレス指定を制御することができる。所与の仮想プライベートネットワークにおけるリソースインスタンスの少なくともいくつかのプライベートＩＰアドレスが、必ずしもパブリックＩＰアドレスにマッピングされないことに留意されたい。
【００１９】
図１は、少なくともいくつかの実施形態に従う、オーバーレイネットワーク接続におけるアクセス制御方法の高レベルフローチャートである。方法は、例えば、ホストシステムにおける一つ以上の仮想マシンインスタンス（ＶＭ）の代わりにカプセル化層の機能性を実行する、ホストシステムにおける仮想マシンモニタ（ＶＭＭ）によって、ネットワークのカプセル化層における一つ以上のプロセスによって実行し、オーバーレイネットワークカプセル化プロトコルに従い他のエンティティへのパケットフロー（例えば、オーバーレイネットワークパス）を構築することができる。
【００２０】
１００に示すように、カプセル化層プロセス（例えば、ＶＭＭ）は、ソース（例えば、ホストシステムにおけるＶＭ）からネットワークパケットを取得する。ネットワークパケットは、ターゲットを示すことができる。例えば、パケットは、ターゲットアドレス（例えば、クライアントリソースインスタンスのＩＰアドレス）を含むことができる。１０２に示すように、カプセル化層プロセスは、ターゲットについてのオーバーレイネットワークマッピング情報を取得することができる。少なくともいくつかの実施形態では、オーバーレイネットワーク情報は、基板ネットワークにおけるパケットについての、カプセル化層宛先の少なくともＩＰアドレス（例えば、ターゲットＶＭを率いるＶＭＭ）を含むことができる。少なくともいくつかの実施形態では、カプセル化層プロセスは、マッピング情報を取得するためのマッピングサービスにアクセスすることができる。しかしながら、いくつかの実施形態では、ターゲットについてのマッピング情報は、マッピングサービスから一旦取得すると、その後、ローカルキャッシュから取得することができる。実施例のマッピングサービスは、例えば、図２及び図１０を参照してさらに後述する。
【００２１】
１０４に示すように、適用可能なポリシを、ソース及び／またはターゲットのアイデンティティに従い決定することができる。１０６に示すように、ソース及びターゲットを、ソースからターゲットまでの接続を許可するか否かを決定するためのポリシに従い評価することができる。少なくともいくつかの実施形態では、要素１０４及び１０６は、ネットワークにおけるアクセス制御サービスによって実行することができる。少なくともいくつかの実施形態では、カプセル化層プロセスは、アクセス制御サービスを使用して、アプリケーションプログラミングインターフェース（ＡＰＩ）を通じて、要素１０４及び１０６を実行するためのサービスに通信する。
【００２２】
１０８においてソースからターゲットまでの接続がポリシに従い許可された場合には、１１０に示すように、ポリシに従いソースからターゲットまでの接続（例えば、オーバーレイネットワークパス）を生成し、１１２に示すように、ネットワークパケットを、ソースからオーバーレイネットワークパスを通じてターゲットに送信することができる。いくつかの実施形態では、オーバーレイネットワークパスの生成は、カプセル化メタデータが、カプセル化層におけるオーバーレイネットワーク宛先、例えば、プロバイダネットワークにおける別のＶＭＭにパケットを伝送するための情報を含むオーバーレイネットワークのカプセル化プロトコルに従いネットワークパケットをカプセル化することによって実行される。カプセル化層宛先において、カプセルがネットワークパケットから取り除かれ、オリジナルのネットワークパケットがターゲット（例えば、それぞれのホストシステムにおけるＶＭ）に供給される。
【００２３】
１０８においてソースからターゲットまでの接続がポリシに従い許可されない場合には、１１４に示すように、ネットワークパケットを、カプセル化層プロセスによって無視及び廃棄することができる。いくつかの実施形態では、カプセル化層プロセス（例えば、ＶＭＭ）は、接続が許可されなかったことをソース（例えば、それぞれのホストシステムにおけるソースＶＭ）に通知しない。いくつかの実施形態では、カプセル化層プロセスは、例えば、それぞれのＶＭを所有するクライアントまたは顧客に報告するための報告目的のために、許可されない接続リクエストをログまたは記録することができる。しかしながら、いくつかの実施形態では、カプセル化層プロセスは、接続が許可されなかったソースに通知することができる。例えば、ＶＭ及びそのオペレーティングシステムによって利用される既存のセキュリティプロトコルとの互換性を無効にしない方式で「アクセスが拒否された」メッセージをソースＶＭに通知するために、Ｇｅｎｅｒｉｃ  Ｓｅｃｕｒｉｔｙ  Ｓｅｒｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ（ＧＳＳＡＰＩ、ＧＳＳ−ＡＰＩとも）などの論理帯域外のセキュリティプロトコルを、ＶＭＭによって利用することができる。
【００２４】
少なくともいくつかの実施形態では、要素１０２〜１０８は、ソースとターゲットとの間の所与のパケットフローにおいて第一のネットワークパケットについてのみ実行してもよい。１１２に示すように、所与のパケットフローまたは論理接続におけるそれに続くネットワークパケットを、各ネットワークパケットについてのポリシを評価せずに、オーバーレイネットワークカプセル化プロトコルを通じてターゲットに送信することができる。
【００２５】
仮想ネットワークにおけるアクセス制御のための方法及び装置の実施形態は、例えば、図２に図示するような、サービスプロバイダのプロバイダネットワーク２００において実装される仮想化リソース（例えば、仮想化コンピューティング及びストレージリソース）を、インターネットなどの中間ネットワークを通じてクライアントまたは顧客に提供するサービスプロバイダの文脈において実施することができる。図９〜図１３及び「実施例のプロバイダネットワーク環境」という表題が付けられたセクションに、本明細書に記述するような方法及び装置の実施形態を実施できる実施例のサービスプロバイダネットワーク環境をさらに図示及び記述する。図２を参照するように、少なくともいくつかの実施形態では、プロバイダネットワーク２００Ａを通じてサービスプロバイダのクライアントに提供されるリソースの少なくともいくつかは、他のクライアント（複数可）と共有されるマルチテナントハードウェア、及び／または特定のクライアントに専用のハードウェアにおいて実装される仮想化コンピューティングリソースであってもよい。各々の仮想化コンピューティングリソースは、リソースインスタンス２１４と称され得る。リソースインスタンス２１４は、例えば、サービスプロバイダのクライアント（または、テナント）にレントまたはリースすることができる。例えば、サービスプロバイダのクライアントは、インターネットなどの中間ネットワーク２５０を通じて、プロバイダネットワーク２００Ａに連結された外部クライアントデバイス（複数可）２６０によって、サービスについてのＡＰＩを通じてプロバイダネットワーク２００Ａの一つ以上のサービスにアクセスしてリソースインスタンス２１４を取得及び構成し、図１２及び図１３に図示するようなクライアントの仮想プライベートネットワークなどの、リソースインスタンス２１４を含む仮想ネットワーク構成を構築及び管理することができる。
【００２６】
図２に示すように、いくつかの実施では、サービスプロバイダは、必ずではないが、互いに異なる、場合によっては地理的に離れたデータセンタに実装できる二つ以上のプロバイダネットワーク２００（プロバイダネットワーク２００Ａ及び２００Ｂを示す）を有することができる。二つのプロバイダネットワーク２００は、例えば、光ファイバ接続などの一つ以上の直接通信リンク２０８によって連結することができる。例えば、代わりにまたはそれに加えて、二つのプロバイダネットワーク２００は、中間ネットワーク２５０を通じて通信することができる。
【００２７】
リソースの少なくともいくつかのインスタンス２１４は、例えば、ホスト２１０のコンピュータ、すなわち、ホスト２１０における仮想マシン（ＶＭ）において複数のオペレーティングシステムを同時に実行できるハードウェア仮想化テクノロジに従い実装することができる。ハイパーバイザ、またはホスト２１０における仮想マシンモニタ（ＶＭＭ）２１２が、ホスト２１０におけるＶＭ２１４を仮想プラットフォームに提示し、ＶＭ２１０の実行をモニタする。各ＶＭ２１４には一つ以上のプライベートＩＰアドレスが提供され、それぞれのホスト２１０におけるＶＭＭ２１２は、ホスト２１０におけるＶＭのプライベートＩＰアドレス２１４を認識することができる。ハードウェア仮想化テクノロジについてのさらなる情報は、図９〜図１３を参照されたい。
【００２８】
プロバイダネットワーク２００Ａは、例えば、ルータ、スイッチ、ネットワークアドレス変換器（ＮＡＴ）などのネットワーキングデバイスを含むネットワーク基板２０２、並びにデバイス間の物理接続を含むことができる。ＶＭＭ２１２は、ネットワーク基板２０２における他のデバイス及びプロセスとともに、ソフトウェアで定義されたネットワークまたはＳＤＮとも称され得るオーバーレイネットワークを、プロバイダネットワーク２００に生成することができる。オーバーレイネットワークの生成及び管理は、例えば、制御プレーンにおけるサービスまたは他のプロセスの一つ以上のＡＰＩを呼び出すことによって、プロバイダネットワーク２００の制御プレーンによって実行することができる。少なくともいくつかの実施形態では、ＶＭＭ２１２及び他のデバイスまたはプロセスは、カプセル化プロトコル技術を使用して、ネットワークパケット（例えば、クライアントＩＰパケット）をカプセル化し、そしてプロバイダネットワーク２００Ａ内の種々のホスト２１０におけるクライアントリソースインスタンス２１４間のネットワーク基板２０２にわたって、ネットワークデバイス２０４などの、プロバイダネットワークにおける他のデバイスもしくはサブネットワーク、または他のプロバイダネットワーク２００における他のデバイスもしくはクライアントリソースインスタンスにそれを伝送することができる。ネットワーク基板２０２においてカプセル化プロトコル技術を使用して、パス２０６または経路を通じて、カプセル化されたパケット（ネットワーク基板パケット）を、ネットワーク基板２０２におけるエンドポイント間、または他のプロバイダネットワーク２００におけるエンドポイントに伝送することができる。カプセル化プロトコル技術は、ネットワーク基板２０２においてオーバーレイされ、それ故に、「オーバーレイネットワーク」と称される、可能性として異なるアドレス指定及びサブネット化スキームを持つ仮想ネットワークトポロジを提供するものとみなすことができる。少なくともいくつかの実施形態では、カプセル化プロトコル技術は、マッピングサービス２２０を含むことができ、このサービスは、ＩＰオーバーレイアドレス（プロバイダネットワーク２００における他のクライアントまたは顧客のトポロジとは分離し得る、プロバイダネットワーク２００のクライアントまたは顧客によって利用されるようなＩＰアドレス）を、基板ＩＰアドレス（通常、プロバイダネットワーク２００のクライアントまたは顧客に公開されない基礎的なネットワーキングインフラストラクチャによって利用されるＩＰアドレス）にマッピングするマッピングディレクトリを維持し、そしてネットワーク基板２０２におけるエンドポイント間にパケットを伝送するための、プロバイダネットワーク２００におけるさまざまなプロセスによってアクセスすることができる。オーバーレイネットワークをネットワーク基板に実装するための、カプセル化プロトコルを使用する仮想ネットワーク技術の実施例の実施及びそれについてのさらなる情報は、図９〜図１３を参照されたい。
【００２９】
ホスト２１０におけるクライアントリソースインスタンス２１４は、伝送制御プロトコル（ＴＣＰ）などのコネクション型プロトコル、及び／またはユーザデータグラムプロトコル（ＵＤＰ）もしくはインターネット制御メッセージプロトコル（ＩＣＭＰ）などのコネクションレスプロトコルに従い、同じホスト２１０または異なるホスト２１０における他のクライアントリソースインスタンス２１４と通信することができる。しかしながら、クライアントパケットは、送信ＶＭＭ２１２によってカプセル化プロトコルに従いカプセル化され、そのカプセル化プロトコルに従い、ネットワーク基板パケットとしてネットワーク基板２０２にわたって送信され、受信ＶＭＭ２１２によってカプセル除去される。少なくともいくつかの実施形態では、ネットワーク基板２０２において使用されるカプセル化プロトコルは、コネクションレスプロトコルであってもよい。しかしながら、いくつかの実施形態では、カプセル化プロトコルは、コネクション型プロトコルであってもよい。ホスト２１０におけるＶＭＭ２１２は、ホスト２１０におけるクライアントリソースインスタンス２１４からクライアントパケット（例えば、ＴＣＰまたはＵＤＰパケット）を受信し、別のクライアントリソースインスタンス２１４のネットワークアドレスをターゲットにすると、カプセル化プロトコルに従いクライアントパケットをカプセル化またはタグ付けし、（本明細書においてカプセル化パケットとも称され得る）ネットワーク基板パケットを、供給のためにネットワーク基板２０２に送信する。次に、ネットワーク基板パケットを、カプセル化プロトコルパケットのヘッダにおける情報に従い、ネットワーク基板２０２を通じて別のＶＭＭ２１２に伝送することができる。他のＶＭＭ２１２は、クライアントパケットからカプセル化データを取り除き、クライアントパケット（例えば、ＴＣＰまたはＵＤＰパケット）を、ターゲットリソースインスタンス２１４を実装する、ホスト２１０における適切なＶＭに供給する。いくつかの実施では、効率の増大または他の理由のために、二つ以上のクライアントパケットを単一のネットワーク基板パケットにカプセル化できることに留意されたい。通常、二つ以上のクライアントパケットは、同一のターゲット（例えば、同一のリソースインスタンス２１４）に導かれ得る。しかしながら、いくつかの実施では、クライアントパケットについての、ネットワーク基板２０２におけるターゲットアドレス（例えば、特定のホスト２１０におけるＶＭＭ２１２）が同一であるならば、種々のターゲット（例えば、種々のリソースインスタンス２１４）に導かれる二つ以上のクライアントパケットを、共に、単一のネットワーク基板パケットにカプセル化することができる。
【００３０】
少なくともいくつかの実施形態では、ＶＭＭ２１２は、それぞれのホスト２１０におけるリソースインスタンス２１４から、ターゲットに導かれるネットワークパケットを受信すると、ＩＰオーバーレイアドレスを基板ＩＰアドレスにマッピングする、プロバイダネットワーク２００のマッピングサービス２２０にアクセスして、ネットワークパケットをネットワーク基板２０２における適切なエンドポイントに伝送する。例えば、ターゲットは、別のリソースインスタンス２１４であってもよく、エンドポイントは、ターゲットリソースインスタンスをホストする、ネットワーク基板２０２における別のＶＭＭ２１２であってもよい。別の実施例として、ターゲットが、外部デバイス２６０であってもよく、エンドポイントが、ネットワークデバイス２０４であってもよい。
【００３１】
仮想ネットワークにおけるアクセス制御のための方法及び装置の実施形態では、ターゲットについてのＩＰオーバーレイアドレスを決定するためにマッピングサービス２２０にアクセスすることに加えて、ＶＭＭ２１２は、プロバイダネットワーク２００のアクセス制御サービス２３０にも通信することができる。このサービスは、ソースリソースインスタンス２１４及び／またはネットワークパケットのターゲットに関連する一つ以上のポリシが存在するか否かを決定し、そしてポリシが存在する場合には、そのポリシ（複数可）が、ソースリソースインスタンス２１４からターゲットまでの接続を許可または否定するかを決定することができる。ＶＭＭ２１２は、接続が許可されたことをアクセス制御サービス２３０が示す場合にのみ接続を達成する。少なくともいくつかの実施形態では、ポリシは、接続についての一つ以上の条件、例えば、ターゲットへの接続が許可されたポート番号、及び／またはターゲットとの通信が許可されたネットワークプロトコルも指定することができる。別の実施例として、少なくともいくつかの実施形態では、クライアントは、任意のメタデータタグを規定し、メタデータタグを特定のリソースインスタンス２１４に関連付けることができる。ポリシにこれらのメタデータタグを使用する実施例として、共に同一のメタデータタグを有する二つのリソースインスタンス２１４間のネットワークトラフィックのみを許可するポリシ条件を指定することができる。例えば、ポリシは、両方のリソースインスタンスがタグ「経理部」を有する場合にのみ許可されるようにネットワークトラフィックを定めることができる。
【００３２】
少なくともいくつかの実施形態では、接続の達成には、ネットワークパケットをカプセル化し、カプセル化パケットをネットワーク基板２０２に送信し、それ故に、ソースリソースインスタンス２１４とターゲットとの間の、ネットワーク基板２０２にわたるパス２０６を構築するＶＭＭ２１２が必要となる。接続が許可されていないことをアクセス制御サービス２３０が示す場合には、ＶＭＭ２１２は、ソースからターゲットまでの接続を達成しない。言い換えれば、ＶＭＭ２１２は、ネットワークパケットをカプセル化しないし、カプセル化パケットをネットワーク基板２０２に送信しない。それ故に、ソースリソースインスタンス２１４とターゲットとの間の、ネットワーク基板２０２にわたるいかなるパス２０６も構築しない。いくつかの実施形態では、マッピングサービス２２０の機能性とアクセス制御サービス２３０の機能性とを、プロバイダネットワーク２００における単一のサービスに組み合わせることができることに留意されたい。
【００３３】
少なくともいくつかの実施形態では、（プリンシパルと称され得る）アイデンティティを、リソースインスタンス２１４に割り当てる、さもなければそれに関連付け、そしてプリンシパルを、リソースインスタンス２１４についてのポリシの識別及び施行に使用することができる。プリンシパルは、例えば、ユーザ、グループ、ロールまたはアイデンティティ及びアクセス管理システムもしくは環境内の他のエンティティであってもよい。言い換えれば、これらに限定されないが、ユーザ、グループ及びロールプリンシパルタイプを含む、種々のタイプのプリンシパルが存在してもよい。少なくともいくつかの実施形態では、プリンシパルのリソースインスタンス２１４への割り当て、ポリシ識別及び施行におけるプリンシパルの使用に加えて、リソースインスタンス２１４の他の特性または条件、例えば、階層ネームスペース内のインスタンス名、ユーザ定義のメタデータタグ、ＩＰアドレス、アカウント識別子などを使用して、リソースインスタンス２１４を識別し、リソースインスタンスについてのポリシを識別し、そして識別したポリシを施行することができる。集合的に、リソースインスタンス２１４を識別するのに使用できるこれらのさまざまな方式（例えば、プリンシパル、ネーム、メタデータタグ、アカウント識別子、ＩＰアドレスなど）は、リソース識別子と称され得る。
【００３４】
それ故に、広く言えば、リソースインスタンス２１４に関連付けられたさまざまなタイプのリソース識別子を使用して、リソースインスタンス２１４についてのポリシを識別して施行することができる。特定の実施例として、少なくともいくつかの実施形態では、アクセス制御サービス２３０によって施行される少なくともいくつかのポリシは、個々のリソースインスタンス２１４ではなく、リソースインスタンス２１４全体が担い得るロールに対して定義し、それに関連付けることができる（ロールが、アイデンティティ及びアクセス管理環境におけるプリンシパルのタイプであってもよいことに留意されたい）。少なくともいくつかの実施形態では、クライアントは、プロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装２００内のリソースインスタンス２１４についての一つ以上のロール、及び一つ以上のロールの各々についてのポリシを定義することができる。その結果、クライアントのリソースインスタンス２１４の一つ以上は、一つ以上のロールを担うことができる。
【００３５】
「ロール」プリンシパルタイプを、通常、仮想ネットワークにおけるアクセス制御のための方法及び装置の実施形態を記述する実施例として下文に使用するが、本明細書に記述するようなアクセス制御のための方法及び装置が、他のタイプのプリンシパル（例えば、ユーザ、グループなど）、及び／または他のタイプのリソース識別子（ネーム、メタデータタグ、アカウント識別子、ＩＰアドレスなど）も利用できることに留意すべきである。
【００３６】
ロールについてのポリシは、例えば、そのロールにおけるリソースインスタンス２１４が通信を開始できる一つ以上の他のネットワークグループまたはエンティティを示すことができる。例えば、ロールについてのポリシは、そのロールを担うクライアントのリソースインスタンス２１４が通信を開始できる、プロバイダネットワーク２００におけるサブネットであって、それぞれのクライアントの一つ以上の他のリソースインスタンス２１４をその各々が含む一つ以上のサブネットを示すことができる。プロバイダネットワークにおけるサブネットについてのそれ以上の情報については、図１２及び図１３を参照されたい。あるいは、ロールについてのポリシは、ロールにおけるリソースインスタンス２１４が通信を開始できない一つ以上の他のネットワークグループまたはエンティティを示すことができる。ロールについてのポリシは、ロールにおけるリソースインスタンス２１４との通信の開始を許可されない一つ以上の他のネットワークグループまたはエンティティも示すことができる。少なくともいくつかの実施形態では、ポリシは、接続についての一つ以上の条件、例えば、ロールにおけるリソースインスタンスからターゲットまでの接続が許可されたポート番号、及び／または接続が許可されたネットワークプロトコルも指定することができる。別の実施例として、リソースインスタンス２１４に関連付けられたメタデータタグを、ポリシ条件に使用することができる。ポリシにおいてこれらのメタデータタグを使用する実施例として、共に同一のメタデータタグを有する二つのリソースインスタンス２１４間のネットワークトラフィックのみを許可するポリシ条件を指定することができる。図４Ａ及び図４Ｂは、ポリシについての一般形式の非限定的な実施例を提供する。図５Ａ及び図５Ｂは、少なくともいくつかの実施形態において使用できるポリシの非限定的な実施例を提供する。
【００３７】
少なくともいくつかの実施形態では、ＶＭＭ２１２は、ホスト２１０におけるリソースインスタンス２１４のプライベートＩＰアドレスの認識に加えて、ホスト２１０におけるリソースインスタンス２１４が担ったロールを認識するまたは見出すこともできる。ＶＭＭ２１２は、リソースインスタンス２１４が担ったロールを決定すると、アクセス制御サービス２３０と通信して、ロールに関連するポリシが存在するか否かを決定し、そしてポリシが存在する場合には、ネットワークパケットによって示されるターゲットまでの接続が許可されているか否かを決定することができる。ロールに関連するポリシが存在する場合には、アクセス制御サービス２３０は、ポリシを評価してソースリソースインスタンス２１４からターゲットまでの接続が許可されているか否かを決定し、接続が許可されたか否かに関してＶＭＭ２１２に通知することができる。
【００３８】
少なくともいくつかの実施形態では、ターゲットは、ロールに関連付けることもできる。例えば、ターゲットは、異なるホスト２１０における別のクライアントのリソースインスタンス２１４、それ故に、異なるＶＭＭ２１２によって率いられるリソースインスタンス２１４であってもよく、クライアントは、ポリシを持つようにロールを定義し、ターゲットリソースインスタンス２１４は、そのロールを担うことができた。少なくともいくつかの実施形態では、ソースからターゲットまでの接続を許可するか否かを決定するための、ソースリソースインスタンス２１４が担ったロールについてのポリシの評価に加えて、ソースからターゲットまでの接続を許可するか否かを決定するために、ターゲットが担ったロールのポリシも評価することができる。例えば、ターゲットのロールに関連するポリシが、ソースリソースインスタンス２１４が位置するサブネットから、ロールにおけるリソースインスタンスまでの接続を許可しないことを示す場合には、その結果、ソースに関連するポリシが、ターゲットまでの接続を許可することを示す場合でさえも、ソースからターゲットまでの接続は許可されない。別の実施例として、ターゲットのロールのポリシは、特定の他のロールにおけるリソースインスタンスからの接続を許可する（または、それからの接続を許可しない）ことを示すことができる。言い換えれば、そしてより大まかに言えば、ソース及びターゲットの両方に関連するポリシが存在する場合には、接続を許可する前に、両方のポリシにおいて承諾される必要がある。
【００３９】
前述では、クライアントのソースリソースインスタンス２１４と、ネットワーク基板２０２にわたる、プロバイダネットワーク２００におけるクライアントの仮想プライベートネットワーク内の、クライアントの別のリソースインスタンス２１４との間のアクセス制御の提供を概して記述したが、別のプロバイダネットワーク２００Ｂにおけるクライアントのリソースへの、直接通信リンク２０８を通じた接続を試みるときには、一つのプロバイダネットワーク２００Ａにおけるクライアントのソースリソースインスタンス２１４間のアクセス制御を提供する実施形態も使用できることに留意されたい。
【００４０】
さらに、アクセス制御方法の少なくともいくつかの実施形態では、プロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装２００外部のソースから、クライアントの仮想プライベートネットワーク内のリソースインスタンスまでのアクセスを制御するためのメカニズムを提供することができる。例えば、図２を参照するように、外部クライアントデバイス２６０が、ネットワークパケットを、プロバイダネットワーク２１０におけるクライアントのリソースインスタンス２１４（ターゲット）に送信することを所望することがある。外部デバイス２６０のネットワークパケット（複数可）は、ネットワーク基板２０２に連結されたネットワークデバイス２０４において受信することができる。少なくともいくつかの実施形態では、外部デバイス２６０及びネットワークデバイス２０４は、帯域内ネットワークセキュリティプロトコルを利用して、プロバイダネットワーク２００における外部デバイス２６０についてのアイデンティティを構築することができる。例えば、少なくともいくつかの実施形態では、Ｇｅｎｅｒｉｃ  Ｓｅｃｕｒｉｔｙ  Ｓｅｒｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ（ＧＳＳＡＰＩ、ＧＳＳ−ＡＰＩとも）に従うネットワークプロトコルを使用して、プロバイダネットワーク２００における外部デバイス２６０に関連する安全なアイデンティティ（すなわち、プリンシパル）を構築することができる。次に、ネットワークデバイス２０４は、外部デバイス２６０の構築されたアイデンティティ及び／またはターゲット（リソースインスタンス２１４）のアイデンティティを使用して、オーバーレイネットワークを通じる、外部デバイス２６０とターゲットとの間の接続についてのポリシを評価することができる。ポリシに従い接続が許可されない場合には、その結果、ネットワークパケットは、ドロップされ得る。接続が許可された場合には、その結果、ネットワークデバイス２０４は、カプセル化プロトコルに従いネットワークパケットをカプセル化し、カプセル化パケットを、そのＶＭＭ２１２を通じてターゲットリソースインスタンス２１４に供給するためにネットワーク基板２０２に送信することができる。
【００４１】
実施例として、外部デバイス２６０は、ネットワークデバイス２０４を用いてアイデンティティを構築し、ネットワークパケットを、特定のリソースインスタンス２１４に導くように（または、クライアントのリソースインスタンスについてのアドレスレンジまで）送信することができる。マッピングサービス２２０を通じて有効なアドレス（複数可）を構築した後、ネットワークデバイス２０４は、アクセス制御サービス２３０と通信して、リソースインスタンス（複数可）２１４に関連するポリシが存在するか否かを決定することができる。ポリシが存在する場合には、ポリシを評価して、内部リソースインスタンス（複数可）２１４（ターゲット）と通信するための認可を外部デバイス２６０（ソース）が有するか否かを決定することができる。例えば、ターゲットリソースインスタンス（複数可）（または、リソースインスタンス（複数可）が担ったロール）に関連するポリシは、特定のＩＰアドレスから、ＩＰアドレスの特定のレンジから、かつ／またはＧＳＳＡＰＩなどのネットワークプロトコルを通じて構築されたような特定のプリンシパルから、リソースインスタンス（複数可）（または、ロールにおけるリソースインスタンス（複数可））までのアクセスを許可することができる。代わりにまたはそれに加えて、ポリシは、特定のプリンシパル、ＩＰアドレス及び／またはＩＰアドレスのレンジ（複数可）からのアクセスを否定することができる。ポリシがアクセスを許可した場合には、その結果、ネットワークデバイス２０４からターゲットリソースインスタンス（複数可）２１４までの接続（すなわち、図２のパス２０６Ｅなどのオーバーレイネットワークパス）を構築することができる。
【００４２】
さらに、アクセス制御方法の少なくともいくつかの実施形態は、クライアントのリソースインスタンス２１４、またはクライアントのリソースインスタンス２１４が担ったロールに関連するポリシを使用する、クライアントの仮想プライベートネットワーク内のリソースインスタンス２１４から開始され、クライアントの仮想プライベートネットワーク外部のターゲットまでのアクセスを制御するための同様のメカニズムを提供することができる。さらに、クライアントの仮想プライベートネットワーク内から、クライアントの仮想プライベートネットワーク外部のターゲットまでの接続を許可するか否かを決定するときに、ターゲットに関連するポリシを評価することができる。クライアントの仮想プライベートネットワーク外部のターゲットは、例えば、外部クライアントデバイス２６０、クライアントの別の仮想プライベートネットワークにおけるリソースインスタンス２１４もしくは別のクライアントのリソースインスタンス、またはプロバイダネットワーク２００におけるネットワークデバイス２０４もしくはいくつかの他のデバイスであってもよい。
（アクセス制御サービス）
【００４３】
図３は、少なくともいくつかの実施形態に従う、プロバイダネットワーク３００におけるアクセス制御サービス３３０を図示する。少なくともいくつかの実施形態では、アイデンティティ並びにネットワークにおけるアクセス制御のためのポリシ管理及び施行を、アクセス制御サービス３３０によって少なくとも部分的に提供することができる。アクセス制御サービス３３０は、ネットワーク環境内の一つ以上のコンピューティングシステムにまたはそれによって、例えば、図２に図示するようなサービスプロバイダのプロバイダネットワーク環境におけるサービスとして実装することができる。アクセス制御サービス３３０の実施形態を実施できる実施例のコンピュータシステムを、図１４に図示する。アクセス制御サービス３３０は、サービス３３０の機能性にアクセスするための一つ以上のアプリケーションプログラミングインターフェース（ＡＰＩ）３３２を提供することができる。しかしながら、アクセス制御サービス３３０についての、本明細書に記述する機能性を、代わりに、二つ以上の別個のサービスによっても実行できることに留意されたい。さらに、アクセス制御サービス３３０の機能性の少なくとも一部は、本明細書の他の部分に記述するように、ネットワークにおける別のサービス、例えば、マッピングサービス２２０と統合することができる。いくつかの実施形態では、アクセス制御サービス３３０は、論理的に統一されたサービス３３０を提供するために互いに通信する、ネットワークにおける他のノードにわたって分配された協同ソフトウェアモジュールのセットとして実施することができる。言い換えれば、サービス３３０は、分散システムとして実施することができる。
【００４４】
少なくともいくつかの実施形態では、図３に示すように、アクセス制御サービス３３０は、サービス３３０によって使用されるクライアントのアクセス制御情報、例えば、クライアントのプリンシパル、ロール、及びクライアントのリソースインスタンス３１４に関連するポリシに関連する情報を保存するためのデータストア３４０を含むことができる。アクセス制御サービス３３０は、データストア３４０におけるクライアントの情報をクライアント３８０が視認、生成、修正、削除、さもなければ管理できるＡＰＩ３３２Ｂを提供することができる。アクセス制御サービス３３０は、プロバイダネットワーク３００におけるクライアントの名前を付けられたエンティティによって開始されたアクション、例えば、クライアントのリソースインスタンス３１４によって開始されたターゲットエンティティへの接続リクエストについてのポリシ評価を、プロセスまたはデバイス（例えば、ホスト３１０におけるＶＭＭ３１２、ネットワークデバイス（複数可）３０４、他のサービスなど）がリクエストできるＡＰＩ３３２Ａも提供することができる。アクセス制御サービス３３０は、ポリシ評価モジュール３３４を含み、このモジュール３３４は、ＡＰＩ３３２Ａを通じてポリシ評価リクエストを受信し、データストア３４０における関係のあるアクセス制御情報に従いリクエストを評価し、ポリシ評価の結果を用いてリクエストの生成元（例えば、ＶＭＭ３１２またはプロバイダネットワーク３００における他のプロセスもしくはデバイス）に応答することができる。
【００４５】
前述のリソース識別子は、リソースインスタンス３１４に関連付けられ得ると、リソースインスタンス３１４についてのポリシの識別及び施行において、アクセス制御サービスによって使用することができる。リソース識別子は、例えば、プリンシパル、リソース名、メタデータタグ、アカウント識別子、ＩＰアドレス、またはリソースインスタンス３１４の一般の任意の特性もしくは条件であってもよい。プリンシパルは、例えば、ユーザ、グループ、ロールまたはアイデンティティ及びアクセス管理環境内の他のエンティティであってもよい。ポリシは、リソース識別子の一つ以上に従い、リソースインスタンス３１４に関連付けることができる。少なくともいくつかの実施形態では、ポリシは、ユーザプリンシパルタイプに従うネームベースのリソース識別子またはユーザアイデンティティなどのユニークな属性または識別子に従い、個々のリソースインスタンス３１４に関連付けることができる。
【００４６】
少なくともいくつかの実施形態では、ネームベースのリソース識別子は、ネームスペース内のリソースをユニークに識別することができる。以下は、少なくともいくつかの実施形態において使用できる、ネームベースのリソース識別子についての一般形式の非限定的な実施例である。
＜ｎａｍｅｓｐａｃｅ＞：＜ｏｗｎｅｒ＞：＜ｒｅｓｏｕｒｃｅ  ｔｙｐｅ＞：＜ｒｅｓｏｕｒｃｅ  ｎａｍｅ＞
( ＜ｎａｍｅｓｐａｃｅ＞は、プロバイダネットワーク３００におけるこのリソースインスタンスに提供されたサービスを識別することができる。例えば、本明細書に記述するＶＭまたはリソースインスタンス３１４においては、サービスは、図１１に示すようなサービス１１２０などのハードウェア仮想化サービスであってもよい。
( ＜ｏｗｎｅｒ＞は、このリソースインスタンスを所有する顧客またはサービスプロバイダのクライアントを識別することができる。
( ＜ｒｅｓｏｕｒｃｅ  ｔｙｐｅ＞は、サービスによって提供され得る（すなわち、ネームスペース内の）種々のタイプのリソースを他のリソースから区別するのに使用できる。
( ＜ｒｅｓｏｕｒｃｅ  ｎａｍｅ＞は、例えば、この特定のリソースについての顧客またはクライアントによって指定された英数字の文字列であってもよい。いくつかの実施形態では、リソース名は、パスであってもよい。リソース名は、ネームベースのリソース識別子の他の要素によって定義されたスペース内においてユニークであるはずである。
【００４７】
少なくともいくつかの実施形態では、ネームベースのリソース識別子などのユニークな属性または識別子によってポリシを個々のリソースインスタンス３１４に関連付ける代わりにまたはそれに加えて、ポリシを、二つ以上のエンティティ（例えば、リソースインスタンス３１４）を含み得るグループ、集合またはカテゴリに関連付けることができる。前述のように、プリンシパルは、グループプリンシパルタイプ及びロールプリンシパルタイプを含むことができる。本明細書に使用されるようなグループは、リソースまたはプリンシパル（例えば、リソースインスタンス３１４）の比較的固定的な集合である。クライアントまたは他のエンティティは、グループを定義し、グループにメンバ（例えば、リソースまたはプリンシパル）を明確に割り当てる（または、グループからメンバを移動させる）、あるいは、グループ構成員を明確に定義することができる。少なくともいくつかの実施形態では、アクセス制御サービス３３０によって施行されるポリシの少なくともいくつかは、個々のリソースまたは他のプリンシパルタイプではなく、グループに対して定義し、グループに関連付けることができる。少なくともいくつかの実施形態では、グループの定義には、グループ内のエンティティ（リソースまたはプリンシパル）を識別するポリシと、そのグループに関連する認可を指定する別のポリシとの二つのポリシを生成及び維持する必要が生じ得る。しかしながら、グループは、他のようにも定義することができる。
【００４８】
少なくともいくつかの実施形態では、アクセス制御サービス３３０は、プロバイダネットワーク３００におけるクライアントのリソースまたはプリンシパルについてのロールを定義し、そしてリソース及びプリンシパルにそのロールを担わせることもできる。グループ構成員がクライアントによって定義されかつ比較的固定的であるのに対して、エンティティ（例えば、リソースまたはプリンシパル）がロールを動的に担うことができるという点において、ロールはグループとは異なる。ロール「構成員」は、明確には定義されない。代わりに、エンティティがそのロールに属するまたはそれを担うことができるか否かを決定するために、エンティティ（例えば、プリンシパルまたはリソース）について動的に評価できる、ロールについての一つ以上の特性または条件を定義することができる。それ故に、例えば、リソースインスタンス３１４の一つ以上の特性の動的評価に基づいて、リソースインスタンス３１４にロールを担わせることができる。少なくともいくつかの実施形態では、アクセス制御サービス３３０によって施行されるポリシの少なくともいくつかは、個々のリソース、ユーザもしくはグループアイデンティティ、または他のプリンシパルタイプではなく、ロールに対して定義し、ロールに関連付けることができる。それ故に、リソース及びプリンシパルは、ロールを担うことができ、ロールは、ポリシを有することができる。リソース及びプリンシパルをロールから分離することによって、一つ、二つまたはそれ以上の信頼のあるエンティティ（例えば、リソースまたはプリンシパル）が、グループへの明示的かつ静的な割り当てではなく、信頼のあるエンティティの動的評価に基づいて一つ以上のロールを動的に担うことができるので、管理の柔軟性及び容易さを与えることができる。少なくともいくつかの実施形態では、ロールの定義には、エンティティについて評価された特性及び条件を識別して、エンティティがロールを担うことができるか否かを決定するためのポリシと、そのロールに関連する認可を指定する別のポリシとの二つのポリシを生成及び維持する必要が生じ得る。しかしながら、ロールは、他のようにも定義することができる。
【００４９】
図４Ａ及び図４Ｂは、ポリシについての一般形式の非限定的な実施例を提供する。図５Ａ及び図５Ｂは、少なくともいくつかの実施形態において使用できるポリシの非限定的な実施例を提供する。
【００５０】
図４Ａ及び図４Ｂは、少なくともいくつかの実施形態に従う、ポリシについての一般形式の非限定的な実施例を提供する。少なくともいくつかの実施形態では、ポリシ４００に関連付けることができる三つのタイプのエンティティが存在する。
( そのポリシが関連するエンティティ（例えば、プリンシパル）またはリソース。例えば、ポリシ４００は、クライアントによって定義されたロール、クライアントの特定の名前を付けられたリソースインスタンス、サブネット、グループ、または特定のユーザもしくはアカウントに関連付けることができる。一般に、ポリシは、アイデンティティ及びアクセス管理環境内の、並びに／または他のリソース（複数可）へのアクセス制御を施行できるネットワークにおける任意のプリンシパルまたはリソースに関連付けることができる。
( （ポリシ４００Ａにおける認可の＜ｒｅｓｏｕｒｃｅ（ｓ）＞フィールド、及びポリシ４００Ｂにおける認可の＜ｐｒｉｎｃｉｐａｌ（ｓ）＞フィールドにおいて指定されるような）ポリシ内のステートメント（複数可）が適用されるプリンシパル（複数可）またはリソース（複数可）。例えば、ポリシ内の特定のステートメントは、指定されたプリンシパル、リソースインスタンス、サブネット、ロール、グループ、アドレスレンジ、サービス、または通例、指定できる及びアクセス制御を施行できる、ネットワークにおける任意のエンティティもしくはリソースへの（特定のアクション（複数可）のための）アクセスを許可または拒否することができる。
( ポリシが評価されるエンティティ（複数可）。例えば、ＶＭＭまたは他のカプセル化層プロセスは、ポリシが関連する及びポリシによってアクセスを制御できるターゲット（例えば、別のリソースインスタンス）との通信を試みている、ロールを担った特定のリソースインスタンスの代わりに、ポリシ評価をリクエストすることができる。
【００５１】
ポリシ４００は、（例えば、関連するロールまたは他のプリンシパルについての）ポリシに関連するエンティティについての認可とその各々が称され得る一つ、二つまたはそれ以上のステートメントを含むことができる。各認可は、効果、一つ以上のアクション、及びポリシ４００Ａに示すような、許可された場合に（または、拒否が実行されなかった場合に）アクション（複数可）を実行できる一つ以上のリソース、またはポリシ４００Ｂに示すような、アクション（複数可）を実行するための認可が許可または拒否され得た一つ以上のプリンシパルのいずれかを指定することができる。認可は、必須ではないが、一つ以上の条件も含むことができる。
【００５２】
ポリシ４００Ａでは、指定されたリソースは、許可された場合に（または、拒否が実行されなかった場合に）アクション（複数可）を実行できるリソース（複数可）を示すことができる。言い換えれば、ポリシ４００Ａが関連するエンティティ（例えば、プリンシパル）またはリソースは、示されたリソース（複数可）におけるアクション（複数可）を実行するための認可が許可または拒否される。少なくともいくつかの実施形態では、示されたリソース（複数可）は、これらに限定されないが、ユーザ、グループ、サブネット、リソースインスタンス、ロール、サービスなどを含む、プロバイダネットワークにおけるエンティティ（例えば、プリンシパル）またはリソースであってもよい。少なくともいくつかの実施形態では、リソースは、前述のようなリソース識別子によって指定することができる。少なくともいくつかの実施形態では、ワイルドカードをリソース識別子に使用することができる。例えば、ネームベースのリソース識別子において、以下のようにアスタリスク（または、他の文字もしくは記号）を、ワイルドカードとして使用することができる。
＜ｎａｍｅｓｐａｃｅ＞：＜ｏｗｎｅｒ＞：＜ｒｅｓｏｕｒｃｅ  ｔｙｐｅ＞：*
ここでは、アスタリスクは、このネームスペース／オーナ／リソースタイプのすべての名前を付けられたリソースが、この認可ステートメントによって保護されていることを示す。
【００５３】
ポリシ４００Ｂでは、指定されたプリンシパル（複数可）は、アクション（複数可）を実行するための認可が許可または拒否され得るプリンシパル（複数可）を示すことができる。言い換えれば、示されたプリンシパル（複数可）は、ポリシ４００Ｂにおいて、エンティティ（例えば、プリンシパル）またはリソースにおいてアクション（複数可）を実行するための認可が許可または拒否されたものである。少なくともいくつかの実施形態では、示されたプリンシパル（複数可）は、ユーザ、グループ、サブネット、リソースインスタンス、ロール、サービスなどであってもよい。少なくともいくつかの実施形態では、リソースは、前述のようなリソース識別子によって指定することができる。
【００５４】
指定された一つ以上のアクションは、この特定の認可が適用される、指定されたリソース（複数可）またはプリンシパル（複数可）に関するアクションを示す。実施例として、ポリシ４００Ａについてのアクションは、このポリシ４００Ａに関連するリソースインスタンスに、（例えば、このポリシに関連するロールを担わせることによって）この認可によって指定されたリソース（複数可）へのオープン接続を（効力のあるフィールドにおいて許可された場合に）許可する「オープン接続」であってもよい。別の実施例として、ポリシ４００Ｂについてのアクションは、このポリシ４００Ｂに関連するリソースインスタンス（複数可）について、（例えば、このポリシに関連するロールを担わせることによって）この認可によって指定されたプリンシパルからの接続のアクセプトを（効力のあるフィールドにおいて許可された場合に）許可する「アクセプト接続」であってもよい。
【００５５】
効果は、指定されたアクション（複数可）に従いエンティティがアクセスをリクエストしたときに起こる事を指定する。特定の認可についての効果は、例えば、「許可」または「拒否」であってもよい。少なくともいくつかの実施では、「拒否」は、デフォルト、それ故に、効果として「許可」が指定されない限りは、エンティティまたはリソースについてのアクセスが拒否され得るものであってもよい。少なくともいくつかの実施形態では、「拒否」は、一つ以上のポリシを評価するときに「許可」を無効にする。つまり、特定のリソースまたはプリンシパルが、「許可」を指定するポリシ内のある認可によってアクションへのアクセスが付与されたが、アクションについて「拒否」を指定するポリシ内の別の認可（または、別のポリシ）によってそのアクションへのアクセスが拒否された場合には、評価結果は、アクセスの拒否となる。
【００５６】
条件は、存在する場合には、指定されたアクション（複数可）についての一つ以上の追加の条件を示すことができる。単なる一つの実施例として、「オープン接続」アクションについての条件は、接続が許可された特定のポート番号、または接続に使用できる（または、使用できない）特定のネットワークプロトコルであってもよい。例えば、接続を、指定されたリソースにおけるポートＮにのみ許可し、ＵＤＰパケットフローを、指定されたリソースにのみ許可することができる。他の実施例として、条件は、グローバルネームスペースにおけるリソース名、またはリソースの一つ以上のユーザ定義のメタデータタグなどのリソースの他の特性について評価することができる。例えば、接続は、指定された一つ以上のリソース、特定のリソース名（複数可）を持つ他のリソース、または特定のメタデータタグ（複数可）を持つ他のリソースについて許可（または、拒否）することができる。
【００５７】
さまざまなリソースへのアクセスを制御するための、さまざまなクライアントリソースについてのポリシを定義し、そして特定のリソースに関連する特定のアクションについての認可を指定するためのこれらの方法を使用して、クライアントは、プロバイダネットワークにおけるクライアントのリソース（例えば、クライアントの仮想プライベートネットワークにおけるリソース）についての複雑、完全かつ選択的なアクセス制御を開発することができる。単なる一つの実施例として、ロールを担うまたはグループに加入するすべてのリソースについて実行される特定のアクション（例えば、指定されたリソース（複数可）への「オープン接続」アクション）を許可（または、拒否）するが、複数のリソースのうちの特定のリソースについての複数のアクションのうちの特定のアクションを拒否（または、許可）する認可を含む、ロールまたはグループについてのポリシを定義することができる。
【００５８】
図５Ａ及び図５Ｂは、少なくともいくつかの実施形態に従う、プリンシパル（または、他のタイプのロール）またはリソースについて定義できるポリシの非限定的な実施例を提供する。図５Ａのポリシ５００Ａは、プリンシパル、またはプリンシパルが担うことができるロールに関連付けられ得、指定されたリソース（複数可）に関するプリンシパルについての認可を定義できるポリシの非限定的な実施例を提供する。図５Ｂのポリシ５００Ｂは、リソース、またはリソースが担うことができるロールに関連付けられ得、指定されたプリンシパル（複数可）に関するリソース（複数可）についての認可を定義できるポリシの非限定的な実施例を提供する。
【００５９】
ポリシ５００Ａ及び５００Ｂは、それぞれ、プリンシパル及びリソースについての特定の認可を定義する。ポリシ５００Ａは、ポリシ５００Ａに関連するプリンシパル（複数可）についての（選択的に、一つ以上の条件に従う）指定されたリソース（複数可）への「オープン接続」を許可する認可を含む。ポリシ５００Ａは、ポリシ５００Ａに関連するプリンシパル（複数可）についての指定されたリソース（複数可）への「オープン接続」を拒否する認可も含むことができる。指定されたリソースは、例えば、プロバイダネットワークにおけるリソースインスタンス、ロール、サブネット、またはいくつかの他のリソースであってもよい。場合によっては、ポリシ５００Ａにおける指定されたリソースが別のプリンシパルであってもよいことに留意されたい。ポリシ５００Ｂは、ポリシ５００Ｂに関連するリソースについての（選択的に、一つ以上の条件に従う）指定されたプリンシパル（複数可）からの「アクセプト接続」を許可する認可を含む。ポリシ５００Ｂは、ポリシ５００Ｂに関連するリソースについての指定されたプリンシパル（複数可）からの「アクセプト接続」を拒否する認可も含むことができる。指定されたプリンシパルは、例えば、別のリソースインスタンス、ロール、サブネット、ユーザ、またはいくつかの他のリソースであってもよい。
【００６０】
前述のように、少なくともいくつかの実施形態では、プリンシパル及びリソースがロールを担い、ポリシをロールに関連付けることができる。図５Ａ及び図５Ｂの実施例のポリシを使用して、ポリシ５００ＡをロールＡに関連付け、ポリシ５００ＢをロールＢに関連付けることができる。ロールＡを担うプリンシパルは、オーバーレイネットワークを通じた接続をオープンにすることが許可され得る、あるいは、ポリシ５００Ａにおける認可によって指定されたリソース（複数可）への接続をオープンにすることの認可が拒否され得る。さらに、指定されたリソース（複数可）は、ロール（複数可）を含む（または、それによって指定する）ことができる。例えば、複数のリソースのうちの特定の一つについての、指定されたリソース（複数可）への接続をオープンにすることの認可を拒否する、ポリシ５００Ａの第二の認可が示されない限り、ポリシ５００Ａの第一の（許可）認可は、ロールＡを担うプリンシパルについての、ロールＢを担うすべてのリソースへの接続をオープンにすることを許可することを指定することができる。
【００６１】
少なくともいくつかの実施形態では、ソース（例えば、プリンシパル）及びターゲット（例えば、リソース）に関連するポリシは、共に、例えば、接続リクエストを評価するときに評価することができる。図５Ａ及び図５Ｂのポリシに関連する実施例のロールＡ及びＢをそれぞれ使用し、ロールＡを担うプリンシパルについての、ロールＡについてのポリシ５００Ａに従いロールＢを担うリソースインスタンスへの接続をオープンにすることを許可するが、ロールＢについてのポリシ５００Ｂが、ロールＢにおけるリソースがロールＡにおけるプリンシパル（または、特定のプリンシパル）からの接続をアクセプトすることを拒否する（または、許可しない）ことを、ポリシ評価が決定した場合には、その結果、接続リクエストは拒否される。
【００６２】
ポリシ５００Ａ及び５００Ｂにおいて指定された条件は、それぞれ、存在する場合に、オープン接続またはアクセプト接続アクションにおける一つ以上の追加の条件を示すことができる。例えば、「オープン接続」及び／または「アクセプト接続」アクションについての条件は、接続が許可された特定のポート番号またはポートレンジであってもよい。別の実施例として、条件は、接続に使用できる（または、使用できない）特定のネットワークプロトコルであってもよい。他の実施例として、条件は、グローバルネームスペースにおけるリソース名、またはリソースもしくはプリンシパルの一つ以上のユーザ定義のメタデータタグなどのリソースまたはプリンシパルの他の特性について評価することができる。例えば、条件は、指定された一つ以上のリソース、特定のリソース名（複数可）を持つ他のリソース、または特定のメタデータタグ（複数可）を持つ他のリソースについての接続を許可（または、拒否）することを示すことができる。
【００６３】
図６は、少なくともいくつかの実施形態に従う、クライアントの仮想プライベートネットワークにおいてリソースインスタンス間のアクセス制御を提供するための方法及び装置を図示するブロック図である。サービスプロバイダのクライアントは、プロバイダネットワーク６００の一つ以上のサービスにアクセスしてリソースインスタンス６１４を取得及び構成し、クライアントのリソースインスタンス６１４を含む仮想ネットワーク構成（例えば、クライアント仮想プライベートネットワーク６１０）を構築及び管理することができる。図６には示さないが、クライアント仮想プライベートネットワーク６１０は、サブネットを含むことができ、クライアントは、仮想プライベートネットワーク内にグループを構築することができる。クライアントは、仮想プライベートネットワーク６１０内にプライベートＩＰアドレスを構築して使用することができる。本明細書に使用されるようなプライベートＩＰアドレスは、プロバイダネットワーク６００におけるリソースインスタンスの内部ネットワークアドレスを指す。しかしながら、プロバイダネットワーク６００外部で発生したネットワークトラフィックは、プライベートＩＰアドレスに直接には伝送されない。代わりに、トラフィックは、例えば、ＮＡＴテクノロジに従い、プライベートＩＰアドレスにマッピングできるプロバイダネットワークのパブリックＩＰアドレス６００を使用する。仮想プライベートネットワーク６１０内に使用されるプライベートＩＰアドレスが、通常、必ずではないが、仮想プライベートネットワーク６１０内のみにおいてルーティング可能であり得る非インターネットルーティング可能なＩＰアドレス（例えば、ＲＦＣ１９１８アドレス）であってもよいことに留意されたい。しかしながら、いくつかの実施では、仮想プライベートネットワーク６１０内に使用されるプライベートＩＰアドレスは、インターネットルーティング可能なアドレスであってもよい。言い換えれば、少なくともいくつかの実施形態では、クライアントは、プロバイダネットワーク６００におけるクライアントの仮想プライベートネットワーク６１０実装内においてインターネットルーティング可能なアドレスまたは非ルーティング可能なアドレスを使用することができる。クライアントの仮想プライベートネットワーク、グループ及びサブネットについてのそれ以上の情報については、図１２及び図１３を参照されたい。
【００６４】
少なくともいくつかの実施形態では、クライアント仮想プライベートネットワーク６１０におけるクライアントリソースインスタンス６１４Ａは、クライアント仮想プライベートネットワーク６１０における別のクライアントリソースインスタンス６１４Ｂにアドレス指定してネットワークパケットを送信することができる。ＶＭＭ６１２Ａは、ネットワークパケットを受信し、マッピングサービスまたはユーティリティ（または、マッピング情報のローカルキャッシュ）にアクセスして、ターゲットリソースインスタンス６１４Ｂについてのマッピング情報（例えば、パブリックアドレスがマッピングしているプライベートアドレス）を決定することができる。さらに、ＶＭＭ６１２Ａは、アクセス制御サービス６３０からソース及び／またはネットワークパケットのターゲットについてのポリシ評価をリクエストして、クライアントリソースインスタンス６１４Ａについての、クライアントリソースインスタンス６１４Ｂとの通信のオープンを許可するか否かを決定することができる。アクセス制御サービス６３０は、ポリシ評価リクエストを評価して、リソースインスタンス６１４の一つまたは両方がロールを担うか否かを決定することができる。例えば、クライアントリソースインスタンス６１４Ａが、図５Ａに示すようなロールＡを担い、クライアントリソースインスタンス６１４Ｂが、図５Ｂに示すようなロールＢを担うことができた。アクセス制御サービス６３０は、リソースインスタンス（複数可）６１４のロール（複数可）を決定すれば、ロール（複数可）についてのポリシ（複数可）に従いリクエストを評価することができる。アクセス制御サービス６３０がポリシ（複数可）によって接続を許可することを決定した場合には、接続が許可されたことがＶＭＭ６１２Ａに通知される。次に、ＶＭＭ６１２Ａは、（マッピングサービスによって示されるような）ネットワーク基板６０２を通じたＶＭＭ６１２Ｂまでのパス６０６をオープンし、リソースインスタンス６１４Ａからのネットワークパケット（複数可）のカプセル化を開始し、カプセル化パケットを、パス６０６を通じてＶＭＭ６１２Ｂに送信することができる。ＶＭＭ６１２Ｂにおいて、ネットワークパケットは、カプセル除去され、クライアントリソースインスタンス６１４Ｂに供給される。ポリシ（複数可）が接続を拒否したことをアクセス制御サービス６３０が決定した場合には、少なくともいくつかの実施形態では、ＶＭＭ６１２Ａは、リソースインスタンス６１４Ａからのネットワークパケット（複数可）を単にドロップし、接続が許可されなかったことをリソースインスタンス６１４Ａに通知はしない。しかしながら、いくつかの実施形態では、ＶＭＭ６１２Ａ（または、アクセス制御サービス６３０などの、プロバイダネットワーク６００におけるいくつかの他のサービス）は、拒否された接続リクエストを（及び、場合によっては、許可された接続リクエストも）ログすることができる。これによりクライアントは、クライアントのポリシに従う接続拒否についての情報を含む、そのオーバーレイネットワーク構成及び性能についての情報を取得及び視認することができる。
【００６５】
図７は、少なくともいくつかの実施形態に従う、クライアントの仮想プライベートネットワークにおけるリソースインスタンスと外部エンドポイントとの間のアクセス制御を提供するための方法及び装置を図示するブロック図である。サービスプロバイダのクライアントは、プロバイダネットワーク７００の一つ以上のサービスにアクセスしてリソースインスタンス７１４を取得及び構成し、クライアントのリソースインスタンス７１４を含む仮想ネットワーク構成（例えば、クライアント仮想プライベートネットワーク７１０）を構築及び管理することができる。図７には示さないが、クライアント仮想プライベートネットワーク７１０は、サブネットを含むことができ、クライアントは、プライベートネットワーク内にグループを構築することができる。クライアントの仮想プライベートネットワーク、グループ及びサブネットについてのそれ以上の情報については、図１２及び図１３を参照されたい。
【００６６】
少なくともいくつかの実施形態では、クライアント仮想プライベートネットワーク７１０におけるクライアントリソースインスタンス７１４Ａは、クライアント仮想プライベートネットワーク７１０には位置しないエンドポイント７０８にアドレス指定してネットワークパケットを送信することができる。エンドポイント７０８は、例えば、ホストマシンにおけるリソースインスタンス（ＶＭ）、または外部ネットワークにおけるエンドポイントなどの、プロバイダネットワーク７００におけるエンドポイントであってもよい。ＶＭＭ７１２Ａは、ネットワークパケットを受信し、マッピングサービスまたはユーティリティ（または、マッピング情報のローカルキャッシュ）にアクセスして、エンドポイント７０８とネットワーク基板７０２におけるオーバーレイネットワークとの間のブリッジとして働く、プロバイダネットワーク７００におけるネットワークデバイス７０４についてのマッピング情報（例えば、パブリックアドレスがマッピングしているプライベートアドレス）を決定することができる。さらに、ＶＭＭ７１２Ａは、アクセス制御サービス７３０からソース及び／またはネットワークパケットのターゲットについてのポリシ評価をリクエストして、クライアントリソースインスタンス７１４Ａについての、エンドポイント７０８との通信のオープンを許可するか否かを決定することができる。例えば、アクセス制御サービス７３０は、ポリシ評価リクエストを評価して、リソースインスタンス７１４Ａがロールを担うか否かを決定することができる。例えば、クライアントリソースインスタンス７１４Ａは、図５Ａに示すようなロールＡを担うことができた。アクセス制御サービス７３０は、リソースインスタンス７１４Ａについてのロールを決定すれば、ロールについてのポリシに従いリクエストを評価することができる。エンドポイント７０８がそれに関連するポリシも有し、クライアントリソースインスタンス７１４Ａからエンドポイント７０８までの接続リクエストの評価において、エンドポイント７０８についてのポリシも考慮して接続を許可するか否かを決定できることに留意されたい。リソースインスタンス７１４Ａからネットワークデバイス７０４を通じたエンドポイント７０８までの接続をポリシが許可したことをアクセス制御サービス７３０が決定した場合には、接続が許可されたことがＶＭＭ７１２Ａに通知される。次に、ＶＭＭ７１２Ａは、ネットワーク基板７０２を通じたネットワークデバイス７０４までのパス７０６をオープンし、リソースインスタンス７１４Ａからのネットワークパケット（複数可）のカプセル化を開始し、カプセル化パケットを、パス７０６を通じてネットワークデバイス７０４に送信することができる。ネットワークデバイス７０４において、ネットワークパケットは、カプセル除去され、ネットワークプロトコルデータフローとしてエンドポイント７０８に送信される。一部のネットワークプロトコルでは、ネットワークデバイス７０８は、ネットワークプロトコルトラフィックがそれを通じてフローすることができる、エンドポイントまでのネットワークプロトコル接続（例えば、ＴＣＰ接続）を構築することができる。ポリシ（複数可）が接続を拒否したことをアクセス制御サービス６３０が決定した場合には、少なくともいくつかの実施形態では、ＶＭＭ７１２Ａは、リソースインスタンス７１４Ａからのネットワークパケット（複数可）を単にドロップし、接続が許可されなかったことをリソースインスタンス７１４Ａに通知はしない。
【００６７】
前には、クライアント仮想プライベートネットワーク７１０におけるソース（クライアントリソースインスタンス７１４Ａ）から開始され、ネットワーク基板７０２におけるオーバーレイネットワークを通じた、クライアント仮想プライベートネットワーク７１０外部のターゲット（エンドポイント７０８）までの接続についてのポリシの評価を記述している。しかしながら、アクセス制御を提供するための方法及び装置の実施形態は、クライアント仮想プライベートネットワーク７１０外部のエンドポイント７０８がソースであり、クライアントリソースインスタンス７１４がターゲットであるときにも応用することができる。エンドポイント７０８は、例えば、プロバイダネットワーク７００の別の仮想プライベートネットワークに位置してもよいし、プロバイダネットワーク７００外部のエンドポイントであってもよい。エンドポイント７０８のネットワークパケット（複数可）は、ネットワーク基板７０２に連結されたネットワークデバイス７０４において受信することができる。少なくともいくつかの実施形態では、エンドポイント７０８及びネットワークデバイス７０４は、帯域内ネットワークセキュリティプロトコルを利用して、プロバイダネットワーク７００におけるエンドポイント７０８についてのアイデンティティを構築することができる。例えば、少なくともいくつかの実施形態では、Ｇｅｎｅｒｉｃ  Ｓｅｃｕｒｉｔｙ  Ｓｅｒｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ（ＧＳＳＡＰＩ、ＧＳＳ−ＡＰＩとも）に従うネットワークプロトコルを使用して、プロバイダネットワーク７００におけるエンドポイント７０８についての安全な識別を構築することができる。次に、ネットワークデバイス７０４は、エンドポイント７０８の構築されたアイデンティティ及び／またはターゲット（リソースインスタンス７１４Ａ）のアイデンティティを使用して、ネットワーク基板７０２におけるオーバーレイネットワークを通じる、エンドポイント７０８とターゲット（リソースインスタンス７１４Ａ）との間の接続をオープンにするためのポリシを決定及び評価することができる。ポリシに従い接続が許可されない場合には、その結果、ネットワークパケットは、ドロップされ得る。接続が許可された場合には、その結果、ネットワークデバイス７０４は、カプセル化プロトコルに従いネットワークパケットをカプセル化し、カプセル化パケットを、ネットワーク基板７０２にわたるパス７０６を通じてＶＭＭ７１２Ａに送信することができる。ＶＭＭ７１２Ａにおいて、ネットワークパケットは、カプセル除去され、ターゲットリソースインスタンス７１４Ａに供給される。
【００６８】
図８は、少なくともいくつかの実施形態に従う、プリンシパルがロールを担い、ロールがポリシを有し、かつロールについてのポリシの評価に基づいてアクセスを許可または拒否する、オーバーレイネットワーク接続におけるアクセス制御方法のフローチャートである。アクセス制御方法は、例えば、ポリシ評価のためにアクセス制御サービスを使用する、プロバイダネットワークにおけるカプセル化層プロセスによって、例えば、それぞれのホストシステムにおける一つ以上のクライアントリソースインスタンス（ＶＭ）をその各々が率いる、ホストシステムにおける仮想マシンモニタ（ＶＭＭ）によって実行することができる。実施例のアクセス制御サービスは、図２及び図３に図示し、「アクセス制御サービス」という表題が付けられたセクションに記述している。プロバイダネットワークにおける各ＶＭに一つ以上のプライベートＩＰアドレスを提供することができ、それぞれのホストシステムにおけるＶＭＭが、ホストにおけるＶＭのプライベートＩＰアドレスを認識できることに留意されたい。
【００６９】
８００に示すように、カプセル化層プロセス（例えば、ＶＭＭ）は、ソース（例えば、ホストシステムにおけるクライアントリソースインスタンス）からネットワークパケットを取得する。ネットワークパケットは、（必ずではないが、別のクライアントプロバイダネットワークにおけるリソースインスタンスであり得る）ターゲットを示すことができる。少なくともいくつかの実施形態では、ＶＭＭは、マッピングサービス（または、ローカルキャッシュ）にアクセスして、示されたターゲットについてのオーバーレイネットワークマッピング情報を取得することができる。８０２に示すように、ソースのアイデンティティをプリンシパルとして決定することができる。例えば、「アクセス制御サービス」という表題が付けられたセクションにおいて記述するように、アイデンティティを、クライアントによってクライアントリソースインスタンスに割り当てられたリソース識別子として指定することができる。少なくともいくつかの実施形態では、ホストにおけるＶＭのプライベートＩＰアドレスの認識に加えて、ＶＭＭは、ホストにおけるクライアントリソースインスタンスの他の存在し得るリソース識別子も認識することができる。少なくともいくつかの実施形態では、ターゲットについてのアイデンティティも決定することができる。
【００７０】
８０４に示すように、プリンシパルが担ったロールを決定することができる。８０６に示すように、ロールについてのポリシを識別することができる。８０８に示すように、ポリシに従い接続リクエストを評価することができる。要素８０４〜８０６を実行するために、例えば、ＶＭＭは、プリンシパルについての情報（例えば、ソースリソースインスタンスの一つ以上のリソース識別子などのアイデンティティ情報）、及びターゲットについての情報を、図３に図示するようなアクセス制御サービスに通信することができる。アクセス制御サービスは、プリンシパル及びリソースが担うことができる、図４、図５Ａ及び図５Ｂに図示するようなロールについてのポリシなどのポリシにアクセスして、プリンシパル（ソースリソースインスタンス）が担った特定のロールを決定することができる。少なくともいくつかの実施形態では、アクセス制御サービスに提供される、プリンシパルについてのアイデンティティ情報は、プリンシパルに関連するクライアントのアイデンティティを含む、またはその情報を使用してそのアイデンティティを決定することができる。少なくともいくつかの実施形態では、ターゲットについてのロールも、アクセス制御サービスによって決定することができる。プリンシパル（ソース）及び／またはターゲットのロール（複数可）を決定すれば、アクセス制御サービスによってロール（複数可）のポリシに従い接続リクエストを評価して、ソースからターゲットまでの接続を許可または拒否するかを決定することができる。図４、図５Ａ及び図５Ｂ並びに「アクセス制御サービス」という表題が付けられたセクションに、ソースからターゲットまでの接続を許可するか否かを決定するために実行できるポリシ及び評価の実施例が与えられている。アクセス制御サービスは、接続が許可または拒否されるかを決定すると、カプセル化層プロセス（例えば、ＶＭＭ）に通知する。
【００７１】
８１０において接続が許可された場合には、カプセル化層プロセス（例えば、ＶＭＭ）は、ソース（例えば、クライアントの仮想プライベートネットワーク内のソースリソースインスタンス）から受信したネットワークパケットをカプセル化（複数可）し、８１２に示すように、カプセル化されたパケットを、オーバーレイネットワークにおいてカプセル化層宛先（例えば、別のＶＭＭ）に送信することができる。宛先において、ネットワークパケット（複数可）をカプセル化パケットから取り出し、ターゲット（例えば、クライアントの仮想プライベートネットワーク内のターゲットリソースインスタンス）に送信することができる。８１０において接続が拒否された場合には、ネットワークパケット（複数可）を、カプセル化層プロセスによってドロップすることができる。しかしながら、いくつかの実施形態では、拒否された接続リクエストを、報告目的のためにログすることができる。
【００７２】
少なくともいくつかの実施形態では、要素８０２〜８１２は、ソースとターゲットとの間の所与のパケットフローにおいて第一のネットワークパケットについてのみ実行してもよい。８１２に示すように、所与のパケットフローにおけるそれに続くネットワークパケットは、ポリシ評価を実行することなく、オーバーレイネットワークカプセル化プロトコルを通じてターゲットに送信することができる。さらに、いくつかの実施形態では、アクセス制御サービスから受信したポリシ評価についての情報を、例えば、ＶＭＭにおいてローカルにキャッシュし、将来のポリシ評価に使用することができる。
【００７３】
図８の方法は、プリンシパルがロールを担い、ロールがポリシを有し、かつロールについてのポリシの評価に基づいてアクセスを許可または拒否する、オーバーレイネットワーク接続におけるアクセス制御方法に関するが、ポリシを、他のタイプのプリンシパル（例えば、ユーザ、グループなど）及び／または他のタイプのリソース識別子（ネーム、メタデータタグ、アカウント識別子、ＩＰアドレスなど）に関連付けることができ、ロールについてのポリシではなく（または、それに加えて）、これらのポリシを使用して同様の方法を利用できることに留意されたい。
（プロセスレベルアイデンティティ及びアクセス制御）
【００７４】
前には、例えば、それぞれのホストデバイスにおける仮想マシン（ＶＭ）をモニタする、ホストデバイスにおける仮想マシンモニタ（ＶＭＭ）によって、カプセル化層において実施されるアクセス制御方法及び装置を主に記述している。しかしながら、アクセス制御方法及び装置のいくつかの実施形態は、仮想マシンにおけるオペレーティングシステムプロセスレベルアイデンティティ及びアクセス管理ベースのアクセス制御をサポートし、それ故に、カプセル化層（ＶＭＭ）ではなく、クライアントまたはユーザのプロセスレベルにも拡大適用することができる。前述のように、ＶＭは、クライアントリソースインスタンスを実装する。クライアントリソースインスタンスは、プロバイダネットワークにおけるそれぞれのクライアントの仮想プライベートネットワーク実装のニーズ及び要件に従うさまざまなオペレーティングシステム技術のいずれかに従い実装することができる。少なくともいくつかの実施形態では、アクセス制御方法をクライアントまたはユーザのプロセスレベルに拡大適用するために、エージェントプロセス（または、デーモンもしくはデバイスドライバ）を、ＶＭにおけるオペレーティングシステムレベルに実施することができる。エージェントは、ＶＭにおけるプロセスレベルからの及びそれへのマッピングアイデンティティ（プリンシパル、またはより一般的にはリソース識別子）を促進し、そして本明細書に記述するようなアクセス制御サービスと通信して、プロセスレベルリソースについてのポリシに従うＶＭにおけるプロセスレベルにおける接続の許可または拒否を促進することができる。
（カプセル化パケットへのアイデンティティ情報のタグ付け）
【００７５】
少なくともいくつかの実施形態では、オーバーレイネットワークを通じてターゲットエンドポイントに伝送するための、ソース（例えば、ホストシステムにおけるＶＭ）からのネットワークパケットをカプセル化するカプセル化層プロセス（例えば、ホストシステムにおけるＶＭＭ）は、ネットワークパケットのソースである、プロセス（例えば、ＶＭにおけるオペレーティングシステムまたはアプリケーション）についてのアイデンティティ情報を有するまたは取得することができる。少なくともいくつかの実施形態では、本明細書に記述するような関連するポリシの評価に基づいて、ソース（例えば、ＶＭ）からオーバーレイネットワークを通じたターゲットエンドポイントまでの接続を許可または拒否するかを決定することに加えてまたはその代わりに、カプセル化層プロセス（例えば、ＶＭＭ）は、メタデータとしてソースについてのアイデンティティ関連情報を、カプセル化パケットに組み込むまたは加えることができる。アイデンティティ関連情報は、例えば、それぞれのソースエンドポイントについてのプリンシパル情報、ロール情報、グループ情報などの一つ以上を含むことができる。アイデンティティ関連情報は、例えば、アイデンティティ情報を認証するために使用できる共有秘密キーなどに基づく暗号シグネチャなどのセキュリティまたは認証情報も含むことができる。ポリシ決定に関連するアイデンティティ関連情報のカプセル化パケットへのタグ付けは、接続についてのポリシ決定を為すときにターゲットについてのより多くの状況を提供し、データベースなどの他のソースから情報を検索せずとも、提供された情報を使用して接続についてのポリシ決定をターゲットに為させることができる。
【００７６】
カプセル化パケットにタグ付けされるアイデンティティ関連情報を使用できる方法の実施例として、ターゲット、またはターゲットにおけるカプセル化層プロセスは、ソースからターゲットエンドポイントまでの接続がソース側のポリシ評価に基づいて許可された場合でさえも、受信したカプセル化パケットにおけるアイデンティティ関連情報を使用して、ポリシに基づいたアクセス決定を為すことができる。例えば、ネットワークパケットのソースがアクセスを所望するターゲットエンドポイントは、図１０及び図１１に図示するような、プロバイダネットワークにおけるストレージ仮想化サービスを通じて提供された仮想化ストレージであってもよい。ストレージ仮想化サービスは、カプセル化パケットにタグ付けされたアイデンティティ関連情報を使用してソースのアイデンティティに基づくポリシ評価を実行することによって、そのリクエストにサインするなどのアクセス制御方法をソース（例えば、クライアントのリソースインスタンスにおけるオペレーティングシステムまたはアプリケーション）が認識しない場合でさえも、ソースのアイデンティティに基づいて特定のストレージリソースへのソースのアクセスを許可または否定するかを決定することができる。
【００７７】
ＴＣＰなどのコネクション型のネットワークプロトコルにおいて、カプセル化パケットにタグ付けされるアイデンティティ関連情報を使用できる方法の別の実施例として、ソース側のカプセル化層プロセス（例えば、ＶＭＭ）は、カプセル化パケットにアイデンティティ情報をタグ付けし、ソースの知識がなくてもまたは直接的関与をしなくても、ソースの代わりにターゲットエンドポイントを用いて、例えば、Ｇｅｎｅｒｉｃ  Ｓｅｃｕｒｉｔｙ  Ｓｅｒｖｉｃｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ（ＧＳＳＡＰＩ）に従う認証交換に関与することができる。
（ポリシ情報のキャッシング）
【００７８】
アクセス制御方法及び装置の実施形態を、プロバイダネットワーク内のデバイス（例えば、ホストデバイス）におけるカプセル化層プロセス（例えば、ＶＭＭ）が、プロバイダネットワークにおける一つ以上のデバイスに実装されたアクセス制御サービスにポリシ評価のためにアクセスすることに関して主に記述した。いくつかの実施形態では、ポリシ評価のためにアクセス制御サービスにアクセスする代わりにまたはそれに加えて、デバイスは、ポリシ情報のローカルキャッシュを維持することができる。カプセル化層プロセスまたはデバイスにおける別のプロセスは、ポリシ情報のローカルキャッシュに従い、少なくともいくつかのポリシ評価をローカルに実行するように構成することができる。いくつかの実施形態では、カプセル化層プロセスは、ポリシ情報のローカルキャッシュを確認して、キャッシュされたポリシに従いプリンシパルからの接続リクエストをローカルに評価できるか否かを決定し、評価できる場合にローカルポリシ評価を実行するように構成できる。ポリシ評価をローカルキャッシュに従いローカルに実行できない場合には、アクセス制御サービスにアクセスして評価を実行することができる。
（実施例のプロバイダネットワーク環境）
【００７９】
このセクションは、本明細書に記述するようなアクセス制御方法及び装置の実施形態を実施できる実施例のプロバイダネットワーク環境を記述する。しかしながら、これらの実施例のプロバイダネットワーク環境は、限定することは意図しない。
【００８０】
図９は、少なくともいくつかの実施形態に従う、実施例のプロバイダネットワーク環境を図示する。プロバイダネットワーク９００は、これらに限定されないが、プロバイダネットワークまたは一つ以上のデータセンタ内のネットワーク内のデバイスにおいて実施される計算及びストレージリソースを含む仮想化リソースのインスタンス９１２をクライアントが購入、レント、さもなければ取得できる一つ以上の仮想化サービス９１０を通じて、リソース仮想化をクライアントに提供することができる。プライベートＩＰアドレス９１６を、リソースインスタンス９１２に関連付けることができる。例えば、プライベートＩＰアドレスは、プロバイダネットワーク９００におけるリソースインスタンス９１２の内部ネットワークアドレスである。いくつかの実施形態では、プロバイダネットワーク９００は、パブリックＩＰアドレス９１４及び／またはクライアントがプロバイダ９００から取得することができるパブリックＩＰアドレスレンジ（例えば、インターネットプロトコルバージョン４（ＩＰｖ４）またはインターネットプロトコルバージョン６（ＩＰｖ６）アドレス）も提供することができる。
【００８１】
従来、プロバイダネットワーク９００では、仮想化サービス９１０によって、サービスプロバイダのクライアント（例えば、クライアントネットワーク９５０Ａを動作させるクライアント）は、クライアントに割り当てられたまたは配分された少なくともいくつかのパブリックＩＰアドレス９１４を、クライアントに割り当てられた特定のリソースインスタンス９１２に動的に関連付けることができる。プロバイダネットワーク９００によって、クライアントは、クライアントに配分されたある仮想化コンピューティングリソースインスタンス９１２に以前にマッピングされたパブリックＩＰアドレス９１４を、これもクライアントに配分された別の仮想化コンピューティングリソースインスタンス９１２に再マッピングすることもできる。サービスプロバイダによって提供された仮想化コンピューティングリソースインスタンス９１２及びパブリックＩＰアドレス９１４を使用して、クライアントネットワーク９５０Ａのオペレータなどのサービスプロバイダのクライアントは、例えば、クライアント固有のアプリケーションを実施し、クライアントのアプリケーションを、インターネットなどの中間ネットワーク９４０に提示することができる。次に、中間ネットワーク９４０における他のネットワークエンティティ９２０が、クライアントネットワーク９５０Ａに公開された宛先パブリックＩＰアドレス９１４についてのトラフィックを生成することができる。トラフィックは、サービスプロバイダデータセンタに伝送され、データセンタにおいて、ネットワーク基板を通じて、宛先パブリックＩＰアドレス９１４に現在マッピングされている、仮想化コンピューティングリソースインスタンス９１２のプライベートＩＰアドレス９１６に伝送される。同様に、仮想化コンピューティングリソースインスタンス９１２からの応答トラフィックを、ネットワーク基板を通じて中間ネットワーク９４０に戻し、ソースエンティティ９２０に伝送することができる。
【００８２】
本明細書に使用されるようなプライベートＩＰアドレスは、プロバイダネットワークにおけるリソースインスタンスの内部ネットワークアドレスを指す。プロバイダネットワーク外部で発生したネットワークトラフィックは、プライベートＩＰアドレスに直接には伝送されない。代わりに、トラフィックは、リソースインスタンスのプライベートＩＰアドレスにマッピングされたパブリックＩＰアドレスを使用する。プロバイダネットワークは、パブリックＩＰアドレスからプライベートＩＰアドレスへの、かつ逆へのマッピングを実行するための、ネットワークアドレス変換（ＮＡＴ）または同様の機能性を提供するネットワークデバイスまたはアプライアンスを含むことができる。本明細書に使用されるような所与のプライベートＩＰアドレスが、必ずしもパブリックＩＰアドレスにマッピングされないことに留意されたい。
【００８３】
本明細書に使用されるようなパブリックＩＰアドレスは、サービスプロバイダまたはクライアントのいずれかによってプロバイダネットワークにおけるリソースインスタンスに割り当てられたプロバイダネットワークのインターネットルーティング可能なネットワークアドレスである。プロバイダネットワークのパブリックＩＰアドレスに伝送されるトラフィックは、例えば、１：１ネットワークアドレス変換（ＮＡＴ）を通じて変換し、プロバイダネットワークにおけるリソースインスタンスのそれぞれのプライベートＩＰアドレスに転送することができる。本明細書に使用されるようなプライベートＩＰアドレスが、必ずではないが、通常、例えば、プロバイダネットワークもしくはそのサブネットワーク内、またはプロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装内のみにおいてルーティング可能な非インターネットルーティング可能なＩＰアドレス（例えば、ＲＦＣ１９１８アドレス）であってもよいことに留意されたい。しかしながら、いくつかの実施では、プライベートＩＰアドレスがインターネットルーティング可能なアドレスであってもよい。言い換えれば、クライアントは、プロバイダネットワークにおけるクライアントのリソースインスタンスにおいて、及びプロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装内において、インターネットルーティング可能なアドレスまたは非ルーティング可能なアドレスを使用することができる。
【００８４】
一部のパブリックＩＰアドレスは、プロバイダネットワークインフラストラクチャによって特定のリソースインスタンスに割り当てることができる。これらのパブリックＩＰアドレスは、標準パブリックＩＰアドレス、または単に標準ＩＰアドレスと称され得る。少なくともいくつかの実施形態では、リソースインスタンスのプライベートＩＰアドレスへの標準ＩＰアドレスのマッピングは、すべてのリソースインスタンスタイプにおいてデフォルト起動構成である。
【００８５】
少なくともいくつかのパブリックＩＰアドレスは、プロバイダネットワーク９００のクライアントに配分またはクライアントが取得することができる。次に、クライアントは、配分されたパブリックＩＰアドレスを、クライアントに配分された特定のリソースインスタンスに割り当てることができる。これらのパブリックＩＰアドレスは、クライアントパブリックＩＰアドレス、または単にクライアントＩＰアドレスと称され得る。標準ＩＰアドレスの場合のようにプロバイダネットワーク９００によってリソースインスタンスに割り当てる代わりに、例えば、サービスプロバイダによって提供されたＡＰＩを通じて、クライアントによってクライアントＩＰアドレスをリソースインスタンスに割り当てることができる。標準ＩＰアドレスとは異なり、クライアントＩＰアドレスは、クライアントアカウントに配分され、必要または所望に応じて、それぞれのクライアントによって他のリソースインスタンスに再マッピングすることができる。クライアントＩＰアドレスは、特定のリソースインスタンスではなく、クライアントのアカウントに関連付けられ、クライアントは、そのＩＰアドレスをリリースすることを選択するまでそれを制御する。従来の静的ＩＰアドレスとは異なり、クライアントＩＰアドレスによって、クライアントは、クライアントのパブリックＩＰアドレスを、クライアントのアカウントに関連する任意のリソースインスタンスに再マッピングすることによって、リソースインスタンスまたはアベイラビリティゾーンの不具合を隠すことができる。クライアントＩＰアドレスによって、例えば、クライアントは、クライアントＩＰアドレスを、差し替えのリソースインスタンスに再マッピングすることによって、クライアントのリソースインスタンスまたはソフトウェアに伴う問題を処理することができる。
【００８６】
図１０は、少なくともいくつかの実施形態に従う、ＩＰトンネリング技術を使用して、ネットワーク基板においてオーバーレイネットワークを実装する実施例のデータセンタを図示する。プロバイダデータセンタ１０００は、例えば、ルータ、スイッチ、ネットワークアドレス変換器（ＮＡＴ）などのネットワーキングデバイス１０１２を含むネットワーク基板を含むことができる。少なくともいくつかの実施形態は、インターネットプロトコル（ＩＰ）トンネリング技術を利用して、トンネルを使用してカプセル化されたパケットがネットワーク基板１０１０を通行できるオーバーレイネットワークを提供することができる。ＩＰトンネリング技術は、ネットワークにおけるオーバーレイネットワーク（例えば、図１０のデータセンタ１０００におけるローカルネットワーク）を生成するためのマッピング及びカプセル化システム、並びにオーバーレイ層（パブリックＩＰアドレス）及びネットワーク基板１０１０層（プライベートＩＰアドレス）についての個々のネームスペースを提供することができる。オーバーレイ層におけるパケットを、（例えば、マッピングサービス１０３０によって提供された）マッピングディレクトリにおいて確認して、どのトンネル基板ターゲット（プライベートＩＰアドレス）に対応させるべきかを決定することができる。ＩＰトンネリング技術は、仮想ネットワークトポロジ（オーバーレイネットワーク）を提供する。クライアントに提示されたインターフェース（例えば、サービスＡＰＩ）がオーバーレイネットワークに加えられ、これによりクライアントがパケットの送信を所望するＩＰアドレスをクライアントが提供するときに、ＩＰオーバーレイアドレスの位置を知っているマッピングサービス（例えば、マッピングサービス１０３０）と通信することによって、ＩＰアドレスを仮想スペースにおいて実施することができる。
【００８７】
少なくともいくつかの実施形態では、ＩＰトンネリング技術は、ネットワークパケットの基板ＩＰアドレスをＩＰオーバーレイアドレスにマッピングし、カプセル化プロトコルに従いネットワークパケットをカプセル化し、カプセル化されたパケットを、オーバーレイネットワークトンネルを通じて正確なエンドポイントに供給することができる。エンドポイントにおいて、パケットからカプセルが取り除かれる。図１０において、ホスト１０２０Ａにおける仮想マシン（ＶＭ）１０２４Ａから、中間ネットワーク１０５０におけるデバイスまでの実施例のオーバーレイネットワークトンネル１０３４Ａ、及びホスト１０２０ＢにおけるＶＭ１０２４Ｂとホスト１０２０ＣにおけるＶＭ１０２４Ｃとの間の実施例のオーバーレイネットワークトンネル１０３４Ｂが示される。いくつかの実施形態では、パケットを、送信する前に、オーバーレイネットワークパケットフォーマットにおいてカプセル化し、受信した後に、オーバーレイネットワークパケットを取り除くことができる。他の実施形態では、送信する前にオーバーレイネットワークパケットにおいてパケットをカプセル化する代わりに、パケットの基板アドレス（プライベートＩＰアドレス）にオーバーレイネットワークアドレス（パブリックＩＰアドレス）を組み込み、受信時にパケットアドレスから取り除くことができる。実施例として、パブリックＩＰアドレスとして３２ビットＩＰｖ４（インターネットプロトコルバージョン４）アドレスを使用してオーバーレイネットワークを実装し、プライベートＩＰアドレスとして、基板ネットワークにおいて使用される１２８ビットＩＰｖ６（インターネットプロトコルバージョン６）アドレスの一部としてＩＰｖ４アドレスを組み込むことができる。
【００８８】
図１０を参照するように、実施形態を実施できる少なくともいくつかのネットワークは、複数のオペレーティングシステムをホストコンピュータ（例えば、図１０のホスト１０２０Ａ及び１０２０Ｂ）において同時に起動できる、すなわち、ホスト１０２０における仮想マシン（ＶＭ）１０２４として、ハードウェア仮想化テクノロジを含むことができる。ＶＭ１０２４は、例えば、ネットワークプロバイダのクライアントにレントまたはリースすることができる。ハイパーバイザ、またはホスト１０２０における仮想マシンモニタ（ＶＭＭ）１０２２は、ホストにおけるＶＭ１０２４を仮想プラットフォームに提示し、ＶＭ１０２４の実行をモニタする。各ＶＭ１０２４には一つ以上のプライベートＩＰアドレスが提供され、ホスト１０２０におけるＶＭＭ１０２２は、ホストにおけるＶＭのプライベートＩＰアドレス１０２４を認識することができる。マッピングサービス１０３０が、すべてのネットワークＩＰプレフィックス及びルータのＩＰアドレスまたはローカルネットワークにおけるＩＰアドレスをサーブする他のデバイスを認識することができる。これには、複数のＶＭ１０２４にサーブするＶＭＭ１０２２のＩＰアドレスが含まれる。マッピングサービス１０３０は、例えば、一つのサーバシステムに集中させる、あるいは、二つ以上のサーバシステムまたはネットワークにおける他のデバイス間に分配することができる。ネットワークは、例えば、マッピングサービス技術及びＩＰトンネリング技術を使用して、例えば、データセンタ１０００ネットワーク内の種々のホスト１０２０におけるＶＭ１０２４間にデータパケットを伝送することができる。そのようなローカルネットワーク内のルーティング情報を交換するために、内部ゲートウェイプロトコル（ＩＧＰ）を使用できることに留意されたい。
【００８９】
さらに、（自律システム（ＡＳ）と称されることがある）プロバイダデータセンタ１０００ネットワークなどのネットワークは、マッピングサービス技術、ＩＰトンネリング技術、及びルーティングサービス技術を使用して、ＶＭ１０２４からインターネット宛先に、かつインターネットソースからＶＭ１０２４にパケットを伝送することができる。インターネットにおけるソースと宛先との間のインターネットルーティングのために、通常、外部ゲートウェイプロトコル（ＥＧＰ）または境界ゲートウェイプロトコル（ＢＧＰ）が使用されることに留意されたい。図１０は、少なくともいくつかの実施形態に従う、リソース仮想化テクノロジ、及びインターネットトランジットプロバイダと接続するエッジルータ（複数可）１０１４を通じてフルインターネットアクセスを提供するネットワークを実装する実施例のプロバイダデータセンタ１０００を示す。プロバイダデータセンタ１０００は、例えば、クライアントに、ハードウェア仮想化サービスを通じて仮想コンピューティングシステム（ＶＭ１０２４）を実施する能力、及びストレージ仮想化サービスを通じてストレージリソース１０１８における仮想化データストア１０１６を実施する能力を与えることができる。
【００９０】
データセンタ１０００ネットワークは、ＩＰトンネリング技術、マッピングサービス技術、及びルーティングサービス技術を実施して、仮想化リソースにかつそれからトラフィックを伝送することができる。例えば、データセンタ１０００内のホスト１０２０におけるＶＭ１０２４からインターネット宛先に、かつインターネットソースからＶＭ１０２４にパケットを伝送することができる。インターネットソース及び宛先は、例えば、中間ネットワーク１０４０に接続されたコンピューティングシステム１０７０、及び（例えば、ネットワーク１０５０とインターネットトランジットプロバイダとを接続するエッジルータ（複数可）１０１４を通じて）中間ネットワーク１０４０に接続されたローカルネットワーク１０５０に接続されたコンピューティングシステム１０５２を含むことができる。プロバイダデータセンタ１０００ネットワークは、データセンタ１０００内のリソース間にもパケットを伝送することができる。例えば、データセンタ１０００内のホスト１０２０におけるＶＭ１０２４から、同じホストにおける他のＶＭ１０２４またはデータセンタ１０００内の他のホスト１０２０にも伝送することができる。
【００９１】
データセンタ１０００を提供するサービスプロバイダは、データセンタ１０００と同様のハードウェア仮想化テクノロジを含み、そして中間ネットワーク１０４０にも接続できる追加のデータセンタ（複数可）１０６０も提供することができる。パケットは、データセンタ１０００から他のデータセンタ１０６０に、例えば、データセンタ１０００内のホスト１０２０におけるＶＭ１０２４から、データセンタ１０６０と同様の別のデータセンタ内の別のホストにおける別のＶＭに、かつ逆に転送することができる。
【００９２】
前には、ネットワークプロバイダのクライアントにレントまたはリースすることができる、ホストにおける仮想マシン（ＶＭｓ）として、複数のオペレーティングシステムをホストコンピュータにおいて同時に起動できるハードウェア仮想化テクノロジを記述したが、ハードウェア仮想化テクノロジを使用して、同じようなネットワークプロバイダのクライアントへの仮想化リソースとして、ストレージリソース１０１８などの他のコンピューティングリソースも提供することができる。
【００９３】
図１１は、少なくともいくつかの実施形態に従う、ストレージ仮想化サービス及びハードウェア仮想化サービスをクライアントに提供する実施例のプロバイダネットワークのブロック図である。ハードウェア仮想化サービス１１２０は、複数の計算リソース１１２４（例えば、ＶＭ）をクライアントに提供する。計算リソース１１２４は、例えば、プロバイダネットワーク１１００のクライアント（例えば、クライアントネットワーク１１５０を実施するクライアント）にレントまたはリースすることができる。各計算リソース１１２４には一つ以上のプライベートＩＰアドレスを提供することができる。プロバイダネットワーク１１００は、計算リソース１１２４のプライベートＩＰアドレスからパブリックインターネット宛先に、かつパブリックインターネットソースから計算リソース１１２４にパケットを伝送するように構成できる。
【００９４】
プロバイダネットワーク１１００は、例えば、ローカルネットワーク１１５６を通じて中間ネットワーク１１４０に連結されたクライアントネットワーク１１５０、並びに中間ネットワーク１１４０及びプロバイダネットワーク１１００に連結されたハードウェア仮想化サービス１１２０を通じて仮想コンピューティングシステム１１９２を実施する能力を提供することができる。いくつかの実施形態では、ハードウェア仮想化サービス１１２０は、クライアントネットワーク１１５０が、例えば、コンソール１１９４を通じて、ハードウェア仮想化サービス１１２０によって提供された機能性にそれを通じてアクセスできるウェブサービスインターフェースなどの一つ以上のＡＰＩ１１０２を提供することができる。少なくともいくつかの実施形態では、プロバイダネットワーク１１００において、クライアントネットワーク１１５０における各仮想コンピューティングシステム１１９２は、クライアントネットワーク１１５０にリース、レント、さもなければ提供された計算リソース１１２４に対応することができる。
【００９５】
仮想コンピューティングシステム１１９２のインスタンス及び／または別のクライアントデバイス１１９０もしくはコンソール１１９４から、クライアントは、例えば、一つ以上のＡＰＩ１１０２を通じて、ストレージ仮想化サービス１１１０の機能性にアクセスして、プロバイダネットワーク１１００によって提供された仮想データストア１１１６からのデータにアクセスし、かつそれにデータを保存することができる。いくつかの実施形態では、クライアントネットワーク１１５０に仮想化データストアゲートウェイ（図示せず）を提供することができ、このゲートウェイは、頻繁にアクセスされたまたは重要なデータなどの少なくともいくつかのデータをローカルにキャッシュし、そして一つ以上の通信チャネルを通じて仮想化データストアサービス１１１０と通信して、データの主要なストア（仮想化データストア１１１６）を維持できるようにローカルキャッシュから新規のまたは修正されたデータをアップロードすることができる。少なくともいくつかの実施形態では、ユーザは、仮想コンピューティングシステム１１９２を通じて、及び／または別のクライアントデバイス１１９０において、ユーザにローカル仮想化ストレージ１１９８として見える仮想データストア１１１６ボリュームをマウント及びそれにアクセスすることができる。
【００９６】
図１１には示さないが、仮想化サービス（複数可）には、プロバイダネットワーク１１００内のリソースインスタンスからもＡＰＩ（複数可）１１０２を通じてアクセスすることができる。例えば、クライアント、アプライアンスサービスプロバイダ、または他のエンティティは、プロバイダネットワーク１１００におけるそれぞれの仮想プライベートネットワーク内から、ＡＰＩ１１０２を通じて仮想化サービスにアクセスして、仮想プライベートネットワークまたは別の仮想プライベートネットワーク内の一つ以上のリソースインスタンスの配分をリクエストすることができる。
【００９７】
図１２は、少なくともいくつかの実施形態に従う、プロバイダネットワークにおける仮想プライベートネットワークを少なくとも何人かのクライアントに提供する実施例のプロバイダネットワークを図示する。プロバイダネットワーク１２００におけるクライアントの仮想プライベートネットワーク１２６０によって、例えば、クライアントは、クライアントネットワーク１２５０における既存のインフラストラクチャ（例えば、デバイス１２５２）と、論理的に分離されたリソースインスタンスのセット（例えば、ＶＭ１２２４Ａ及び１２２４Ｂ、並びにストレージ１２１８Ａ及び１２１８Ｂ）とを接続し、そしてリソースインスタンスを含むための、セキュリティサービス、ファイアウォール及び侵入検知システムなどの管理能力を広げることができる。
【００９８】
クライアントの仮想プライベートネットワーク１２６０は、プライベート通信チャネル１２４２を通じてクライアントネットワーク１２５０に接続することができる。プライベート通信チャネル１２４２は、例えば、ネットワークトンネリング技術に従い実装されたトンネル、または中間ネットワーク１２４０にわたるいくつかの他のピアリング接続であってもよい。中間ネットワークは、例えば、共有ネットワーク、またはインターネットなどのパブリックネットワークであってもよい。あるいは、プライベート通信チャネル１２４２は、仮想プライベートネットワーク１２６０とクライアントネットワーク１２５０との間の直接かつ専用の接続にわたって実装することができる。
【００９９】
パブリックネットワークは、複数のエンティティへのオープンアクセス及びそれらの間の相互接続を提供するネットワークとして広く定義することができる。インターネット、またはワールドワイドウェブ（ＷＷＷ）は、パブリックネットワークの実施例である。共有ネットワークは、アクセスが通常では制限されないパブリックネットワークとは対照的な、アクセスが二つ以上のエンティティに制限されたネットワークとして広く定義することができる。共有ネットワークは、例えば、一つ以上のローカルエリアネットワーク（ＬＡＮ）及び／もしくはデータセンタネットワーク、または広域ネットワーク（ＷＡＮ）を形成するように相互接続された二つ以上のＬＡＮもしくはデータセンタネットワークを含むことができる。共有ネットワークの実施例は、これらに限定されないが、法人ネットワーク及び他の企業ネットワークを含むことができる。共有ネットワークは、ローカルエリアを保護するネットワークからグローバルネットワークまでの範囲のどこにでも存在することができる。共有ネットワークが、少なくともいくつかのネットワークインフラストラクチャをパブリックネットワークと共有し、かつ共有ネットワークが、他のネットワーク（複数可）と共有ネットワークとの間のアクセスが制御された、パブリックネットワークを含み得る一つ以上の他のネットワークに連結できることに留意されたい。共有ネットワークは、インターネットなどのパブリックネットワークとは対照的に、プライベートネットワークとみなすこともできる。実施形態では、共有ネットワークまたはパブリックネットワークのいずれかは、プロバイダネットワークとクライアントネットワークとの間の中間ネットワークとして機能することができる。
【０１００】
クライアントのための仮想プライベートネットワーク１２６０をプロバイダネットワーク１２００に構築するために、一つ以上のリソースインスタンス（例えば、ＶＭ１２２４Ａ及び１２２４Ｂ、並びにストレージ１２１８Ａ及び１２１８Ｂ）を仮想プライベートネットワーク１２６０に配分することができる。他のリソースインスタンス（例えば、ストレージ１２１８Ｃ及びＶＭ１２２４Ｃ）を、他のクライアントの使用のために、プロバイダネットワーク１２００において使用可能なままにできることに留意されたい。パブリックＩＰアドレスのレンジも、仮想プライベートネットワーク１２６０に配分することができる。さらに、プロバイダネットワーク１２００の一つ以上のネットワーキングデバイス（ルータ、スイッチなど）も、仮想プライベートネットワーク１２６０に配分することができる。仮想プライベートネットワーク１２６０におけるプライベートゲートウェイ１２６２と、クライアントネットワーク１２５０におけるゲートウェイ１２５６との間に、プライベート通信チャネル１２４２を構築することができる。
【０１０１】
少なくともいくつかの実施形態では、仮想プライベートネットワーク１２６０は、プライベートゲートウェイ１２６２に加えてまたはその代わりに、パブリックゲートウェイ１２６４を含むことができる。このゲートウェイ１２６４によって、仮想プライベートネットワーク１２６０内のリソースは、プライベート通信チャネル１２４２を通じる代わりにまたはそれに加えて、中間ネットワーク１２４０を通じてエンティティ（例えば、ネットワークエンティティ１２４４）と、かつ逆に、直接に通信することができる。
【０１０２】
仮想プライベートネットワーク１２６０は、必ずではないが、二つ以上のサブネットワーク、またはサブネット１２７０に分割することができる。例えば、プライベートゲートウェイ１２６２及びパブリックゲートウェイ１２６４の両方を含む実施では、プライベートネットワークは、プライベートゲートウェイ１２６２を通じて連絡可能なリソース（この実施例ではＶＭ１２２４Ａ及びストレージ１２１８Ａ）を含むサブネット１２７０Ａと、パブリックゲートウェイ１２６４を通じて連絡可能なリソース（この実施例ではＶＭ１２２４Ｂ及びストレージ１２１８Ｂ）を含むサブネット１２７０Ｂとに分割することができる。
【０１０３】
クライアントは、特定のクライアントパブリックＩＰアドレスを、仮想プライベートネットワーク１２６０内の特定のリソースインスタンスに割り当てることができる。次に、中間ネットワーク１２４０におけるネットワークエンティティ１２４４は、トラフィックを、クライアントによって発行されたパブリックＩＰアドレスに送信することができる。トラフィックは、プロバイダネットワーク１２００によって、関連するリソースインスタンスに伝送される。リソースインスタンスから戻されたトラフィックは、プロバイダネットワーク１２００によって伝送され、中間ネットワーク１２４０を通じてネットワークエンティティ１２４４に戻される。リソースインスタンスとネットワークエンティティ１２４４との間のトラフィックのルーティングには、パブリックＩＰアドレスとリソースインスタンスのプライベートＩＰアドレスとの間で変換するためのネットワークアドレス変換が必要となり得ることに留意されたい。
【０１０４】
少なくともいくつかの実施形態では、クライアントは、図１２に図示するようなクライアントの仮想プライベートネットワーク１２６０におけるパブリックＩＰアドレスを、クライアントの外部ネットワーク１２５０におけるデバイスに再マッピングすることができる。パケットを（例えば、ネットワークエンティティ１２４４から）受信すると、パケットによって示される宛先ＩＰアドレスを、外部ネットワーク１２５０におけるエンドポイントに再マッピングし、プライベート通信チャネル１２４２または中間ネットワーク１２４０のいずれかを通じるそれぞれのエンドポイントへのパケットのルーティングを処理することを、ネットワーク１２００は決定することができる。応答トラフィックは、プロバイダネットワーク１２００を通じてエンドポイントからネットワークエンティティ１２４４に、あるいは、クライアントネットワーク１２５０によってネットワークエンティティ１２４４に直接に伝送することができる。ネットワークエンティティ１２４４の観点からすれば、ネットワークエンティティ１２４４が、プロバイダネットワーク１２００におけるクライアントのパブリックＩＰアドレスと通信しているかのようである。しかしながら、ネットワークエンティティ１２４４は、実際には、クライアントネットワーク１２５０におけるエンドポイントと通信した。
【０１０５】
図１２は、中間ネットワーク１２４０における、かつプロバイダネットワーク１２００外部のネットワークエンティティ１２４４を示すが、ネットワークエンティティは、プロバイダネットワーク１２００におけるエンティティであってもよい。例えば、プロバイダネットワーク１２００に提供されるリソースインスタンスのうちの一つは、トラフィックをクライアントによって発行されたパブリックＩＰアドレスに送信するネットワークエンティティであってもよい。
【０１０６】
図１３は、少なくともいくつかの実施形態に従う、プロバイダネットワークにおける実施例の仮想プライベートネットワーク実装内のサブネット及びグループを図示する。少なくともいくつかの実施形態では、図１２におけるプロバイダネットワーク１２００などのプロバイダネットワークによって、クライアントは、クライアントの仮想プライベートネットワーク１３１０内に、サブネット１３１４内に、またはサブネット１３１４にわたって仮想グループ１３１６を構築及び管理することができる。少なくともいくつかの実施形態では、グループ１３１６は、例えば、グループ１３１６内の一つ以上のリソースインスタンス１３１８に連絡することを許可されたトラフィックを制御するファイアウォールとしての機能を果たすことができる。クライアントは、プライベートネットワーク１３１０内に一つ以上のグループ１３１６を構築し、プライベートネットワーク１３１０内の各リソースインスタンス１３１８を、グループ１３１６の一つ以上に関連付けることができる。少なくともいくつかの実施形態では、クライアントは、グループ１３１６に関連するリソースインスタンス１３１８に連絡することを許可されたインバウンドトラフィックを制御する、各グループ１３１６についての規則を構築及び／または修正することができる。
【０１０７】
図１３に示す実施例の仮想プライベートネットワーク１３１０では、プライベートネットワーク１３１０は、二つのサブネット１３１４Ａ及び１３１４Ｂに分割されている。プライベートネットワーク１３１０へのアクセスは、ゲートウェイ（複数可）１３３０によって制御される。各サブネット１３１４は、それぞれのサブネット１３１４におけるリソースインスタンス１３１８に（かつそれから）トラフィックを伝送するロールを果たす少なくとも一つのルータ１３１２を含むことができる。図１３に示す実施例では、リソースインスタンス１３１８Ａ〜１３１８Ｅは、サブネット１３１４Ａに対応し、リソースインスタンス１３１８Ｆ〜１３１８Ｊは、サブネット１３１４Ｂに対応している。クライアントは、四つのグループ１３１６Ａ〜１３１６Ｄを構築した。図１３に示すように、グループは、サブネット１３１４Ａにおけるリソースインスタンス１３１８Ａ及び１３１８Ｂ、並びにサブネット１３１４Ｂにおけるリソースインスタンス１３１８Ｆを含むグループ１３１６Ａのように、サブネット１３１４にわたって広がることができる。さらに、リソースインスタンス１３１８は、グループ１３１６Ａ及び１３１６Ｂに含まれるリソースインスタンス１３１８Ａのように、二つ以上のグループ１３１６に含ませることができる。
（実例となるシステム）
【０１０８】
少なくともいくつかの実施形態では、本明細書に記述するようなアクセス制御方法及び装置の一部またはすべてを実施するサーバは、図１４に図示するコンピュータシステム２０００などの、一つ以上のコンピュータアクセス可能な媒体を含む、またはそれにアクセスするように構成された汎用コンピュータシステムを含むことができる。図示する実施形態では、コンピュータシステム２０００は、入出力（Ｉ／Ｏ）インターフェース２０３０を通じてシステムメモリ２０２０に連結された一つ以上のプロセッサ２０１０を含む。コンピュータシステム２０００は、さらに、Ｉ／Ｏインターフェース２０３０に連結されたネットワークインターフェース２０４０を含む。
【０１０９】
さまざまな実施形態では、コンピュータシステム２０００は、一つのプロセッサ２０１０、またはいくつかの（例えば、二つ、四つ、八つまたは別の適切な数の）プロセッサ２０１０を含むマルチプロセッサシステムを含むユニプロセッサシステムであってもよい。プロセッサ２０１０は、命令を実行する能力がある任意の適切なプロセッサであってもよい。例えば、さまざまな実施形態では、プロセッサ２０１０は、ｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣもしくはＭＩＰＳ  ＩＳＡ、または任意の他の適切なＩＳＡなどの様々なインストラクションセットアーキテクチャ（ＩＳＡ）のうちのいずれかを実装する汎用または組み込みプロセッサであってもよい。マルチプロセッサシステムでは、プロセッサ２０１０の各々は、必ずではないが、通例、同一のＩＳＡを実装することができる。
【０１１０】
システムメモリ２０２０は、プロセッサ（複数可）２０１０によってアクセス可能な命令及びデータを保存するように構成できる。さまざまな実施形態では、システムメモリ２０２０は、静的ランダムアクセスメモリ（ＳＲＡＭ）、同期ダイナミックＲＡＭ（ＳＤＲＡＭ）、不揮発性／フラッシュタイプメモリ、または任意の他のタイプのメモリなどの任意の適切なメモリ技術を使用して実施することができる。図示する実施形態では、アクセス制御に関して前述した方法、技術及びデータなどの一つ以上の所望の機能を実施するプログラム命令及びデータは、コード２０２５及びデータ２０２６としてシステムメモリ２０２０内に保存されるものとして示される。
【０１１１】
一つの実施形態では、Ｉ／Ｏインターフェース２０３０は、プロセッサ２０１０、システムメモリ２０２０、及びネットワークインターフェース２０４０または他の周辺インターフェースを含む、デバイス内の任意の周辺デバイス間のＩ／Ｏトラフィックを調整するように構成できる。いくつかの実施形態では、Ｉ／Ｏインターフェース２０３０は、一つのコンポーネント（例えば、システムメモリ２０２０）からのデータ信号を、別のコンポーネント（例えば、プロセッサ２０１０）が使用するのに適したフォーマットに変換するための、任意の必須のプロトコル、タイミングまたは他のデータ変換を実行することができる。いくつかの実施形態では、Ｉ／Ｏインターフェース２０３０は、例えば、周辺コンポーネント相互接続（ＰＣＩ）バス標準またはユニバーサルシリアルバス（ＵＳＢ）標準の異形などの、さまざまなタイプの周辺バスを通じて加えられる、デバイスのサポートを含むことができる。いくつかの実施形態では、Ｉ／Ｏインターフェース２０３０の機能は、例えば、ノースブリッジ及びサウスブリッジなどの二つ以上の別個のコンポーネントに分けることができる。また、いくつかの実施形態では、システムメモリ２０２０とのインターフェースなどのＩ／Ｏインターフェース２０３０の機能性のいくつかまたはすべては、プロセッサ２０１０に組み込むことができる。
【０１１２】
ネットワークインターフェース２０４０は、コンピュータシステム２０００と、例えば、図１〜図１３に図示するような他のコンピュータシステムまたはデバイスなどの、一つ以上のネットワーク２０５０に取り付けられた他のデバイス２０６０との間でデータを交換可能なように構成できる。さまざまな実施形態では、ネットワークインターフェース２０４０は、例えば、イーサネット（登録商標）ネットワークタイプなどの任意の適切な有線または無線の汎用データネットワークを通じて通信をサポートすることができる。さらに、ネットワークインターフェース２０４０は、アナログ音声ネットワークもしくはデジタルファイバ通信ネットワークなどの遠隔通信もしくはテレフォニーネットワーク、ファイバチャネルＳＡＮなどのストレージエリアネットワーク、または任意の他の適切なタイプのネットワーク及び／もしくはプロトコルを通じて通信をサポートすることができる。
【０１１３】
いくつかの実施形態では、システムメモリ２０２０は、アクセス制御方法の実施形態を実施するための、図１〜図１３に関して前述したようなプログラム命令及びデータを保存するように構成されたコンピュータアクセス可能な媒体の一つの実施形態であってもよい。しかしながら、他の実施形態では、プログラム命令及び／またはデータは、種々のタイプのコンピュータアクセス可能な媒体において受信、それに送信または保存することができる。概して言えば、コンピュータアクセス可能な媒体は、磁気媒体または光媒体などの非一時的ストレージ媒体またはメモリ媒体、例えば、Ｉ／Ｏインターフェース２０３０を通じてコンピュータシステム２０００に連結されたディスクまたはＤＶＤ／ＣＤを含むことができる。非一時的なコンピュータアクセス可能なストレージ媒体は、システムメモリ２０２０または別のタイプのメモリとしてコンピュータシステム２０００のいくつかの実施形態に含ませることができる、例えば、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどの任意の揮発性または不揮発性媒体も含むことができる。さらに、コンピュータアクセス可能な媒体は、例えば、ネットワークインターフェース２０４０を通じて実装できる、ネットワーク及び／または無線リンクなどの通信媒体を通じて搬送される、伝送媒体または電気、電磁もしくはデジタル信号などの伝送信号を含むことができる。
（結論）
【０１１４】
さまざまな実施形態は、さらに、コンピュータアクセス可能な媒体において、前述に従い実装された命令及び／またはデータの受信、送信または保存を含むことができる。概して言えば、コンピュータアクセス可能な媒体は、磁気媒体または光媒体、例えば、ディスクまたはＤＶＤ／ＣＤ−ＲＯＭなどのストレージ媒体またはメモリ媒体、例えば、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどの揮発性または不揮発性媒体、並びにネットワーク及び／または無線リンクなどの通信媒体を通じて搬送される、伝送媒体または電気、電磁もしくはデジタル信号などの伝送信号を含むことができる。
【０１１５】
図面に図示し、本明細書に記述するようなさまざまな方法は、方法の例示的な実施形態を示す。方法は、ソフトウェア、ハードウェアまたはそれらの組み合わせにおいて実施することができる。方法の順序は変更でき、さまざまな要素を追加、再追加、結合、除外、修正などをすることができる。
【０１１６】
本開示の利益を有する当業者に明らかなようなさまざまな変更及び変化を為すことができる。すべてのそのような変更及び変化を包含し、それ故に、前の記述が、限定的意味ではなく、実例とみなされることが意図される。
【０１１７】
本開示の実施形態は、以下の条項に照らして記述することができる。
〔１〕
ネットワーク基板と、
プロバイダネットワークにおいてポリシを管理及び評価するように構成されたアクセス制御サービスを実施する一つ以上のコンピューティングデバイスと、
一つ以上のリソースインスタンスをその各々が実装する複数のホストデバイスと、を備えており、
ホストデバイスの一つ以上が、各々、
それぞれのホストデバイスにおいてリソースインスタンスからネットワークパケットを取得し、
アクセス制御サービスと通信して、サービスによって実行されるリソースインスタンスに関連するポリシの評価に従い、リソースインスタンスについての、ネットワークパケットによって示されるターゲットへの接続をオープンにすることを許可するか否かを決定し、
ポリシに従いネットワークパケットによって示されるターゲットへの接続をオープンにすることをリソースインスタンスが許可された場合には、一つ以上のネットワークパケットを、リソースインスタンスから、ネットワーク基板にわたるオーバーレイネットワークパスを通じてターゲットに送信し、
ポリシに従いネットワークパケットによって示されるターゲットへの接続をオープンにすることをリソースインスタンスが許可されなかった場合には、ネットワークパケットをターゲットに送信することなく、ネットワークパケットを廃棄するように構成された、プロバイダネットワーク。
〔２〕
ターゲットが、プロバイダネットワークにおける別のリソースインスタンス、または別のネットワークにおけるエンドポイントである、条項１に記載のプロバイダネットワーク。
〔３〕
リソースインスタンス及びターゲットが、共に、プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装内のリソースインスタンスである、条項１に記載のプロバイダネットワーク。
〔４〕
リソースインスタンスについての、ネットワークパケットによって示されるターゲットへの接続をオープンにすることを許可するか否かを決定するために、アクセス制御サービスが、さらに、ターゲットに関連するポリシを決定及び評価するように構成され、リソースインスタンスに関連するポリシ及びターゲットに関連するポリシの両方が接続を許可する場合に、リソースインスタンスについてのみ、ターゲットへの接続をオープンにすることを許可する、条項１に記載のプロバイダネットワーク。
〔５〕
リソースインスタンスが、ホストデバイスにおける仮想マシン（ＶＭ）として実装され、各ホストデバイスが、それぞれのホストデバイスにおける複数の仮想マシン（ＶＭ）をモニタする仮想マシンモニタ（ＶＭＭ）を含み、ホストデバイスにおけるＶＭＭが、前述の取得、前述のアクセス及び前述の送信を実行する、条項１に記載のプロバイダネットワーク。
〔６〕
リソースインスタンスに関連するポリシを評価するために、アクセス制御サービスが、
プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装におけるロールをリソースインスタンスが担ったことを決定し、
リソースインスタンスが担ったロールに関連するポリシを決定し、
ロールに関連するポリシを評価するように構成された、条項１に記載のプロバイダネットワーク。
〔７〕
一つ以上のネットワークパケットを、リソースインスタンスから、ネットワーク基板にわたるオーバーレイネットワークパスを通じてターゲットに送信するために、ホストデバイスが、
カプセル化プロトコルに従い一つ以上のネットワークパケットをカプセル化して、一つ以上のカプセル化パケットを生成し、
カプセル化パケットを、カプセル化パケットにおけるルーティング情報に従い、ターゲットに伝送されるようにネットワーク基板に送信するように構成された、条項１に記載のプロバイダネットワーク。
〔８〕
ネットワーク基板に実装されたオーバーレイネットワーク外部のエンドポイントと通信して、オーバーレイネットワークにおけるエンドポイントについてのアイデンティティを構築し、
アクセス制御サービスにアクセスして、ターゲットリソースインスタンスに関連するポリシの評価に従い、エンドポイントについての、オーバーレイネットワークを通じたターゲットリソースインスタンスへの接続をオープンにすることを許可することを決定し、
前述の決定に応答して、一つ以上のネットワークパケットを、エンドポイントから、ネットワーク基板にわたるオーバーレイネットワークパスを通じてターゲットリソースインスタンスに送信するように構成された一つ以上のネットワークデバイスをさらに備えた、条項１に記載のプロバイダネットワーク。
〔９〕
プロバイダネットワーク内のホストデバイスに実装されたカプセル化層プロセスによって、ホストデバイスに実装された一つ以上のリソースインスタンスのうちの一つから、ターゲットエンドポイントに導かれるネットワークパケットを取得することと、
プロバイダネットワークにおけるアイデンティティ及びアクセス管理環境に従い、リソースインスタンスをプリンシパルとして識別することを決定することと、
プリンシパルに関連するポリシの評価に従い、プリンシパルについての、ターゲットエンドポイントへの接続をオープンにすることを許可することを決定することと、
プリンシパルがターゲットエンドポイントへの接続をオープンにすることを許可されたことの前述の決定に応答して、
一つ以上のカプセル化パケットを生成するためのカプセル化プロトコルに従い、リソースインスタンスからの一つ以上のネットワークパケットをカプセル化し、ターゲットエンドポイントに導くことと、及び
一つ以上のカプセル化パケットを、カプセル化パケットにおけるルーティング情報に従い、ターゲットエンドポイントに伝送されるようにプロバイダネットワークのネットワーク基板に送信することと、を含む、方法。
〔１０〕
ターゲットエンドポイントが、プロバイダネットワークにおける別のリソース、または別のネットワークにおけるエンドポイントである、条項９に記載の方法。
〔１１〕
リソースインスタンス及びターゲットエンドポイントが、共に、プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装内のリソースインスタンスである、条項９に記載の方法。
〔１２〕
プリンシパルに関連するポリシの認可ステートメントの評価に従う、プリンシパルについての、ターゲットエンドポイントへの接続をオープンにすることを許可することの前述の決定が、
カプセル化層プロセスがポリシ評価リクエストをプロバイダネットワークにおけるアクセス制御サービスに送信することと、
アクセス制御サービスによって、プリンシパルに関連するポリシを決定することと、
アクセス制御サービスによって、プリンシパルに関連するポリシにおける一つ以上の認可ステートメントを評価して、プリンシパルについての、ターゲットエンドポイントに関連するリソースへの接続をオープンにすることをポリシが許可することを決定することと、及び
プリンシパルについての、ターゲットエンドポイントへの接続をオープンにすることが許可されたことを、カプセル化層プロセスに示すことと、を含む、条項９に記載の方法。
〔１３〕
アクセス制御サービスが、さらに、ターゲットエンドポイントに関連するリソースに関連するポリシの決定及び評価を実行し、プリンシパルに関連するポリシ及びリソースに関連するポリシの両方が接続を許可する場合に、プリンシパルについてのみ、リソースへの接続をオープンにすることを許可する、条項１２に記載の方法。
〔１４〕
プリンシパルに関連するポリシにおける各認可ステートメントが、認可を許可または拒否するかについての一つ以上のアクション、認可ステートメントが適用される一つ以上のリソース、及び示された一つ以上のアクションが示された一つ以上のリソースについて許可または拒否されるかを示す、条項１２に記載の方法。
〔１５〕
カプセル化層プロセスによって、アイデンティティ及びアクセス管理環境に従い、プリンシパルとして識別されたリソースインスタンスから、別のターゲットエンドポイントに導かれる他のネットワークパケットを取得することと、
プリンシパルに関連するポリシの評価に従い、プリンシパルについての、他のターゲットエンドポイントへの接続をオープンにすることを許可しないことを決定することと、及び
前述の決定に応答して、ネットワークパケットを他のターゲットエンドポイントに送信せずに、他のネットワークパケットを廃棄することと、をさらに含む、条項９に記載の方法。
〔１６〕
プリンシパルに関連するポリシの評価に従う、プリンシパルについての、ターゲットエンドポイントへの接続をオープンにすることを許可することの前述の決定が、
プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装におけるロールをプリンシパルが担ったことを決定することと、ここで、プリンシパルに関連するポリシが、プリンシパルが担ったロールに関連するポリシであり、及び
ロールに関連するポリシを評価して、プリンシパルについての、ターゲットエンドポイントへの接続をオープンにすることを許可することを決定することと、を含む、条項９に記載の方法。
〔１７〕
プロバイダネットワーク内のデバイスにおけるカプセル化層プロセスを実施するための、コンピュータ実行可能なプログラム命令を保存する非一時的なコンピュータアクセス可能なストレージ媒体であって、カプセル化層プロセスが、
ソースエンドポイントから、ターゲットエンドポイントに導かれるネットワークパケットを取得し、
ソースエンドポイントについてのリソース識別子、及びターゲットエンドポイントについてのリソース識別子を決定し、
ソースエンドポイントについてのリソース識別子に関連するポリシ、及びターゲットエンドポイントについてのリソース識別子に関連するポリシを決定し、
ソースエンドポイントについてのリソース識別子に関連するポリシ、及びターゲットエンドポイントについてのリソース識別子に関連するポリシのいずれかまたは両方の評価に従い、ソースエンドポイントについてのターゲットエンドポイントへの接続をオープンにすることを許可することを決定し、
ソースエンドポイントがターゲットエンドポイントへの接続をオープンにすることを許可されたことの前述の決定に応答して、
ソースエンドポイントからの一つ以上のネットワークパケットにタグ付けし、一つ以上のカプセル化パケットを生成するためのカプセル化プロトコルに従うカプセル化メタデータを用いてターゲットエンドポイントに導き、
カプセル化パケットにおけるカプセル化メタデータに従い、カプセル化パケットを、ターゲットエンドポイントに伝送されるようにプロバイダネットワークのネットワーク基板に送信するように構成された、非一時的なコンピュータアクセス可能なストレージ媒体。
〔１８〕
ソースエンドポイントについてのリソース識別子に関連するポリシ、及びターゲットエンドポイントについてのリソース識別子に関連するポリシのいずれかまたは両方の評価に従い、ソースエンドポイントについてのターゲットエンドポイントへの接続をオープンにすることを許可することを決定するために、カプセル化層プロセスが、
ソースエンドポイントについてのリソース識別子に関連するポリシを評価して、ソースエンドポイントについての、ターゲットエンドポイントに関連するリソース識別子への接続をオープンにすることをポリシが許可することを決定し、
ターゲットエンドポイントについてのリソース識別子に関連するポリシを評価して、ターゲットエンドポイントについての、ソースエンドポイントに関連するリソース識別子からの接続をアクセプトすることをポリシが許可することを決定するように構成された、条項１７に記載の非一時的なコンピュータアクセス可能なストレージ媒体。
〔１９〕
カプセル化層プロセスが、さらに、一つ以上のカプセル化パケットの少なくとも一つにおけるメタデータとしてソースエンドポイントについてのアイデンティティ関連情報を含むように構成され、ソースエンドポイントについてのアイデンティティ関連情報が、ターゲットエンドポイントにおけるポリシに従い、ソースエンドポイントについてのアクセス決定を為すようにターゲットエンドポイントにおいて使用されるように構成された、条項１７に記載の非一時的なコンピュータアクセス可能なストレージ媒体。
〔２０〕
ソースエンドポイントが、プロバイダネットワーク外部に位置し、ターゲットエンドポイントが、プロバイダネットワークにおけるリソースインスタンスであり、ソースエンドポイントについてのリソース識別子を決定するために、カプセル化層プロセスが、ソースエンドポインと通信して、プロバイダネットワークにおけるソースエンドポイントについての安全なアイデンティティを構築するように構成された、条項１７に記載の非一時的なコンピュータアクセス可能なストレージ媒体。
【図１】
2018093547.tif 000003
【図２】
2018093547.tif 000004
【図３】
2018093547.tif 000005
【図４Ａ】
2018093547.tif 000006
【図４Ｂ】
2018093547.tif 000007
【図５Ａ】
2018093547.tif 000008
【図５Ｂ】
2018093547.tif 000009
【図６】
2018093547.tif 000010
【図７】
2018093547.tif 000011
【図８】
2018093547.tif 000012
【図９】
2018093547.tif 000013
【図１０】
2018093547.tif 000014
【図１１】
2018093547.tif 000015
【図１２】
2018093547.tif 000016
【図１３】
2018093547.tif 000017
【図１４】
2018093547.tif 000018
【外国語明細書】
2018093547000001.pdf