JP2016540446A - 仮想ネットワークにおけるアイデンティティ及びアクセス管理ベースのアクセス制御 - Google Patents

仮想ネットワークにおけるアイデンティティ及びアクセス管理ベースのアクセス制御 Download PDF

Info

Publication number
JP2016540446A
JP2016540446A JP2016538551A JP2016538551A JP2016540446A JP 2016540446 A JP2016540446 A JP 2016540446A JP 2016538551 A JP2016538551 A JP 2016538551A JP 2016538551 A JP2016538551 A JP 2016538551A JP 2016540446 A JP2016540446 A JP 2016540446A
Authority
JP
Japan
Prior art keywords
network
resource
target
policy
principal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016538551A
Other languages
English (en)
Other versions
JP6479814B2 (ja
Inventor
ライランド,マーク
Original Assignee
アマゾン・テクノロジーズ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アマゾン・テクノロジーズ・インコーポレーテッド filed Critical アマゾン・テクノロジーズ・インコーポレーテッド
Publication of JP2016540446A publication Critical patent/JP2016540446A/ja
Application granted granted Critical
Publication of JP6479814B2 publication Critical patent/JP6479814B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

仮想(オーバーレイ)ネットワーク環境内のエンティティ間の接続についての、アイデンティティ及びアクセス管理ベースのアクセス制御を提供するための方法及び装置。オーバーレイネットワークのカプセル化層において、帯域外の接続生成プロセスを利用してアクセス制御を施行し、それ故に、ソースとターゲットとの間のオーバーレイネットワーク接続を、ポリシに従い許可または拒否することができる。例えば、リソースにはアイデンティティが与えられ得、識別されたリソースがロールを担い、他のリソースへの接続の構築に関する認可を含む、ロールについてのポリシを定義することができる。所与のリソース(ソース)が別のリソース(ターゲット)との接続の構築を試みるときに、ロール(複数可)を決定し、ロールについてのポリシ(複数可)を識別し、認可(複数可)を確認して、オーバーレイネットワークを通じたソースからターゲットまでの接続を許可または拒否するかを決定することができる。【選択図】図3

Description

多くの企業及び他の組織は、(例えば、ローカルネットワークの一部として)同一場所に配置されたコンピューティングシステム、あるいは、(例えば、一つ以上のプライベート及び/またはパブリック中間ネットワークによって接続された)複数の異なる地理的位置に配置されたコンピューティングシステムなどの、業務をサポートするための多数のコンピューティングシステムを相互接続するコンピュータネットワークを動作させている。例えば、かなりの数の相互接続されたコンピューティングシステムを収容するデータセンタ、例えば、単一の組織及びその代行者が動作させているプライベートデータセンタ、並びにコンピューティングリソースを顧客またはクライアントに提供するためのビジネスとしてエンティティが動作させているパブリックデータセンタが、一般的となってきた。一部のパブリックデータセンタのオペレータは、ネットワークアクセス、電力及び安全に設置されたファシリティを、さまざまなクライアントが所有しているコンピューティングハードウェアに提供し、その一方で、他のパブリックデータセンタのオペレータは、クライアントが使用するために利用可能なハードウェアリソースも含む「フルサービス」ファシリティを提供する。しかしながら、典型的なデータセンタのスケール及び範囲が増大するにつれて、物理コンピューティングリソースをプロビジョニング、動作及び管理するタスクは、ますます複雑になってきた。
コモディティハードウェアのための仮想化テクノロジの出現は、多様なニーズを持つ多くのクライアントのための大規模なコンピューティングリソースの管理に対して利益を与えてきた。これにより、さまざまなコンピューティングリソースを、複数のクライアントによって効率的にかつ安全に共有することに加えて、物理ノードのセットの間の、コンピューティングリソースのプロビジョニング、管理及び動作を促進することができるようになった。例えば、仮想化テクノロジによって、単一の物理コンピューティングマシンによってホストされた一つ以上の仮想マシンを各ユーザに提供することによって、単一の物理コンピューティングマシンを複数のユーザ間で共有することができる。ここでは、各々のそのような仮想マシンが、所与のハードウェアコンピューティングリソースの唯一のオペレータ及び管理者であるという錯覚をユーザに与える異なる論理コンピューティングシステムの機能を果たし、一方で、アプリケーション隔離及びセキュリティもさまざまな仮想マシン間に提供するソフトウェアシミュレーションである。さらに、一部の仮想化テクノロジは、単一の仮想マシンなどの、二つ以上の物理リソースにわたる仮想リソースを、複数の異なる物理コンピューティングシステムにわたる複数の仮想プロセッサに提供することができる。別の実施例として、仮想化テクノロジによって、複数のデータストレージデバイスにわたって分配することができる仮想化データストアを各ユーザに提供することによって、データストレージハードウェアを複数のユーザ間で共有することができる。ここでは、各々のそのような仮想化データストアが、データストレージリソースの唯一のオペレータ及び管理者であるという錯覚をユーザに与える異なる論理データストアの機能を果たす。別の実施例として、仮想化オペレーティングシステムは、ネットワークにわたるメモリページのコピーの停止及び開始、さらには、実行中にそれに続く、「ライブマイグレーション」としても公知のプロセスを使用するネットワークトラフィックの最後のスナップショット及び再ルーティングのいずれかによって、物理ノード間をより容易に移動することができる。
結局は、これらのトレンドは、一方では、コンピューティング及びストレージリソースの大きな共通のプールからのリソースを共有し、他方では、テナント固有のリソースを、プライバシ及びセキュリティを維持する論理的に分離した方式において機能させる、複数の顧客または「テナント」のための大規模な「ユーティリティスタイル」(利用時払い)のコンピューティング環境の出現をもたらした。そのようなシステムは、マルチテナントのクラウドコンピューティング環境または「パブリッククラウド」として公知である。この用法では、「パブリック」という用語は、テナントの使用が分離されてなくかつ安全でないことは意味しない。むしろ、パブリックのメンバが、パブリッククラウド内の論理的に分離されたリソースにアクセスでき、少なくとも一部の場合では、例えば、1時間当たり、ギガバイト当たりまたは月当たりの基準に基づく使用に対する代金を支払うことができることを意味する。
少なくともいくつかの実施形態に従う、オーバーレイネットワーク接続におけるアクセス制御方法の高レベルフローチャートである。 アクセス制御のための方法及び装置の実施形態を実施できる実施例のプロバイダネットワーク環境を図示する。 少なくともいくつかの実施形態に従う、プロバイダネットワークにおけるアクセス制御サービスを図示する。 少なくともいくつかの実施形態に従う、ポリシについての一般形式の非限定的な実施例を提供する。 少なくともいくつかの実施形態に従う、プリンシパルまたはリソースについて定義できるポリシの非限定的な実施例を提供する。 少なくともいくつかの実施形態に従う、クライアントの仮想プライベートネットワークにおいてリソースインスタンス間のアクセス制御を提供するための方法及び装置を図示するブロック図である。 少なくともいくつかの実施形態に従う、クライアントの仮想プライベートネットワークにおけるリソースインスタンスと外部エンドポイントとの間のアクセス制御を提供するための方法及び装置を図示するブロック図である。 少なくともいくつかの実施形態に従う、プリンシパルがロールを担い、ロールがポリシを有し、かつロールについてのポリシの評価に基づいてアクセスを許可または拒否する、オーバーレイネットワーク接続におけるアクセス制御方法のフローチャートである。 少なくともいくつかの実施形態に従う、実施例のプロバイダネットワーク環境を図示する。 いくつかの実施形態に従う、IPトンネリング技術を使用して、ネットワーク基板においてオーバーレイネットワークを実装する実施例のデータセンタを図示する。 少なくともいくつかの実施形態に従う、ストレージ仮想化サービス及びハードウェア仮想化サービスをクライアントに提供する実施例のプロバイダネットワークのブロック図である。 少なくともいくつかの実施形態に従う、仮想プライベートネットワークを少なくとも何人かのクライアントに提供する実施例のプロバイダネットワークを図示する。 少なくともいくつかの実施形態に従う、プロバイダネットワークにおける実施例の仮想プライベートネットワーク実装内のサブネット及びグループを図示する。 いくつかの実施形態において使用できる実施例のコンピュータシステムを図示するブロック図である。
いくつかの実施形態についての実施例及び実例となる図面を手段として実施形態を本明細書に記述するが、当業者は、実施形態が、記述された実施形態または図面に限定されないことを認識する。図面及びそれに関する詳細な説明が、開示する特定の形態に実施形態を限定することは意図せず、むしろ、その意図が、添付の特許請求の範囲によって定義されるような精神及び範囲内に収まるすべての変更物、均等物及び代替物を含むことを理解すべきである。本明細書に使用される見出しは、構成のみを目的とし、記述または特許請求の範囲の範囲を限定するのに使用されることは意図しない。本出願書類全体を通して使用される「することができる」という言葉は、義務的な意味(すなわち、必須の意味)ではなく、許容的な意味(すなわち、可能性を有する意味)において使用される。同様に、「を含む」、「を含んでいる」及び「を含む(三人称単数)」という言葉は、それを含むがそれに限定されないという意味である。
仮想ネットワークにおけるアイデンティティ及びアクセス管理ベースのアクセス制御のための方法及び装置のさまざまな実施形態を記述する。より具体的には、アイデンティティ及びアクセス管理ベースの、オーバーレイネットワーク環境内のエンティティ間の接続の制御、構築及び管理を提供するための方法の実施形態を記述する。これらの方法は、アイデンティティ及びアクセス管理ベースのアクセス制御方法、または単にアクセス制御方法として本明細書に言及され得る。オーバーレイネットワーク環境は、例えば、エンティティ間の通信のために、ネットワーク基板にわたってカプセル化プロトコル技術を使用することができる。ネットワーク基板にわたってカプセル化プロトコル技術を使用するオーバーレイネットワーク環境では、ネットワークパケットは、ネットワークパケットソース(ネットワークパケットを生成するエンティティ)によって生成され、カプセル化プロトコル技術に従い実装されたカプセル化層において包装またはカプセル化され、(本明細書においてカプセル化パケットまたはネットワーク基板パケットとしても参照される)カプセル化プロトコルパケットを生産することができる。次に、カプセル化パケットを、カプセル化パケットについてのルーティング情報に従い、ネットワーク基板にわたって宛先に伝送することができる。ネットワーク基板にわたるカプセル化パケットのカプセル化情報に従うルーティングは、ネットワーク基板にわたるオーバーレイネットワーク経路またはパスを通じてカプセル化パケットを送信するものとみなすことができる。宛先において、カプセル化層が、カプセル化パケットからネットワークパケットを取り出し(カプセル除去と称されるプロセス)、ネットワークパケットをネットワークパケット宛先(ネットワークパケットを消費するエンティティ)に提供または送信する。
従来の物理ネットワーク環境では、パケットを別のIPアドレスに送信することを試みる物理ノードによる最初のステップは、サブネットにおけるすべてのホストによって論理的に受信されるブロードキャストパケットであるARP(アドレス解決プロトコル)パケットを送信することであった。(いくつかの実施では、ネットワークスイッチが、以前のブロードキャストの結果をキャッシュしてこのプロセスを短絡できるが、論理アルゴリズムは変更されない。)ARPパケットは、リソース発見メッセージ、どの物理ノードが所望のIPアドレスに対応するホストであるかの問合せとして働く。正常に動作するネットワークでは、唯一のホスト(そのIPアドレスに関与するホスト)が、そのMAC(媒体アクセス制御、または層2)アドレスに応答する。その後、送信ホストが、MACアドレスとIPアドレスとの間のマッピングを、そのローカルARPテーブルにキャッシュする。この標準的な方法にはセキュリティリスクが存在することに留意されたい。例えば、ARPリクエストが真を意味していることに対する応答が多くの物理ネットワークの制限であるか否かを決定するのに安全な方法がなく、「ARPキャッシュポイズニング」が既知のネットワークセキュリティ攻撃ベクトルであるという事実がある。
オーバーレイネットワーク環境では、前述のプロセスは、下位互換性ではあるが、セキュリティリスクを減少できるように模倣される。オーバーレイネットワークの少なくともいくつかの実施では、ARPパケットは、転送されないが、所与のIPアドレスにおける別のホストと通信することをホストが望むカプセル化層を通知するある種のアプリケーションプログラミングインターフェース(API)コールとして扱われる。次に、カプセル化層は、マッピングサービスにおいてルックアップを実行し、パケットをその宛先に送信する権利をホストが有するか否か、そして送信元から受信するように構成された、リクエストされたIPアドレスを持つ、対応する可能性がある受信ノードが存在するか否かを決定する。このマッピングサービスルックアップが成功した場合には、カプセル化層は、仮想MAC(VMAC)アドレスを、リクエストしているホストに戻し、その後、オーバーレイネットワークホストに戻すように提示されるVMACによって所有されるものとして、探索されたIPアドレスを処理する。少なくともいくつかの実施では、ARPパケットを視認またはそれに直接応答することをホストに許可しないことによって、ネットワークセキュリティを向上する。
オーバーレイネットワーク環境では、ネットワークパケットソース及びネットワークパケット宛先の観点からすれば、従来の方法においてネットワークパケットを転送する物理ネットワークによって二つのエンティティが接続されているかのようである。しかしながら、実際には、ネットワークパケットソースからのネットワークパケットは、カプセル化され、潜在的に異なるアドレス指定スキーム、ルーティングスキーム、プロトコル、ネットワーク基板を通じてパケットを供給するための、オーバーレイネットワーク環境において使用されるその他のものを用いて、ネットワークパケット宛先に伝送されるようにネットワーク基板にわたって送信される。
各々のカプセル化パケットは、一つ、二つまたはそれ以上のネットワークパケットを含むことができる。さまざまな実施形態では、カプセル化プロトコルは、IPv6(インターネットプロトコルバージョン6)またはユーザデータグラムプロトコル(UDP)などの標準ネットワークプロトコル、あるいは、非標準の、カスタムなまたは私有のネットワークプロトコルであってもよい。カプセル化プロトコルに従いカプセル化されたネットワークパケットは、例えば、これらに限定されないが、IPv4(インターネットプロトコルバージョン4)パケット、IPv6パケット、伝送制御プロトコル(TCP)パケット、ユーザデータグラムプロトコル(UDP)パケット、またはインターネット制御メッセージプロトコル(ICMP)パケットを含むインターネットプロトコル(IP)技術パケットであってもよい。しかしながら、ネットワークパケットは、他のIPプロトコル、IPプロトコルとは異なる他の標準プロトコル(例えば、OSI TP4)に従うパケット、または他の非標準の、カスタムなもしくは私有のプロトコル(例えば、Novell IPX/SPXまたはXerox XNS)に従うパケットであってもよい。
従来、オーバーレイネットワーク環境において、エンティティ間の接続(例えば、ネットワークパケットソースとネットワークパケット宛先との間のオーバーレイネットワークパス)は、デバイス及び/または簡潔さのために本明細書においてカプセル化層プロセスと称され得るカプセル化層におけるプロセスによって構築される。カプセル化層プロセスの実施例として、オーバーレイネットワーク環境は、仮想マシンモニタ(VMM)とも称される、ハイパーバイザのインスタンスを各々が実装するホストシステムを含むことができる。これは、それぞれのホストシステムにおける一つ以上の仮想マシンインスタンス(VM)の代わりにカプセル化層の機能性を実行し、オーバーレイネットワークカプセル化プロトコルに従い他のエンティティへのパケットフロー(例えば、オーバーレイネットワークパス)を構築する。別の実施例として、カプセル化層プロセスは、ネットワークパケットソースからいくつかまたはすべてのネットワークパケットをインターセプトし、ネットワーク基板にわたって供給するために、カプセル化プロトコルに従いパケットをカプセル化するコプロセッサとしてまたはそこにおいて実施することができる。なおも別の実施例として、カプセル化層プロセスは、(ネットワーキングの観点から見て)VMMとネットワーク基板との間、または(ネットワーキングの観点から見て)物理ハードウェアデバイスにおけるオペレーティングシステムとネットワーク基板との間に位置するデバイスとしてまたはそこにおいて実施することができる。一般に、カプセル化層プロセスのインスタンスは、オーバーレイネットワークのカプセル化プロトコル技術に従いネットワークパケットのカプセル化またはカプセル除去を行うために、ネットワークパケットソースまたは宛先とネットワーク基板との間のどこにでも実装することができる。
通常、オーバーレイネットワークにおける二つのエンティティ間のパケットフローの構築には、ローカルVMからネットワークパケットを受信し、(必ずではないが、ネットワークにおける別のVMであってもよい)ターゲットへのマッピング情報(例えば、基板アドレスマッピングについてのオーバーレイアドレス)を決定するためにマッピングサービスまたはユーティリティ(または、マッピング情報のローカルキャッシュ)にアクセスし、マッピング情報に従いネットワークパケット(複数可)をカプセル化し、カプセル化情報に従い、ターゲットに伝送されるネットワーク基板にカプセル化パケットを送信するVMMが必要となり得る。
従来、カプセル化層は、単純なネットワークIPアドレスアクセス制御方法を実施することができる。例えば、ソースVMMによるクエリ(例えば、ARPクエリ)に応答し、マッピングサービスが有効なターゲットアドレスを有し、かつソースアドレスがそのターゲットアドレスにパケットを送信することが許可された場合には、その結果、ターゲットアドレス(例えば、VMACアドレス)がVMMに戻され、VMMは、ターゲットアドレスに従いネットワークパケット(複数可)をカプセル化し、カプセル化パケットを、ターゲットに伝送されるように基板ネットワークに送信する。いくつかの実施では、オーバーレイネットワークは、ソースのグループ及びターゲットシステムに必要となる基本アクセス規則を書き込み、ネットワーク層において、「アイデンティティ」の大まかな概念のみを提供することができる。例えば、基本アクセス規則は、グループAにおける一つ以上のサーバに、TCPプロトコル及びポート80を使用してグループBにおける一つ以上のサーバにパケットを送信させることができる。しかしながら、従来、カプセル化層は、ネットワーキングエンティティ間の接続を構築するときに、周囲のセキュリティシステム及びネットワーク環境(例えば、プロバイダネットワーク環境)に存在するより一般的なアイデンティティ及びアクセス管理ベースのポリシを施行しない。
前述のようなカプセル化層におけるエンティティ間のオーバーレイネットワークパスまたは接続を構築するプロセスは、帯域外の接続生成プロセスとみなすことができる。(必ずではないが、プロバイダネットワークにおけるソースVM及び宛先VMであってもよい)ソース及びターゲットエンティティは、カプセル化層によって提供されたオーバーレイネットワークまたはオーバーレイネットワーク接続を認識しない。カプセル化層におけるこの帯域外の接続生成プロセスは、カプセル化層におけるアイデンティティ及びアクセス管理ベースのアクセス制御方法及び装置の実施を可能にするように利用することができる。実施形態では、カプセル化層においてネットワークにおけるエンティティ(プリンシパル及び/またはリソース)についてのアイデンティティを構築し、(例えば、プロバイダネットワークにおけるVM、またはVM内のオペレーティングシステムプリンシパルについての)ポリシを定義することができる。ネットワークにおけるエンティティ間の接続を評価及び構築するときに、アイデンティティに従い、(例えば、VMMまたは他のカプセル化層プロセスによって)カプセル化層においてポリシを施行することができる。
ソース及びターゲットエンティティが、TCPなどのコネクション型プロトコルを通じても、またはUDPもしくはICMPなどのコネクションレスプロトコルを通じても通信できることに留意されたい。いずれの場合でも、カプセル化層は、通常、ソースエンティティがネットワークパケットをターゲットエンティティに送信できることが確定され得る帯域外の接続設定を実行することができる。それ故に、コネクションレスプロトコルでさえも、カプセル化層は、二つのエンティティ間のオーバーレイネットワーク「接続」またはパスを構築することができる。それ故に、実施形態では、カプセル化層は、コネクション型及びコネクションレスのネットワークプロトコルの両方において、帯域外の接続設定期間に、二つのエンティティ間のオーバーレイネットワークを通じるネットワーク通信を許可または拒否するかに関する決定の一部として、プリンシパル及びリソースについてのアイデンティティ及びアクセス管理ポリシを評価することを含むことができる。
少なくともいくつかの実施形態では、ホストシステムにおけるVMMは、それぞれのホストシステムにおけるVM(リソースインスタンス)のプライベートIPアドレスを認識する。少なくともいくつかの実施形態では、リソースインスタンス(または、後述するような他のリソース識別子)についてのアイデンティティがプライベートIPアドレス情報に関連し、これによりVMMは、論理的にローカルなまたはプライベートなリソースインスタンスのアイデンティティも認識または発見することができる。
本明細書に使用されるようなプライベートIPアドレスが、プロバイダネットワークにおけるリソースインスタンスの内部ネットワークアドレスを指すことに留意されたい。プロバイダネットワーク外部で発生したネットワークトラフィックは、プライベートIPアドレスに直接には伝送されない。代わりに、トラフィックは、リソースインスタンスのプライベートIPアドレスにマッピングされたパブリックIPアドレスを使用する。本明細書に使用されるようなパブリックIPアドレスは、サービスプロバイダまたはクライアントのいずれかによってプロバイダネットワークにおけるリソースインスタンスに割り当てられたプロバイダネットワークのインターネットルーティング可能なネットワークアドレスである。プロバイダネットワークのパブリックIPアドレスに伝送されるトラフィックは、例えば、1:1ネットワークアドレス変換(NAT)を通じて変換し、プロバイダネットワークにおけるリソースインスタンスのそれぞれのプライベートIPアドレスに転送することができる。本明細書に使用されるような所与のプライベートIPアドレスが、必ずしもパブリックIPアドレスにマッピングされないことに留意されたい。
本明細書に使用されるようなプライベートIPアドレスは、必ずではないが、通常、例えば、プロバイダネットワークもしくはそのサブネットワーク内、またはプロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装内のみにおいてルーティング可能な非インターネットルーティング可能なIPアドレス(例えば、RFC1918アドレス)であってもよい。しかしながら、いくつかの実施では、プライベートIPアドレスは、それ自体がインターネットルーティング可能なアドレスであってもよい。言い換えれば、クライアントは、プロバイダネットワークにおけるクライアントのリソースインスタンスにおいて、及びプロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装内において、インターネットルーティング可能なアドレスまたは非ルーティング可能なアドレスを使用することができる。少なくともいくつかの実施形態では、クライアントは、プライベートネットワークにおいて使用されるクライアントのプライベートアドレス指定スキームに従いプライベートIPアドレスを特定のリソースインスタンに割り当てる、及び/または(サービスプロバイダによってクライアントに割り当てられた)パブリックIPアドレスを、クライアントのプライベートIPアドレスまたはそのレンジにマッピングまたは再マッピングすることによって、クライアントの仮想プライベートネットワーク内のリソースインスタンスのアクセス及びアドレス指定を制御することができる。所与の仮想プライベートネットワークにおけるリソースインスタンスの少なくともいくつかのプライベートIPアドレスが、必ずしもパブリックIPアドレスにマッピングされないことに留意されたい。
図1は、少なくともいくつかの実施形態に従う、オーバーレイネットワーク接続におけるアクセス制御方法の高レベルフローチャートである。方法は、例えば、ホストシステムにおける一つ以上の仮想マシンインスタンス(VM)の代わりにカプセル化層の機能性を実行する、ホストシステムにおける仮想マシンモニタ(VMM)によって、ネットワークのカプセル化層における一つ以上のプロセスによって実行し、オーバーレイネットワークカプセル化プロトコルに従い他のエンティティへのパケットフロー(例えば、オーバーレイネットワークパス)を構築することができる。
100に示すように、カプセル化層プロセス(例えば、VMM)は、ソース(例えば、ホストシステムにおけるVM)からネットワークパケットを取得する。ネットワークパケットは、ターゲットを示すことができる。例えば、パケットは、ターゲットアドレス(例えば、クライアントリソースインスタンスのIPアドレス)を含むことができる。102に示すように、カプセル化層プロセスは、ターゲットについてのオーバーレイネットワークマッピング情報を取得することができる。少なくともいくつかの実施形態では、オーバーレイネットワーク情報は、基板ネットワークにおけるパケットについての、カプセル化層宛先の少なくともIPアドレス(例えば、ターゲットVMを率いるVMM)を含むことができる。少なくともいくつかの実施形態では、カプセル化層プロセスは、マッピング情報を取得するためのマッピングサービスにアクセスすることができる。しかしながら、いくつかの実施形態では、ターゲットについてのマッピング情報は、マッピングサービスから一旦取得すると、その後、ローカルキャッシュから取得することができる。実施例のマッピングサービスは、例えば、図2及び図10を参照してさらに後述する。
104に示すように、適用可能なポリシを、ソース及び/またはターゲットのアイデンティティに従い決定することができる。106に示すように、ソース及びターゲットを、ソースからターゲットまでの接続を許可するか否かを決定するためのポリシに従い評価することができる。少なくともいくつかの実施形態では、要素104及び106は、ネットワークにおけるアクセス制御サービスによって実行することができる。少なくともいくつかの実施形態では、カプセル化層プロセスは、アクセス制御サービスを使用して、アプリケーションプログラミングインターフェース(API)を通じて、要素104及び106を実行するためのサービスに通信する。
108においてソースからターゲットまでの接続がポリシに従い許可された場合には、110に示すように、ポリシに従いソースからターゲットまでの接続(例えば、オーバーレイネットワークパス)を生成し、112に示すように、ネットワークパケットを、ソースからオーバーレイネットワークパスを通じてターゲットに送信することができる。いくつかの実施形態では、オーバーレイネットワークパスの生成は、カプセル化メタデータが、カプセル化層におけるオーバーレイネットワーク宛先、例えば、プロバイダネットワークにおける別のVMMにパケットを伝送するための情報を含むオーバーレイネットワークのカプセル化プロトコルに従いネットワークパケットをカプセル化することによって実行される。カプセル化層宛先において、カプセルがネットワークパケットから取り除かれ、オリジナルのネットワークパケットがターゲット(例えば、それぞれのホストシステムにおけるVM)に供給される。
108においてソースからターゲットまでの接続がポリシに従い許可されない場合には、114に示すように、ネットワークパケットを、カプセル化層プロセスによって無視及び廃棄することができる。いくつかの実施形態では、カプセル化層プロセス(例えば、VMM)は、接続が許可されなかったことをソース(例えば、それぞれのホストシステムにおけるソースVM)に通知しない。いくつかの実施形態では、カプセル化層プロセスは、例えば、それぞれのVMを所有するクライアントまたは顧客に報告するための報告目的のために、許可されない接続リクエストをログまたは記録することができる。しかしながら、いくつかの実施形態では、カプセル化層プロセスは、接続が許可されなかったソースに通知することができる。例えば、VM及びそのオペレーティングシステムによって利用される既存のセキュリティプロトコルとの互換性を無効にしない方式で「アクセスが拒否された」メッセージをソースVMに通知するために、Generic Security Service Application Program Interface(GSSAPI、GSS−APIとも)などの論理帯域外のセキュリティプロトコルを、VMMによって利用することができる。
少なくともいくつかの実施形態では、要素102〜108は、ソースとターゲットとの間の所与のパケットフローにおいて第一のネットワークパケットについてのみ実行してもよい。112に示すように、所与のパケットフローまたは論理接続におけるそれに続くネットワークパケットを、各ネットワークパケットについてのポリシを評価せずに、オーバーレイネットワークカプセル化プロトコルを通じてターゲットに送信することができる。
仮想ネットワークにおけるアクセス制御のための方法及び装置の実施形態は、例えば、図2に図示するような、サービスプロバイダのプロバイダネットワーク200において実装される仮想化リソース(例えば、仮想化コンピューティング及びストレージリソース)を、インターネットなどの中間ネットワークを通じてクライアントまたは顧客に提供するサービスプロバイダの文脈において実施することができる。図9〜図13及び「実施例のプロバイダネットワーク環境」という表題が付けられたセクションに、本明細書に記述するような方法及び装置の実施形態を実施できる実施例のサービスプロバイダネットワーク環境をさらに図示及び記述する。図2を参照するように、少なくともいくつかの実施形態では、プロバイダネットワーク200Aを通じてサービスプロバイダのクライアントに提供されるリソースの少なくともいくつかは、他のクライアント(複数可)と共有されるマルチテナントハードウェア、及び/または特定のクライアントに専用のハードウェアにおいて実装される仮想化コンピューティングリソースであってもよい。各々の仮想化コンピューティングリソースは、リソースインスタンス214と称され得る。リソースインスタンス214は、例えば、サービスプロバイダのクライアント(または、テナント)にレントまたはリースすることができる。例えば、サービスプロバイダのクライアントは、インターネットなどの中間ネットワーク250を通じて、プロバイダネットワーク200Aに連結された外部クライアントデバイス(複数可)260によって、サービスについてのAPIを通じてプロバイダネットワーク200Aの一つ以上のサービスにアクセスしてリソースインスタンス214を取得及び構成し、図12及び図13に図示するようなクライアントの仮想プライベートネットワークなどの、リソースインスタンス214を含む仮想ネットワーク構成を構築及び管理することができる。
図2に示すように、いくつかの実施では、サービスプロバイダは、必ずではないが、互いに異なる、場合によっては地理的に離れたデータセンタに実装できる二つ以上のプロバイダネットワーク200(プロバイダネットワーク200A及び200Bを示す)を有することができる。二つのプロバイダネットワーク200は、例えば、光ファイバ接続などの一つ以上の直接通信リンク208によって連結することができる。例えば、代わりにまたはそれに加えて、二つのプロバイダネットワーク200は、中間ネットワーク250を通じて通信することができる。
リソースの少なくともいくつかのインスタンス214は、例えば、ホスト210のコンピュータ、すなわち、ホスト210における仮想マシン(VM)において複数のオペレーティングシステムを同時に実行できるハードウェア仮想化テクノロジに従い実装することができる。ハイパーバイザ、またはホスト210における仮想マシンモニタ(VMM)212が、ホスト210におけるVM214を仮想プラットフォームに提示し、VM210の実行をモニタする。各VM214には一つ以上のプライベートIPアドレスが提供され、それぞれのホスト210におけるVMM212は、ホスト210におけるVMのプライベートIPアドレス214を認識することができる。ハードウェア仮想化テクノロジについてのさらなる情報は、図9〜図13を参照されたい。
プロバイダネットワーク200Aは、例えば、ルータ、スイッチ、ネットワークアドレス変換器(NAT)などのネットワーキングデバイスを含むネットワーク基板202、並びにデバイス間の物理接続を含むことができる。VMM212は、ネットワーク基板202における他のデバイス及びプロセスとともに、ソフトウェアで定義されたネットワークまたはSDNとも称され得るオーバーレイネットワークを、プロバイダネットワーク200に生成することができる。オーバーレイネットワークの生成及び管理は、例えば、制御プレーンにおけるサービスまたは他のプロセスの一つ以上のAPIを呼び出すことによって、プロバイダネットワーク200の制御プレーンによって実行することができる。少なくともいくつかの実施形態では、VMM212及び他のデバイスまたはプロセスは、カプセル化プロトコル技術を使用して、ネットワークパケット(例えば、クライアントIPパケット)をカプセル化し、そしてプロバイダネットワーク200A内の種々のホスト210におけるクライアントリソースインスタンス214間のネットワーク基板202にわたって、ネットワークデバイス204などの、プロバイダネットワークにおける他のデバイスもしくはサブネットワーク、または他のプロバイダネットワーク200における他のデバイスもしくはクライアントリソースインスタンスにそれを伝送することができる。ネットワーク基板202においてカプセル化プロトコル技術を使用して、パス206または経路を通じて、カプセル化されたパケット(ネットワーク基板パケット)を、ネットワーク基板202におけるエンドポイント間、または他のプロバイダネットワーク200におけるエンドポイントに伝送することができる。カプセル化プロトコル技術は、ネットワーク基板202においてオーバーレイされ、それ故に、「オーバーレイネットワーク」と称される、可能性として異なるアドレス指定及びサブネット化スキームを持つ仮想ネットワークトポロジを提供するものとみなすことができる。少なくともいくつかの実施形態では、カプセル化プロトコル技術は、マッピングサービス220を含むことができ、このサービスは、IPオーバーレイアドレス(プロバイダネットワーク200における他のクライアントまたは顧客のトポロジとは分離し得る、プロバイダネットワーク200のクライアントまたは顧客によって利用されるようなIPアドレス)を、基板IPアドレス(通常、プロバイダネットワーク200のクライアントまたは顧客に公開されない基礎的なネットワーキングインフラストラクチャによって利用されるIPアドレス)にマッピングするマッピングディレクトリを維持し、そしてネットワーク基板202におけるエンドポイント間にパケットを伝送するための、プロバイダネットワーク200におけるさまざまなプロセスによってアクセスすることができる。オーバーレイネットワークをネットワーク基板に実装するための、カプセル化プロトコルを使用する仮想ネットワーク技術の実施例の実施及びそれについてのさらなる情報は、図9〜図13を参照されたい。
ホスト210におけるクライアントリソースインスタンス214は、伝送制御プロトコル(TCP)などのコネクション型プロトコル、及び/またはユーザデータグラムプロトコル(UDP)もしくはインターネット制御メッセージプロトコル(ICMP)などのコネクションレスプロトコルに従い、同じホスト210または異なるホスト210における他のクライアントリソースインスタンス214と通信することができる。しかしながら、クライアントパケットは、送信VMM212によってカプセル化プロトコルに従いカプセル化され、そのカプセル化プロトコルに従い、ネットワーク基板パケットとしてネットワーク基板202にわたって送信され、受信VMM212によってカプセル除去される。少なくともいくつかの実施形態では、ネットワーク基板202において使用されるカプセル化プロトコルは、コネクションレスプロトコルであってもよい。しかしながら、いくつかの実施形態では、カプセル化プロトコルは、コネクション型プロトコルであってもよい。ホスト210におけるVMM212は、ホスト210におけるクライアントリソースインスタンス214からクライアントパケット(例えば、TCPまたはUDPパケット)を受信し、別のクライアントリソースインスタンス214のネットワークアドレスをターゲットにすると、カプセル化プロトコルに従いクライアントパケットをカプセル化またはタグ付けし、(本明細書においてカプセル化パケットとも称され得る)ネットワーク基板パケットを、供給のためにネットワーク基板202に送信する。次に、ネットワーク基板パケットを、カプセル化プロトコルパケットのヘッダにおける情報に従い、ネットワーク基板202を通じて別のVMM212に伝送することができる。他のVMM212は、クライアントパケットからカプセル化データを取り除き、クライアントパケット(例えば、TCPまたはUDPパケット)を、ターゲットリソースインスタンス214を実装する、ホスト210における適切なVMに供給する。いくつかの実施では、効率の増大または他の理由のために、二つ以上のクライアントパケットを単一のネットワーク基板パケットにカプセル化できることに留意されたい。通常、二つ以上のクライアントパケットは、同一のターゲット(例えば、同一のリソースインスタンス214)に導かれ得る。しかしながら、いくつかの実施では、クライアントパケットについての、ネットワーク基板202におけるターゲットアドレス(例えば、特定のホスト210におけるVMM212)が同一であるならば、種々のターゲット(例えば、種々のリソースインスタンス214)に導かれる二つ以上のクライアントパケットを、共に、単一のネットワーク基板パケットにカプセル化することができる。
少なくともいくつかの実施形態では、VMM212は、それぞれのホスト210におけるリソースインスタンス214から、ターゲットに導かれるネットワークパケットを受信すると、IPオーバーレイアドレスを基板IPアドレスにマッピングする、プロバイダネットワーク200のマッピングサービス220にアクセスして、ネットワークパケットをネットワーク基板202における適切なエンドポイントに伝送する。例えば、ターゲットは、別のリソースインスタンス214であってもよく、エンドポイントは、ターゲットリソースインスタンスをホストする、ネットワーク基板202における別のVMM212であってもよい。別の実施例として、ターゲットが、外部デバイス260であってもよく、エンドポイントが、ネットワークデバイス204であってもよい。
仮想ネットワークにおけるアクセス制御のための方法及び装置の実施形態では、ターゲットについてのIPオーバーレイアドレスを決定するためにマッピングサービス220にアクセスすることに加えて、VMM212は、プロバイダネットワーク200のアクセス制御サービス230にも通信することができる。このサービスは、ソースリソースインスタンス214及び/またはネットワークパケットのターゲットに関連する一つ以上のポリシが存在するか否かを決定し、そしてポリシが存在する場合には、そのポリシ(複数可)が、ソースリソースインスタンス214からターゲットまでの接続を許可または否定するかを決定することができる。VMM212は、接続が許可されたことをアクセス制御サービス230が示す場合にのみ接続を達成する。少なくともいくつかの実施形態では、ポリシは、接続についての一つ以上の条件、例えば、ターゲットへの接続が許可されたポート番号、及び/またはターゲットとの通信が許可されたネットワークプロトコルも指定することができる。別の実施例として、少なくともいくつかの実施形態では、クライアントは、任意のメタデータタグを規定し、メタデータタグを特定のリソースインスタンス214に関連付けることができる。ポリシにこれらのメタデータタグを使用する実施例として、共に同一のメタデータタグを有する二つのリソースインスタンス214間のネットワークトラフィックのみを許可するポリシ条件を指定することができる。例えば、ポリシは、両方のリソースインスタンスがタグ「経理部」を有する場合にのみ許可されるようにネットワークトラフィックを定めることができる。
少なくともいくつかの実施形態では、接続の達成には、ネットワークパケットをカプセル化し、カプセル化パケットをネットワーク基板202に送信し、それ故に、ソースリソースインスタンス214とターゲットとの間の、ネットワーク基板202にわたるパス206を構築するVMM212が必要となる。接続が許可されていないことをアクセス制御サービス230が示す場合には、VMM212は、ソースからターゲットまでの接続を達成しない。言い換えれば、VMM212は、ネットワークパケットをカプセル化しないし、カプセル化パケットをネットワーク基板202に送信しない。それ故に、ソースリソースインスタンス214とターゲットとの間の、ネットワーク基板202にわたるいかなるパス206も構築しない。いくつかの実施形態では、マッピングサービス220の機能性とアクセス制御サービス230の機能性とを、プロバイダネットワーク200における単一のサービスに組み合わせることができることに留意されたい。
少なくともいくつかの実施形態では、(プリンシパルと称され得る)アイデンティティを、リソースインスタンス214に割り当てる、さもなければそれに関連付け、そしてプリンシパルを、リソースインスタンス214についてのポリシの識別及び施行に使用することができる。プリンシパルは、例えば、ユーザ、グループ、ロールまたはアイデンティティ及びアクセス管理システムもしくは環境内の他のエンティティであってもよい。言い換えれば、これらに限定されないが、ユーザ、グループ及びロールプリンシパルタイプを含む、種々のタイプのプリンシパルが存在してもよい。少なくともいくつかの実施形態では、プリンシパルのリソースインスタンス214への割り当て、ポリシ識別及び施行におけるプリンシパルの使用に加えて、リソースインスタンス214の他の特性または条件、例えば、階層ネームスペース内のインスタンス名、ユーザ定義のメタデータタグ、IPアドレス、アカウント識別子などを使用して、リソースインスタンス214を識別し、リソースインスタンスについてのポリシを識別し、そして識別したポリシを施行することができる。集合的に、リソースインスタンス214を識別するのに使用できるこれらのさまざまな方式(例えば、プリンシパル、ネーム、メタデータタグ、アカウント識別子、IPアドレスなど)は、リソース識別子と称され得る。
それ故に、広く言えば、リソースインスタンス214に関連付けられたさまざまなタイプのリソース識別子を使用して、リソースインスタンス214についてのポリシを識別して施行することができる。特定の実施例として、少なくともいくつかの実施形態では、アクセス制御サービス230によって施行される少なくともいくつかのポリシは、個々のリソースインスタンス214ではなく、リソースインスタンス214全体が担い得るロールに対して定義し、それに関連付けることができる(ロールが、アイデンティティ及びアクセス管理環境におけるプリンシパルのタイプであってもよいことに留意されたい)。少なくともいくつかの実施形態では、クライアントは、プロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装200内のリソースインスタンス214についての一つ以上のロール、及び一つ以上のロールの各々についてのポリシを定義することができる。その結果、クライアントのリソースインスタンス214の一つ以上は、一つ以上のロールを担うことができる。
「ロール」プリンシパルタイプを、通常、仮想ネットワークにおけるアクセス制御のための方法及び装置の実施形態を記述する実施例として下文に使用するが、本明細書に記述するようなアクセス制御のための方法及び装置が、他のタイプのプリンシパル(例えば、ユーザ、グループなど)、及び/または他のタイプのリソース識別子(ネーム、メタデータタグ、アカウント識別子、IPアドレスなど)も利用できることに留意すべきである。
ロールについてのポリシは、例えば、そのロールにおけるリソースインスタンス214が通信を開始できる一つ以上の他のネットワークグループまたはエンティティを示すことができる。例えば、ロールについてのポリシは、そのロールを担うクライアントのリソースインスタンス214が通信を開始できる、プロバイダネットワーク200におけるサブネットであって、それぞれのクライアントの一つ以上の他のリソースインスタンス214をその各々が含む一つ以上のサブネットを示すことができる。プロバイダネットワークにおけるサブネットについてのそれ以上の情報については、図12及び図13を参照されたい。あるいは、ロールについてのポリシは、ロールにおけるリソースインスタンス214が通信を開始できない一つ以上の他のネットワークグループまたはエンティティを示すことができる。ロールについてのポリシは、ロールにおけるリソースインスタンス214との通信の開始を許可されない一つ以上の他のネットワークグループまたはエンティティも示すことができる。少なくともいくつかの実施形態では、ポリシは、接続についての一つ以上の条件、例えば、ロールにおけるリソースインスタンスからターゲットまでの接続が許可されたポート番号、及び/または接続が許可されたネットワークプロトコルも指定することができる。別の実施例として、リソースインスタンス214に関連付けられたメタデータタグを、ポリシ条件に使用することができる。ポリシにおいてこれらのメタデータタグを使用する実施例として、共に同一のメタデータタグを有する二つのリソースインスタンス214間のネットワークトラフィックのみを許可するポリシ条件を指定することができる。図4A及び図4Bは、ポリシについての一般形式の非限定的な実施例を提供する。図5A及び図5Bは、少なくともいくつかの実施形態において使用できるポリシの非限定的な実施例を提供する。
少なくともいくつかの実施形態では、VMM212は、ホスト210におけるリソースインスタンス214のプライベートIPアドレスの認識に加えて、ホスト210におけるリソースインスタンス214が担ったロールを認識するまたは見出すこともできる。VMM212は、リソースインスタンス214が担ったロールを決定すると、アクセス制御サービス230と通信して、ロールに関連するポリシが存在するか否かを決定し、そしてポリシが存在する場合には、ネットワークパケットによって示されるターゲットまでの接続が許可されているか否かを決定することができる。ロールに関連するポリシが存在する場合には、アクセス制御サービス230は、ポリシを評価してソースリソースインスタンス214からターゲットまでの接続が許可されているか否かを決定し、接続が許可されたか否かに関してVMM212に通知することができる。
少なくともいくつかの実施形態では、ターゲットは、ロールに関連付けることもできる。例えば、ターゲットは、異なるホスト210における別のクライアントのリソースインスタンス214、それ故に、異なるVMM212によって率いられるリソースインスタンス214であってもよく、クライアントは、ポリシを持つようにロールを定義し、ターゲットリソースインスタンス214は、そのロールを担うことができた。少なくともいくつかの実施形態では、ソースからターゲットまでの接続を許可するか否かを決定するための、ソースリソースインスタンス214が担ったロールについてのポリシの評価に加えて、ソースからターゲットまでの接続を許可するか否かを決定するために、ターゲットが担ったロールのポリシも評価することができる。例えば、ターゲットのロールに関連するポリシが、ソースリソースインスタンス214が位置するサブネットから、ロールにおけるリソースインスタンスまでの接続を許可しないことを示す場合には、その結果、ソースに関連するポリシが、ターゲットまでの接続を許可することを示す場合でさえも、ソースからターゲットまでの接続は許可されない。別の実施例として、ターゲットのロールのポリシは、特定の他のロールにおけるリソースインスタンスからの接続を許可する(または、それからの接続を許可しない)ことを示すことができる。言い換えれば、そしてより大まかに言えば、ソース及びターゲットの両方に関連するポリシが存在する場合には、接続を許可する前に、両方のポリシにおいて承諾される必要がある。
前述では、クライアントのソースリソースインスタンス214と、ネットワーク基板202にわたる、プロバイダネットワーク200におけるクライアントの仮想プライベートネットワーク内の、クライアントの別のリソースインスタンス214との間のアクセス制御の提供を概して記述したが、別のプロバイダネットワーク200Bにおけるクライアントのリソースへの、直接通信リンク208を通じた接続を試みるときには、一つのプロバイダネットワーク200Aにおけるクライアントのソースリソースインスタンス214間のアクセス制御を提供する実施形態も使用できることに留意されたい。
さらに、アクセス制御方法の少なくともいくつかの実施形態では、プロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装200外部のソースから、クライアントの仮想プライベートネットワーク内のリソースインスタンスまでのアクセスを制御するためのメカニズムを提供することができる。例えば、図2を参照するように、外部クライアントデバイス260が、ネットワークパケットを、プロバイダネットワーク210におけるクライアントのリソースインスタンス214(ターゲット)に送信することを所望することがある。外部デバイス260のネットワークパケット(複数可)は、ネットワーク基板202に連結されたネットワークデバイス204において受信することができる。少なくともいくつかの実施形態では、外部デバイス260及びネットワークデバイス204は、帯域内ネットワークセキュリティプロトコルを利用して、プロバイダネットワーク200における外部デバイス260についてのアイデンティティを構築することができる。例えば、少なくともいくつかの実施形態では、Generic Security Service Application Program Interface(GSSAPI、GSS−APIとも)に従うネットワークプロトコルを使用して、プロバイダネットワーク200における外部デバイス260に関連する安全なアイデンティティ(すなわち、プリンシパル)を構築することができる。次に、ネットワークデバイス204は、外部デバイス260の構築されたアイデンティティ及び/またはターゲット(リソースインスタンス214)のアイデンティティを使用して、オーバーレイネットワークを通じる、外部デバイス260とターゲットとの間の接続についてのポリシを評価することができる。ポリシに従い接続が許可されない場合には、その結果、ネットワークパケットは、ドロップされ得る。接続が許可された場合には、その結果、ネットワークデバイス204は、カプセル化プロトコルに従いネットワークパケットをカプセル化し、カプセル化パケットを、そのVMM212を通じてターゲットリソースインスタンス214に供給するためにネットワーク基板202に送信することができる。
実施例として、外部デバイス260は、ネットワークデバイス204を用いてアイデンティティを構築し、ネットワークパケットを、特定のリソースインスタンス214に導くように(または、クライアントのリソースインスタンスについてのアドレスレンジまで)送信することができる。マッピングサービス220を通じて有効なアドレス(複数可)を構築した後、ネットワークデバイス204は、アクセス制御サービス230と通信して、リソースインスタンス(複数可)214に関連するポリシが存在するか否かを決定することができる。ポリシが存在する場合には、ポリシを評価して、内部リソースインスタンス(複数可)214(ターゲット)と通信するための認可を外部デバイス260(ソース)が有するか否かを決定することができる。例えば、ターゲットリソースインスタンス(複数可)(または、リソースインスタンス(複数可)が担ったロール)に関連するポリシは、特定のIPアドレスから、IPアドレスの特定のレンジから、かつ/またはGSSAPIなどのネットワークプロトコルを通じて構築されたような特定のプリンシパルから、リソースインスタンス(複数可)(または、ロールにおけるリソースインスタンス(複数可))までのアクセスを許可することができる。代わりにまたはそれに加えて、ポリシは、特定のプリンシパル、IPアドレス及び/またはIPアドレスのレンジ(複数可)からのアクセスを否定することができる。ポリシがアクセスを許可した場合には、その結果、ネットワークデバイス204からターゲットリソースインスタンス(複数可)214までの接続(すなわち、図2のパス206Eなどのオーバーレイネットワークパス)を構築することができる。
さらに、アクセス制御方法の少なくともいくつかの実施形態は、クライアントのリソースインスタンス214、またはクライアントのリソースインスタンス214が担ったロールに関連するポリシを使用する、クライアントの仮想プライベートネットワーク内のリソースインスタンス214から開始され、クライアントの仮想プライベートネットワーク外部のターゲットまでのアクセスを制御するための同様のメカニズムを提供することができる。さらに、クライアントの仮想プライベートネットワーク内から、クライアントの仮想プライベートネットワーク外部のターゲットまでの接続を許可するか否かを決定するときに、ターゲットに関連するポリシを評価することができる。クライアントの仮想プライベートネットワーク外部のターゲットは、例えば、外部クライアントデバイス260、クライアントの別の仮想プライベートネットワークにおけるリソースインスタンス214もしくは別のクライアントのリソースインスタンス、またはプロバイダネットワーク200におけるネットワークデバイス204もしくはいくつかの他のデバイスであってもよい。
(アクセス制御サービス)
図3は、少なくともいくつかの実施形態に従う、プロバイダネットワーク300におけるアクセス制御サービス330を図示する。少なくともいくつかの実施形態では、アイデンティティ並びにネットワークにおけるアクセス制御のためのポリシ管理及び施行を、アクセス制御サービス330によって少なくとも部分的に提供することができる。アクセス制御サービス330は、ネットワーク環境内の一つ以上のコンピューティングシステムにまたはそれによって、例えば、図2に図示するようなサービスプロバイダのプロバイダネットワーク環境におけるサービスとして実装することができる。アクセス制御サービス330の実施形態を実施できる実施例のコンピュータシステムを、図14に図示する。アクセス制御サービス330は、サービス330の機能性にアクセスするための一つ以上のアプリケーションプログラミングインターフェース(API)332を提供することができる。しかしながら、アクセス制御サービス330についての、本明細書に記述する機能性を、代わりに、二つ以上の別個のサービスによっても実行できることに留意されたい。さらに、アクセス制御サービス330の機能性の少なくとも一部は、本明細書の他の部分に記述するように、ネットワークにおける別のサービス、例えば、マッピングサービス220と統合することができる。いくつかの実施形態では、アクセス制御サービス330は、論理的に統一されたサービス330を提供するために互いに通信する、ネットワークにおける他のノードにわたって分配された協同ソフトウェアモジュールのセットとして実施することができる。言い換えれば、サービス330は、分散システムとして実施することができる。
少なくともいくつかの実施形態では、図3に示すように、アクセス制御サービス330は、サービス330によって使用されるクライアントのアクセス制御情報、例えば、クライアントのプリンシパル、ロール、及びクライアントのリソースインスタンス314に関連するポリシに関連する情報を保存するためのデータストア340を含むことができる。アクセス制御サービス330は、データストア340におけるクライアントの情報をクライアント380が視認、生成、修正、削除、さもなければ管理できるAPI332Bを提供することができる。アクセス制御サービス330は、プロバイダネットワーク300におけるクライアントの名前を付けられたエンティティによって開始されたアクション、例えば、クライアントのリソースインスタンス314によって開始されたターゲットエンティティへの接続リクエストについてのポリシ評価を、プロセスまたはデバイス(例えば、ホスト310におけるVMM312、ネットワークデバイス(複数可)304、他のサービスなど)がリクエストできるAPI332Aも提供することができる。アクセス制御サービス330は、ポリシ評価モジュール334を含み、このモジュール334は、API332Aを通じてポリシ評価リクエストを受信し、データストア340における関係のあるアクセス制御情報に従いリクエストを評価し、ポリシ評価の結果を用いてリクエストの生成元(例えば、VMM312またはプロバイダネットワーク300における他のプロセスもしくはデバイス)に応答することができる。
前述のリソース識別子は、リソースインスタンス314に関連付けられ得ると、リソースインスタンス314についてのポリシの識別及び施行において、アクセス制御サービスによって使用することができる。リソース識別子は、例えば、プリンシパル、リソース名、メタデータタグ、アカウント識別子、IPアドレス、またはリソースインスタンス314の一般の任意の特性もしくは条件であってもよい。プリンシパルは、例えば、ユーザ、グループ、ロールまたはアイデンティティ及びアクセス管理環境内の他のエンティティであってもよい。ポリシは、リソース識別子の一つ以上に従い、リソースインスタンス314に関連付けることができる。少なくともいくつかの実施形態では、ポリシは、ユーザプリンシパルタイプに従うネームベースのリソース識別子またはユーザアイデンティティなどのユニークな属性または識別子に従い、個々のリソースインスタンス314に関連付けることができる。
少なくともいくつかの実施形態では、ネームベースのリソース識別子は、ネームスペース内のリソースをユニークに識別することができる。以下は、少なくともいくつかの実施形態において使用できる、ネームベースのリソース識別子についての一般形式の非限定的な実施例である。
<namespace>:<owner>:<resource type>:<resource name>
( <namespace>は、プロバイダネットワーク300におけるこのリソースインスタンスに提供されたサービスを識別することができる。例えば、本明細書に記述するVMまたはリソースインスタンス314においては、サービスは、図11に示すようなサービス1120などのハードウェア仮想化サービスであってもよい。
( <owner>は、このリソースインスタンスを所有する顧客またはサービスプロバイダのクライアントを識別することができる。
( <resource type>は、サービスによって提供され得る(すなわち、ネームスペース内の)種々のタイプのリソースを他のリソースから区別するのに使用できる。
( <resource name>は、例えば、この特定のリソースについての顧客またはクライアントによって指定された英数字の文字列であってもよい。いくつかの実施形態では、リソース名は、パスであってもよい。リソース名は、ネームベースのリソース識別子の他の要素によって定義されたスペース内においてユニークであるはずである。
少なくともいくつかの実施形態では、ネームベースのリソース識別子などのユニークな属性または識別子によってポリシを個々のリソースインスタンス314に関連付ける代わりにまたはそれに加えて、ポリシを、二つ以上のエンティティ(例えば、リソースインスタンス314)を含み得るグループ、集合またはカテゴリに関連付けることができる。前述のように、プリンシパルは、グループプリンシパルタイプ及びロールプリンシパルタイプを含むことができる。本明細書に使用されるようなグループは、リソースまたはプリンシパル(例えば、リソースインスタンス314)の比較的固定的な集合である。クライアントまたは他のエンティティは、グループを定義し、グループにメンバ(例えば、リソースまたはプリンシパル)を明確に割り当てる(または、グループからメンバを移動させる)、あるいは、グループ構成員を明確に定義することができる。少なくともいくつかの実施形態では、アクセス制御サービス330によって施行されるポリシの少なくともいくつかは、個々のリソースまたは他のプリンシパルタイプではなく、グループに対して定義し、グループに関連付けることができる。少なくともいくつかの実施形態では、グループの定義には、グループ内のエンティティ(リソースまたはプリンシパル)を識別するポリシと、そのグループに関連する認可を指定する別のポリシとの二つのポリシを生成及び維持する必要が生じ得る。しかしながら、グループは、他のようにも定義することができる。
少なくともいくつかの実施形態では、アクセス制御サービス330は、プロバイダネットワーク300におけるクライアントのリソースまたはプリンシパルについてのロールを定義し、そしてリソース及びプリンシパルにそのロールを担わせることもできる。グループ構成員がクライアントによって定義されかつ比較的固定的であるのに対して、エンティティ(例えば、リソースまたはプリンシパル)がロールを動的に担うことができるという点において、ロールはグループとは異なる。ロール「構成員」は、明確には定義されない。代わりに、エンティティがそのロールに属するまたはそれを担うことができるか否かを決定するために、エンティティ(例えば、プリンシパルまたはリソース)について動的に評価できる、ロールについての一つ以上の特性または条件を定義することができる。それ故に、例えば、リソースインスタンス314の一つ以上の特性の動的評価に基づいて、リソースインスタンス314にロールを担わせることができる。少なくともいくつかの実施形態では、アクセス制御サービス330によって施行されるポリシの少なくともいくつかは、個々のリソース、ユーザもしくはグループアイデンティティ、または他のプリンシパルタイプではなく、ロールに対して定義し、ロールに関連付けることができる。それ故に、リソース及びプリンシパルは、ロールを担うことができ、ロールは、ポリシを有することができる。リソース及びプリンシパルをロールから分離することによって、一つ、二つまたはそれ以上の信頼のあるエンティティ(例えば、リソースまたはプリンシパル)が、グループへの明示的かつ静的な割り当てではなく、信頼のあるエンティティの動的評価に基づいて一つ以上のロールを動的に担うことができるので、管理の柔軟性及び容易さを与えることができる。少なくともいくつかの実施形態では、ロールの定義には、エンティティについて評価された特性及び条件を識別して、エンティティがロールを担うことができるか否かを決定するためのポリシと、そのロールに関連する認可を指定する別のポリシとの二つのポリシを生成及び維持する必要が生じ得る。しかしながら、ロールは、他のようにも定義することができる。
図4A及び図4Bは、ポリシについての一般形式の非限定的な実施例を提供する。図5A及び図5Bは、少なくともいくつかの実施形態において使用できるポリシの非限定的な実施例を提供する。
図4A及び図4Bは、少なくともいくつかの実施形態に従う、ポリシについての一般形式の非限定的な実施例を提供する。少なくともいくつかの実施形態では、ポリシ400に関連付けることができる三つのタイプのエンティティが存在する。
( そのポリシが関連するエンティティ(例えば、プリンシパル)またはリソース。例えば、ポリシ400は、クライアントによって定義されたロール、クライアントの特定の名前を付けられたリソースインスタンス、サブネット、グループ、または特定のユーザもしくはアカウントに関連付けることができる。一般に、ポリシは、アイデンティティ及びアクセス管理環境内の、並びに/または他のリソース(複数可)へのアクセス制御を施行できるネットワークにおける任意のプリンシパルまたはリソースに関連付けることができる。
( (ポリシ400Aにおける認可の<resource(s)>フィールド、及びポリシ400Bにおける認可の<principal(s)>フィールドにおいて指定されるような)ポリシ内のステートメント(複数可)が適用されるプリンシパル(複数可)またはリソース(複数可)。例えば、ポリシ内の特定のステートメントは、指定されたプリンシパル、リソースインスタンス、サブネット、ロール、グループ、アドレスレンジ、サービス、または通例、指定できる及びアクセス制御を施行できる、ネットワークにおける任意のエンティティもしくはリソースへの(特定のアクション(複数可)のための)アクセスを許可または拒否することができる。
( ポリシが評価されるエンティティ(複数可)。例えば、VMMまたは他のカプセル化層プロセスは、ポリシが関連する及びポリシによってアクセスを制御できるターゲット(例えば、別のリソースインスタンス)との通信を試みている、ロールを担った特定のリソースインスタンスの代わりに、ポリシ評価をリクエストすることができる。
ポリシ400は、(例えば、関連するロールまたは他のプリンシパルについての)ポリシに関連するエンティティについての認可とその各々が称され得る一つ、二つまたはそれ以上のステートメントを含むことができる。各認可は、効果、一つ以上のアクション、及びポリシ400Aに示すような、許可された場合に(または、拒否が実行されなかった場合に)アクション(複数可)を実行できる一つ以上のリソース、またはポリシ400Bに示すような、アクション(複数可)を実行するための認可が許可または拒否され得た一つ以上のプリンシパルのいずれかを指定することができる。認可は、必須ではないが、一つ以上の条件も含むことができる。
ポリシ400Aでは、指定されたリソースは、許可された場合に(または、拒否が実行されなかった場合に)アクション(複数可)を実行できるリソース(複数可)を示すことができる。言い換えれば、ポリシ400Aが関連するエンティティ(例えば、プリンシパル)またはリソースは、示されたリソース(複数可)におけるアクション(複数可)を実行するための認可が許可または拒否される。少なくともいくつかの実施形態では、示されたリソース(複数可)は、これらに限定されないが、ユーザ、グループ、サブネット、リソースインスタンス、ロール、サービスなどを含む、プロバイダネットワークにおけるエンティティ(例えば、プリンシパル)またはリソースであってもよい。少なくともいくつかの実施形態では、リソースは、前述のようなリソース識別子によって指定することができる。少なくともいくつかの実施形態では、ワイルドカードをリソース識別子に使用することができる。例えば、ネームベースのリソース識別子において、以下のようにアスタリスク(または、他の文字もしくは記号)を、ワイルドカードとして使用することができる。
<namespace>:<owner>:<resource type>:*
ここでは、アスタリスクは、このネームスペース/オーナ/リソースタイプのすべての名前を付けられたリソースが、この認可ステートメントによって保護されていることを示す。
ポリシ400Bでは、指定されたプリンシパル(複数可)は、アクション(複数可)を実行するための認可が許可または拒否され得るプリンシパル(複数可)を示すことができる。言い換えれば、示されたプリンシパル(複数可)は、ポリシ400Bにおいて、エンティティ(例えば、プリンシパル)またはリソースにおいてアクション(複数可)を実行するための認可が許可または拒否されたものである。少なくともいくつかの実施形態では、示されたプリンシパル(複数可)は、ユーザ、グループ、サブネット、リソースインスタンス、ロール、サービスなどであってもよい。少なくともいくつかの実施形態では、リソースは、前述のようなリソース識別子によって指定することができる。
指定された一つ以上のアクションは、この特定の認可が適用される、指定されたリソース(複数可)またはプリンシパル(複数可)に関するアクションを示す。実施例として、ポリシ400Aについてのアクションは、このポリシ400Aに関連するリソースインスタンスに、(例えば、このポリシに関連するロールを担わせることによって)この認可によって指定されたリソース(複数可)へのオープン接続を(効力のあるフィールドにおいて許可された場合に)許可する「オープン接続」であってもよい。別の実施例として、ポリシ400Bについてのアクションは、このポリシ400Bに関連するリソースインスタンス(複数可)について、(例えば、このポリシに関連するロールを担わせることによって)この認可によって指定されたプリンシパルからの接続のアクセプトを(効力のあるフィールドにおいて許可された場合に)許可する「アクセプト接続」であってもよい。
効果は、指定されたアクション(複数可)に従いエンティティがアクセスをリクエストしたときに起こる事を指定する。特定の認可についての効果は、例えば、「許可」または「拒否」であってもよい。少なくともいくつかの実施では、「拒否」は、デフォルト、それ故に、効果として「許可」が指定されない限りは、エンティティまたはリソースについてのアクセスが拒否され得るものであってもよい。少なくともいくつかの実施形態では、「拒否」は、一つ以上のポリシを評価するときに「許可」を無効にする。つまり、特定のリソースまたはプリンシパルが、「許可」を指定するポリシ内のある認可によってアクションへのアクセスが付与されたが、アクションについて「拒否」を指定するポリシ内の別の認可(または、別のポリシ)によってそのアクションへのアクセスが拒否された場合には、評価結果は、アクセスの拒否となる。
条件は、存在する場合には、指定されたアクション(複数可)についての一つ以上の追加の条件を示すことができる。単なる一つの実施例として、「オープン接続」アクションについての条件は、接続が許可された特定のポート番号、または接続に使用できる(または、使用できない)特定のネットワークプロトコルであってもよい。例えば、接続を、指定されたリソースにおけるポートNにのみ許可し、UDPパケットフローを、指定されたリソースにのみ許可することができる。他の実施例として、条件は、グローバルネームスペースにおけるリソース名、またはリソースの一つ以上のユーザ定義のメタデータタグなどのリソースの他の特性について評価することができる。例えば、接続は、指定された一つ以上のリソース、特定のリソース名(複数可)を持つ他のリソース、または特定のメタデータタグ(複数可)を持つ他のリソースについて許可(または、拒否)することができる。
さまざまなリソースへのアクセスを制御するための、さまざまなクライアントリソースについてのポリシを定義し、そして特定のリソースに関連する特定のアクションについての認可を指定するためのこれらの方法を使用して、クライアントは、プロバイダネットワークにおけるクライアントのリソース(例えば、クライアントの仮想プライベートネットワークにおけるリソース)についての複雑、完全かつ選択的なアクセス制御を開発することができる。単なる一つの実施例として、ロールを担うまたはグループに加入するすべてのリソースについて実行される特定のアクション(例えば、指定されたリソース(複数可)への「オープン接続」アクション)を許可(または、拒否)するが、複数のリソースのうちの特定のリソースについての複数のアクションのうちの特定のアクションを拒否(または、許可)する認可を含む、ロールまたはグループについてのポリシを定義することができる。
図5A及び図5Bは、少なくともいくつかの実施形態に従う、プリンシパル(または、他のタイプのロール)またはリソースについて定義できるポリシの非限定的な実施例を提供する。図5Aのポリシ500Aは、プリンシパル、またはプリンシパルが担うことができるロールに関連付けられ得、指定されたリソース(複数可)に関するプリンシパルについての認可を定義できるポリシの非限定的な実施例を提供する。図5Bのポリシ500Bは、リソース、またはリソースが担うことができるロールに関連付けられ得、指定されたプリンシパル(複数可)に関するリソース(複数可)についての認可を定義できるポリシの非限定的な実施例を提供する。
ポリシ500A及び500Bは、それぞれ、プリンシパル及びリソースについての特定の認可を定義する。ポリシ500Aは、ポリシ500Aに関連するプリンシパル(複数可)についての(選択的に、一つ以上の条件に従う)指定されたリソース(複数可)への「オープン接続」を許可する認可を含む。ポリシ500Aは、ポリシ500Aに関連するプリンシパル(複数可)についての指定されたリソース(複数可)への「オープン接続」を拒否する認可も含むことができる。指定されたリソースは、例えば、プロバイダネットワークにおけるリソースインスタンス、ロール、サブネット、またはいくつかの他のリソースであってもよい。場合によっては、ポリシ500Aにおける指定されたリソースが別のプリンシパルであってもよいことに留意されたい。ポリシ500Bは、ポリシ500Bに関連するリソースについての(選択的に、一つ以上の条件に従う)指定されたプリンシパル(複数可)からの「アクセプト接続」を許可する認可を含む。ポリシ500Bは、ポリシ500Bに関連するリソースについての指定されたプリンシパル(複数可)からの「アクセプト接続」を拒否する認可も含むことができる。指定されたプリンシパルは、例えば、別のリソースインスタンス、ロール、サブネット、ユーザ、またはいくつかの他のリソースであってもよい。
前述のように、少なくともいくつかの実施形態では、プリンシパル及びリソースがロールを担い、ポリシをロールに関連付けることができる。図5A及び図5Bの実施例のポリシを使用して、ポリシ500AをロールAに関連付け、ポリシ500BをロールBに関連付けることができる。ロールAを担うプリンシパルは、オーバーレイネットワークを通じた接続をオープンにすることが許可され得る、あるいは、ポリシ500Aにおける認可によって指定されたリソース(複数可)への接続をオープンにすることの認可が拒否され得る。さらに、指定されたリソース(複数可)は、ロール(複数可)を含む(または、それによって指定する)ことができる。例えば、複数のリソースのうちの特定の一つについての、指定されたリソース(複数可)への接続をオープンにすることの認可を拒否する、ポリシ500Aの第二の認可が示されない限り、ポリシ500Aの第一の(許可)認可は、ロールAを担うプリンシパルについての、ロールBを担うすべてのリソースへの接続をオープンにすることを許可することを指定することができる。
少なくともいくつかの実施形態では、ソース(例えば、プリンシパル)及びターゲット(例えば、リソース)に関連するポリシは、共に、例えば、接続リクエストを評価するときに評価することができる。図5A及び図5Bのポリシに関連する実施例のロールA及びBをそれぞれ使用し、ロールAを担うプリンシパルについての、ロールAについてのポリシ500Aに従いロールBを担うリソースインスタンスへの接続をオープンにすることを許可するが、ロールBについてのポリシ500Bが、ロールBにおけるリソースがロールAにおけるプリンシパル(または、特定のプリンシパル)からの接続をアクセプトすることを拒否する(または、許可しない)ことを、ポリシ評価が決定した場合には、その結果、接続リクエストは拒否される。
ポリシ500A及び500Bにおいて指定された条件は、それぞれ、存在する場合に、オープン接続またはアクセプト接続アクションにおける一つ以上の追加の条件を示すことができる。例えば、「オープン接続」及び/または「アクセプト接続」アクションについての条件は、接続が許可された特定のポート番号またはポートレンジであってもよい。別の実施例として、条件は、接続に使用できる(または、使用できない)特定のネットワークプロトコルであってもよい。他の実施例として、条件は、グローバルネームスペースにおけるリソース名、またはリソースもしくはプリンシパルの一つ以上のユーザ定義のメタデータタグなどのリソースまたはプリンシパルの他の特性について評価することができる。例えば、条件は、指定された一つ以上のリソース、特定のリソース名(複数可)を持つ他のリソース、または特定のメタデータタグ(複数可)を持つ他のリソースについての接続を許可(または、拒否)することを示すことができる。
図6は、少なくともいくつかの実施形態に従う、クライアントの仮想プライベートネットワークにおいてリソースインスタンス間のアクセス制御を提供するための方法及び装置を図示するブロック図である。サービスプロバイダのクライアントは、プロバイダネットワーク600の一つ以上のサービスにアクセスしてリソースインスタンス614を取得及び構成し、クライアントのリソースインスタンス614を含む仮想ネットワーク構成(例えば、クライアント仮想プライベートネットワーク610)を構築及び管理することができる。図6には示さないが、クライアント仮想プライベートネットワーク610は、サブネットを含むことができ、クライアントは、仮想プライベートネットワーク内にグループを構築することができる。クライアントは、仮想プライベートネットワーク610内にプライベートIPアドレスを構築して使用することができる。本明細書に使用されるようなプライベートIPアドレスは、プロバイダネットワーク600におけるリソースインスタンスの内部ネットワークアドレスを指す。しかしながら、プロバイダネットワーク600外部で発生したネットワークトラフィックは、プライベートIPアドレスに直接には伝送されない。代わりに、トラフィックは、例えば、NATテクノロジに従い、プライベートIPアドレスにマッピングできるプロバイダネットワークのパブリックIPアドレス600を使用する。仮想プライベートネットワーク610内に使用されるプライベートIPアドレスが、通常、必ずではないが、仮想プライベートネットワーク610内のみにおいてルーティング可能であり得る非インターネットルーティング可能なIPアドレス(例えば、RFC1918アドレス)であってもよいことに留意されたい。しかしながら、いくつかの実施では、仮想プライベートネットワーク610内に使用されるプライベートIPアドレスは、インターネットルーティング可能なアドレスであってもよい。言い換えれば、少なくともいくつかの実施形態では、クライアントは、プロバイダネットワーク600におけるクライアントの仮想プライベートネットワーク610実装内においてインターネットルーティング可能なアドレスまたは非ルーティング可能なアドレスを使用することができる。クライアントの仮想プライベートネットワーク、グループ及びサブネットについてのそれ以上の情報については、図12及び図13を参照されたい。
少なくともいくつかの実施形態では、クライアント仮想プライベートネットワーク610におけるクライアントリソースインスタンス614Aは、クライアント仮想プライベートネットワーク610における別のクライアントリソースインスタンス614Bにアドレス指定してネットワークパケットを送信することができる。VMM612Aは、ネットワークパケットを受信し、マッピングサービスまたはユーティリティ(または、マッピング情報のローカルキャッシュ)にアクセスして、ターゲットリソースインスタンス614Bについてのマッピング情報(例えば、パブリックアドレスがマッピングしているプライベートアドレス)を決定することができる。さらに、VMM612Aは、アクセス制御サービス630からソース及び/またはネットワークパケットのターゲットについてのポリシ評価をリクエストして、クライアントリソースインスタンス614Aについての、クライアントリソースインスタンス614Bとの通信のオープンを許可するか否かを決定することができる。アクセス制御サービス630は、ポリシ評価リクエストを評価して、リソースインスタンス614の一つまたは両方がロールを担うか否かを決定することができる。例えば、クライアントリソースインスタンス614Aが、図5Aに示すようなロールAを担い、クライアントリソースインスタンス614Bが、図5Bに示すようなロールBを担うことができた。アクセス制御サービス630は、リソースインスタンス(複数可)614のロール(複数可)を決定すれば、ロール(複数可)についてのポリシ(複数可)に従いリクエストを評価することができる。アクセス制御サービス630がポリシ(複数可)によって接続を許可することを決定した場合には、接続が許可されたことがVMM612Aに通知される。次に、VMM612Aは、(マッピングサービスによって示されるような)ネットワーク基板602を通じたVMM612Bまでのパス606をオープンし、リソースインスタンス614Aからのネットワークパケット(複数可)のカプセル化を開始し、カプセル化パケットを、パス606を通じてVMM612Bに送信することができる。VMM612Bにおいて、ネットワークパケットは、カプセル除去され、クライアントリソースインスタンス614Bに供給される。ポリシ(複数可)が接続を拒否したことをアクセス制御サービス630が決定した場合には、少なくともいくつかの実施形態では、VMM612Aは、リソースインスタンス614Aからのネットワークパケット(複数可)を単にドロップし、接続が許可されなかったことをリソースインスタンス614Aに通知はしない。しかしながら、いくつかの実施形態では、VMM612A(または、アクセス制御サービス630などの、プロバイダネットワーク600におけるいくつかの他のサービス)は、拒否された接続リクエストを(及び、場合によっては、許可された接続リクエストも)ログすることができる。これによりクライアントは、クライアントのポリシに従う接続拒否についての情報を含む、そのオーバーレイネットワーク構成及び性能についての情報を取得及び視認することができる。
図7は、少なくともいくつかの実施形態に従う、クライアントの仮想プライベートネットワークにおけるリソースインスタンスと外部エンドポイントとの間のアクセス制御を提供するための方法及び装置を図示するブロック図である。サービスプロバイダのクライアントは、プロバイダネットワーク700の一つ以上のサービスにアクセスしてリソースインスタンス714を取得及び構成し、クライアントのリソースインスタンス714を含む仮想ネットワーク構成(例えば、クライアント仮想プライベートネットワーク710)を構築及び管理することができる。図7には示さないが、クライアント仮想プライベートネットワーク710は、サブネットを含むことができ、クライアントは、プライベートネットワーク内にグループを構築することができる。クライアントの仮想プライベートネットワーク、グループ及びサブネットについてのそれ以上の情報については、図12及び図13を参照されたい。
少なくともいくつかの実施形態では、クライアント仮想プライベートネットワーク710におけるクライアントリソースインスタンス714Aは、クライアント仮想プライベートネットワーク710には位置しないエンドポイント708にアドレス指定してネットワークパケットを送信することができる。エンドポイント708は、例えば、ホストマシンにおけるリソースインスタンス(VM)、または外部ネットワークにおけるエンドポイントなどの、プロバイダネットワーク700におけるエンドポイントであってもよい。VMM712Aは、ネットワークパケットを受信し、マッピングサービスまたはユーティリティ(または、マッピング情報のローカルキャッシュ)にアクセスして、エンドポイント708とネットワーク基板702におけるオーバーレイネットワークとの間のブリッジとして働く、プロバイダネットワーク700におけるネットワークデバイス704についてのマッピング情報(例えば、パブリックアドレスがマッピングしているプライベートアドレス)を決定することができる。さらに、VMM712Aは、アクセス制御サービス730からソース及び/またはネットワークパケットのターゲットについてのポリシ評価をリクエストして、クライアントリソースインスタンス714Aについての、エンドポイント708との通信のオープンを許可するか否かを決定することができる。例えば、アクセス制御サービス730は、ポリシ評価リクエストを評価して、リソースインスタンス714Aがロールを担うか否かを決定することができる。例えば、クライアントリソースインスタンス714Aは、図5Aに示すようなロールAを担うことができた。アクセス制御サービス730は、リソースインスタンス714Aについてのロールを決定すれば、ロールについてのポリシに従いリクエストを評価することができる。エンドポイント708がそれに関連するポリシも有し、クライアントリソースインスタンス714Aからエンドポイント708までの接続リクエストの評価において、エンドポイント708についてのポリシも考慮して接続を許可するか否かを決定できることに留意されたい。リソースインスタンス714Aからネットワークデバイス704を通じたエンドポイント708までの接続をポリシが許可したことをアクセス制御サービス730が決定した場合には、接続が許可されたことがVMM712Aに通知される。次に、VMM712Aは、ネットワーク基板702を通じたネットワークデバイス704までのパス706をオープンし、リソースインスタンス714Aからのネットワークパケット(複数可)のカプセル化を開始し、カプセル化パケットを、パス706を通じてネットワークデバイス704に送信することができる。ネットワークデバイス704において、ネットワークパケットは、カプセル除去され、ネットワークプロトコルデータフローとしてエンドポイント708に送信される。一部のネットワークプロトコルでは、ネットワークデバイス708は、ネットワークプロトコルトラフィックがそれを通じてフローすることができる、エンドポイントまでのネットワークプロトコル接続(例えば、TCP接続)を構築することができる。ポリシ(複数可)が接続を拒否したことをアクセス制御サービス630が決定した場合には、少なくともいくつかの実施形態では、VMM712Aは、リソースインスタンス714Aからのネットワークパケット(複数可)を単にドロップし、接続が許可されなかったことをリソースインスタンス714Aに通知はしない。
前には、クライアント仮想プライベートネットワーク710におけるソース(クライアントリソースインスタンス714A)から開始され、ネットワーク基板702におけるオーバーレイネットワークを通じた、クライアント仮想プライベートネットワーク710外部のターゲット(エンドポイント708)までの接続についてのポリシの評価を記述している。しかしながら、アクセス制御を提供するための方法及び装置の実施形態は、クライアント仮想プライベートネットワーク710外部のエンドポイント708がソースであり、クライアントリソースインスタンス714がターゲットであるときにも応用することができる。エンドポイント708は、例えば、プロバイダネットワーク700の別の仮想プライベートネットワークに位置してもよいし、プロバイダネットワーク700外部のエンドポイントであってもよい。エンドポイント708のネットワークパケット(複数可)は、ネットワーク基板702に連結されたネットワークデバイス704において受信することができる。少なくともいくつかの実施形態では、エンドポイント708及びネットワークデバイス704は、帯域内ネットワークセキュリティプロトコルを利用して、プロバイダネットワーク700におけるエンドポイント708についてのアイデンティティを構築することができる。例えば、少なくともいくつかの実施形態では、Generic Security Service Application Program Interface(GSSAPI、GSS−APIとも)に従うネットワークプロトコルを使用して、プロバイダネットワーク700におけるエンドポイント708についての安全な識別を構築することができる。次に、ネットワークデバイス704は、エンドポイント708の構築されたアイデンティティ及び/またはターゲット(リソースインスタンス714A)のアイデンティティを使用して、ネットワーク基板702におけるオーバーレイネットワークを通じる、エンドポイント708とターゲット(リソースインスタンス714A)との間の接続をオープンにするためのポリシを決定及び評価することができる。ポリシに従い接続が許可されない場合には、その結果、ネットワークパケットは、ドロップされ得る。接続が許可された場合には、その結果、ネットワークデバイス704は、カプセル化プロトコルに従いネットワークパケットをカプセル化し、カプセル化パケットを、ネットワーク基板702にわたるパス706を通じてVMM712Aに送信することができる。VMM712Aにおいて、ネットワークパケットは、カプセル除去され、ターゲットリソースインスタンス714Aに供給される。
図8は、少なくともいくつかの実施形態に従う、プリンシパルがロールを担い、ロールがポリシを有し、かつロールについてのポリシの評価に基づいてアクセスを許可または拒否する、オーバーレイネットワーク接続におけるアクセス制御方法のフローチャートである。アクセス制御方法は、例えば、ポリシ評価のためにアクセス制御サービスを使用する、プロバイダネットワークにおけるカプセル化層プロセスによって、例えば、それぞれのホストシステムにおける一つ以上のクライアントリソースインスタンス(VM)をその各々が率いる、ホストシステムにおける仮想マシンモニタ(VMM)によって実行することができる。実施例のアクセス制御サービスは、図2及び図3に図示し、「アクセス制御サービス」という表題が付けられたセクションに記述している。プロバイダネットワークにおける各VMに一つ以上のプライベートIPアドレスを提供することができ、それぞれのホストシステムにおけるVMMが、ホストにおけるVMのプライベートIPアドレスを認識できることに留意されたい。
800に示すように、カプセル化層プロセス(例えば、VMM)は、ソース(例えば、ホストシステムにおけるクライアントリソースインスタンス)からネットワークパケットを取得する。ネットワークパケットは、(必ずではないが、別のクライアントプロバイダネットワークにおけるリソースインスタンスであり得る)ターゲットを示すことができる。少なくともいくつかの実施形態では、VMMは、マッピングサービス(または、ローカルキャッシュ)にアクセスして、示されたターゲットについてのオーバーレイネットワークマッピング情報を取得することができる。802に示すように、ソースのアイデンティティをプリンシパルとして決定することができる。例えば、「アクセス制御サービス」という表題が付けられたセクションにおいて記述するように、アイデンティティを、クライアントによってクライアントリソースインスタンスに割り当てられたリソース識別子として指定することができる。少なくともいくつかの実施形態では、ホストにおけるVMのプライベートIPアドレスの認識に加えて、VMMは、ホストにおけるクライアントリソースインスタンスの他の存在し得るリソース識別子も認識することができる。少なくともいくつかの実施形態では、ターゲットについてのアイデンティティも決定することができる。
804に示すように、プリンシパルが担ったロールを決定することができる。806に示すように、ロールについてのポリシを識別することができる。808に示すように、ポリシに従い接続リクエストを評価することができる。要素804〜806を実行するために、例えば、VMMは、プリンシパルについての情報(例えば、ソースリソースインスタンスの一つ以上のリソース識別子などのアイデンティティ情報)、及びターゲットについての情報を、図3に図示するようなアクセス制御サービスに通信することができる。アクセス制御サービスは、プリンシパル及びリソースが担うことができる、図4、図5A及び図5Bに図示するようなロールについてのポリシなどのポリシにアクセスして、プリンシパル(ソースリソースインスタンス)が担った特定のロールを決定することができる。少なくともいくつかの実施形態では、アクセス制御サービスに提供される、プリンシパルについてのアイデンティティ情報は、プリンシパルに関連するクライアントのアイデンティティを含む、またはその情報を使用してそのアイデンティティを決定することができる。少なくともいくつかの実施形態では、ターゲットについてのロールも、アクセス制御サービスによって決定することができる。プリンシパル(ソース)及び/またはターゲットのロール(複数可)を決定すれば、アクセス制御サービスによってロール(複数可)のポリシに従い接続リクエストを評価して、ソースからターゲットまでの接続を許可または拒否するかを決定することができる。図4、図5A及び図5B並びに「アクセス制御サービス」という表題が付けられたセクションに、ソースからターゲットまでの接続を許可するか否かを決定するために実行できるポリシ及び評価の実施例が与えられている。アクセス制御サービスは、接続が許可または拒否されるかを決定すると、カプセル化層プロセス(例えば、VMM)に通知する。
810において接続が許可された場合には、カプセル化層プロセス(例えば、VMM)は、ソース(例えば、クライアントの仮想プライベートネットワーク内のソースリソースインスタンス)から受信したネットワークパケットをカプセル化(複数可)し、812に示すように、カプセル化されたパケットを、オーバーレイネットワークにおいてカプセル化層宛先(例えば、別のVMM)に送信することができる。宛先において、ネットワークパケット(複数可)をカプセル化パケットから取り出し、ターゲット(例えば、クライアントの仮想プライベートネットワーク内のターゲットリソースインスタンス)に送信することができる。810において接続が拒否された場合には、ネットワークパケット(複数可)を、カプセル化層プロセスによってドロップすることができる。しかしながら、いくつかの実施形態では、拒否された接続リクエストを、報告目的のためにログすることができる。
少なくともいくつかの実施形態では、要素802〜812は、ソースとターゲットとの間の所与のパケットフローにおいて第一のネットワークパケットについてのみ実行してもよい。812に示すように、所与のパケットフローにおけるそれに続くネットワークパケットは、ポリシ評価を実行することなく、オーバーレイネットワークカプセル化プロトコルを通じてターゲットに送信することができる。さらに、いくつかの実施形態では、アクセス制御サービスから受信したポリシ評価についての情報を、例えば、VMMにおいてローカルにキャッシュし、将来のポリシ評価に使用することができる。
図8の方法は、プリンシパルがロールを担い、ロールがポリシを有し、かつロールについてのポリシの評価に基づいてアクセスを許可または拒否する、オーバーレイネットワーク接続におけるアクセス制御方法に関するが、ポリシを、他のタイプのプリンシパル(例えば、ユーザ、グループなど)及び/または他のタイプのリソース識別子(ネーム、メタデータタグ、アカウント識別子、IPアドレスなど)に関連付けることができ、ロールについてのポリシではなく(または、それに加えて)、これらのポリシを使用して同様の方法を利用できることに留意されたい。
(プロセスレベルアイデンティティ及びアクセス制御)
前には、例えば、それぞれのホストデバイスにおける仮想マシン(VM)をモニタする、ホストデバイスにおける仮想マシンモニタ(VMM)によって、カプセル化層において実施されるアクセス制御方法及び装置を主に記述している。しかしながら、アクセス制御方法及び装置のいくつかの実施形態は、仮想マシンにおけるオペレーティングシステムプロセスレベルアイデンティティ及びアクセス管理ベースのアクセス制御をサポートし、それ故に、カプセル化層(VMM)ではなく、クライアントまたはユーザのプロセスレベルにも拡大適用することができる。前述のように、VMは、クライアントリソースインスタンスを実装する。クライアントリソースインスタンスは、プロバイダネットワークにおけるそれぞれのクライアントの仮想プライベートネットワーク実装のニーズ及び要件に従うさまざまなオペレーティングシステム技術のいずれかに従い実装することができる。少なくともいくつかの実施形態では、アクセス制御方法をクライアントまたはユーザのプロセスレベルに拡大適用するために、エージェントプロセス(または、デーモンもしくはデバイスドライバ)を、VMにおけるオペレーティングシステムレベルに実施することができる。エージェントは、VMにおけるプロセスレベルからの及びそれへのマッピングアイデンティティ(プリンシパル、またはより一般的にはリソース識別子)を促進し、そして本明細書に記述するようなアクセス制御サービスと通信して、プロセスレベルリソースについてのポリシに従うVMにおけるプロセスレベルにおける接続の許可または拒否を促進することができる。
(カプセル化パケットへのアイデンティティ情報のタグ付け)
少なくともいくつかの実施形態では、オーバーレイネットワークを通じてターゲットエンドポイントに伝送するための、ソース(例えば、ホストシステムにおけるVM)からのネットワークパケットをカプセル化するカプセル化層プロセス(例えば、ホストシステムにおけるVMM)は、ネットワークパケットのソースである、プロセス(例えば、VMにおけるオペレーティングシステムまたはアプリケーション)についてのアイデンティティ情報を有するまたは取得することができる。少なくともいくつかの実施形態では、本明細書に記述するような関連するポリシの評価に基づいて、ソース(例えば、VM)からオーバーレイネットワークを通じたターゲットエンドポイントまでの接続を許可または拒否するかを決定することに加えてまたはその代わりに、カプセル化層プロセス(例えば、VMM)は、メタデータとしてソースについてのアイデンティティ関連情報を、カプセル化パケットに組み込むまたは加えることができる。アイデンティティ関連情報は、例えば、それぞれのソースエンドポイントについてのプリンシパル情報、ロール情報、グループ情報などの一つ以上を含むことができる。アイデンティティ関連情報は、例えば、アイデンティティ情報を認証するために使用できる共有秘密キーなどに基づく暗号シグネチャなどのセキュリティまたは認証情報も含むことができる。ポリシ決定に関連するアイデンティティ関連情報のカプセル化パケットへのタグ付けは、接続についてのポリシ決定を為すときにターゲットについてのより多くの状況を提供し、データベースなどの他のソースから情報を検索せずとも、提供された情報を使用して接続についてのポリシ決定をターゲットに為させることができる。
カプセル化パケットにタグ付けされるアイデンティティ関連情報を使用できる方法の実施例として、ターゲット、またはターゲットにおけるカプセル化層プロセスは、ソースからターゲットエンドポイントまでの接続がソース側のポリシ評価に基づいて許可された場合でさえも、受信したカプセル化パケットにおけるアイデンティティ関連情報を使用して、ポリシに基づいたアクセス決定を為すことができる。例えば、ネットワークパケットのソースがアクセスを所望するターゲットエンドポイントは、図10及び図11に図示するような、プロバイダネットワークにおけるストレージ仮想化サービスを通じて提供された仮想化ストレージであってもよい。ストレージ仮想化サービスは、カプセル化パケットにタグ付けされたアイデンティティ関連情報を使用してソースのアイデンティティに基づくポリシ評価を実行することによって、そのリクエストにサインするなどのアクセス制御方法をソース(例えば、クライアントのリソースインスタンスにおけるオペレーティングシステムまたはアプリケーション)が認識しない場合でさえも、ソースのアイデンティティに基づいて特定のストレージリソースへのソースのアクセスを許可または否定するかを決定することができる。
TCPなどのコネクション型のネットワークプロトコルにおいて、カプセル化パケットにタグ付けされるアイデンティティ関連情報を使用できる方法の別の実施例として、ソース側のカプセル化層プロセス(例えば、VMM)は、カプセル化パケットにアイデンティティ情報をタグ付けし、ソースの知識がなくてもまたは直接的関与をしなくても、ソースの代わりにターゲットエンドポイントを用いて、例えば、Generic Security Service Application Program Interface(GSSAPI)に従う認証交換に関与することができる。
(ポリシ情報のキャッシング)
アクセス制御方法及び装置の実施形態を、プロバイダネットワーク内のデバイス(例えば、ホストデバイス)におけるカプセル化層プロセス(例えば、VMM)が、プロバイダネットワークにおける一つ以上のデバイスに実装されたアクセス制御サービスにポリシ評価のためにアクセスすることに関して主に記述した。いくつかの実施形態では、ポリシ評価のためにアクセス制御サービスにアクセスする代わりにまたはそれに加えて、デバイスは、ポリシ情報のローカルキャッシュを維持することができる。カプセル化層プロセスまたはデバイスにおける別のプロセスは、ポリシ情報のローカルキャッシュに従い、少なくともいくつかのポリシ評価をローカルに実行するように構成することができる。いくつかの実施形態では、カプセル化層プロセスは、ポリシ情報のローカルキャッシュを確認して、キャッシュされたポリシに従いプリンシパルからの接続リクエストをローカルに評価できるか否かを決定し、評価できる場合にローカルポリシ評価を実行するように構成できる。ポリシ評価をローカルキャッシュに従いローカルに実行できない場合には、アクセス制御サービスにアクセスして評価を実行することができる。
(実施例のプロバイダネットワーク環境)
このセクションは、本明細書に記述するようなアクセス制御方法及び装置の実施形態を実施できる実施例のプロバイダネットワーク環境を記述する。しかしながら、これらの実施例のプロバイダネットワーク環境は、限定することは意図しない。
図9は、少なくともいくつかの実施形態に従う、実施例のプロバイダネットワーク環境を図示する。プロバイダネットワーク900は、これらに限定されないが、プロバイダネットワークまたは一つ以上のデータセンタ内のネットワーク内のデバイスにおいて実施される計算及びストレージリソースを含む仮想化リソースのインスタンス912をクライアントが購入、レント、さもなければ取得できる一つ以上の仮想化サービス910を通じて、リソース仮想化をクライアントに提供することができる。プライベートIPアドレス916を、リソースインスタンス912に関連付けることができる。例えば、プライベートIPアドレスは、プロバイダネットワーク900におけるリソースインスタンス912の内部ネットワークアドレスである。いくつかの実施形態では、プロバイダネットワーク900は、パブリックIPアドレス914及び/またはクライアントがプロバイダ900から取得することができるパブリックIPアドレスレンジ(例えば、インターネットプロトコルバージョン4(IPv4)またはインターネットプロトコルバージョン6(IPv6)アドレス)も提供することができる。
従来、プロバイダネットワーク900では、仮想化サービス910によって、サービスプロバイダのクライアント(例えば、クライアントネットワーク950Aを動作させるクライアント)は、クライアントに割り当てられたまたは配分された少なくともいくつかのパブリックIPアドレス914を、クライアントに割り当てられた特定のリソースインスタンス912に動的に関連付けることができる。プロバイダネットワーク900によって、クライアントは、クライアントに配分されたある仮想化コンピューティングリソースインスタンス912に以前にマッピングされたパブリックIPアドレス914を、これもクライアントに配分された別の仮想化コンピューティングリソースインスタンス912に再マッピングすることもできる。サービスプロバイダによって提供された仮想化コンピューティングリソースインスタンス912及びパブリックIPアドレス914を使用して、クライアントネットワーク950Aのオペレータなどのサービスプロバイダのクライアントは、例えば、クライアント固有のアプリケーションを実施し、クライアントのアプリケーションを、インターネットなどの中間ネットワーク940に提示することができる。次に、中間ネットワーク940における他のネットワークエンティティ920が、クライアントネットワーク950Aに公開された宛先パブリックIPアドレス914についてのトラフィックを生成することができる。トラフィックは、サービスプロバイダデータセンタに伝送され、データセンタにおいて、ネットワーク基板を通じて、宛先パブリックIPアドレス914に現在マッピングされている、仮想化コンピューティングリソースインスタンス912のプライベートIPアドレス916に伝送される。同様に、仮想化コンピューティングリソースインスタンス912からの応答トラフィックを、ネットワーク基板を通じて中間ネットワーク940に戻し、ソースエンティティ920に伝送することができる。
本明細書に使用されるようなプライベートIPアドレスは、プロバイダネットワークにおけるリソースインスタンスの内部ネットワークアドレスを指す。プロバイダネットワーク外部で発生したネットワークトラフィックは、プライベートIPアドレスに直接には伝送されない。代わりに、トラフィックは、リソースインスタンスのプライベートIPアドレスにマッピングされたパブリックIPアドレスを使用する。プロバイダネットワークは、パブリックIPアドレスからプライベートIPアドレスへの、かつ逆へのマッピングを実行するための、ネットワークアドレス変換(NAT)または同様の機能性を提供するネットワークデバイスまたはアプライアンスを含むことができる。本明細書に使用されるような所与のプライベートIPアドレスが、必ずしもパブリックIPアドレスにマッピングされないことに留意されたい。
本明細書に使用されるようなパブリックIPアドレスは、サービスプロバイダまたはクライアントのいずれかによってプロバイダネットワークにおけるリソースインスタンスに割り当てられたプロバイダネットワークのインターネットルーティング可能なネットワークアドレスである。プロバイダネットワークのパブリックIPアドレスに伝送されるトラフィックは、例えば、1:1ネットワークアドレス変換(NAT)を通じて変換し、プロバイダネットワークにおけるリソースインスタンスのそれぞれのプライベートIPアドレスに転送することができる。本明細書に使用されるようなプライベートIPアドレスが、必ずではないが、通常、例えば、プロバイダネットワークもしくはそのサブネットワーク内、またはプロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装内のみにおいてルーティング可能な非インターネットルーティング可能なIPアドレス(例えば、RFC1918アドレス)であってもよいことに留意されたい。しかしながら、いくつかの実施では、プライベートIPアドレスがインターネットルーティング可能なアドレスであってもよい。言い換えれば、クライアントは、プロバイダネットワークにおけるクライアントのリソースインスタンスにおいて、及びプロバイダネットワークにおけるクライアントの仮想プライベートネットワーク実装内において、インターネットルーティング可能なアドレスまたは非ルーティング可能なアドレスを使用することができる。
一部のパブリックIPアドレスは、プロバイダネットワークインフラストラクチャによって特定のリソースインスタンスに割り当てることができる。これらのパブリックIPアドレスは、標準パブリックIPアドレス、または単に標準IPアドレスと称され得る。少なくともいくつかの実施形態では、リソースインスタンスのプライベートIPアドレスへの標準IPアドレスのマッピングは、すべてのリソースインスタンスタイプにおいてデフォルト起動構成である。
少なくともいくつかのパブリックIPアドレスは、プロバイダネットワーク900のクライアントに配分またはクライアントが取得することができる。次に、クライアントは、配分されたパブリックIPアドレスを、クライアントに配分された特定のリソースインスタンスに割り当てることができる。これらのパブリックIPアドレスは、クライアントパブリックIPアドレス、または単にクライアントIPアドレスと称され得る。標準IPアドレスの場合のようにプロバイダネットワーク900によってリソースインスタンスに割り当てる代わりに、例えば、サービスプロバイダによって提供されたAPIを通じて、クライアントによってクライアントIPアドレスをリソースインスタンスに割り当てることができる。標準IPアドレスとは異なり、クライアントIPアドレスは、クライアントアカウントに配分され、必要または所望に応じて、それぞれのクライアントによって他のリソースインスタンスに再マッピングすることができる。クライアントIPアドレスは、特定のリソースインスタンスではなく、クライアントのアカウントに関連付けられ、クライアントは、そのIPアドレスをリリースすることを選択するまでそれを制御する。従来の静的IPアドレスとは異なり、クライアントIPアドレスによって、クライアントは、クライアントのパブリックIPアドレスを、クライアントのアカウントに関連する任意のリソースインスタンスに再マッピングすることによって、リソースインスタンスまたはアベイラビリティゾーンの不具合を隠すことができる。クライアントIPアドレスによって、例えば、クライアントは、クライアントIPアドレスを、差し替えのリソースインスタンスに再マッピングすることによって、クライアントのリソースインスタンスまたはソフトウェアに伴う問題を処理することができる。
図10は、少なくともいくつかの実施形態に従う、IPトンネリング技術を使用して、ネットワーク基板においてオーバーレイネットワークを実装する実施例のデータセンタを図示する。プロバイダデータセンタ1000は、例えば、ルータ、スイッチ、ネットワークアドレス変換器(NAT)などのネットワーキングデバイス1012を含むネットワーク基板を含むことができる。少なくともいくつかの実施形態は、インターネットプロトコル(IP)トンネリング技術を利用して、トンネルを使用してカプセル化されたパケットがネットワーク基板1010を通行できるオーバーレイネットワークを提供することができる。IPトンネリング技術は、ネットワークにおけるオーバーレイネットワーク(例えば、図10のデータセンタ1000におけるローカルネットワーク)を生成するためのマッピング及びカプセル化システム、並びにオーバーレイ層(パブリックIPアドレス)及びネットワーク基板1010層(プライベートIPアドレス)についての個々のネームスペースを提供することができる。オーバーレイ層におけるパケットを、(例えば、マッピングサービス1030によって提供された)マッピングディレクトリにおいて確認して、どのトンネル基板ターゲット(プライベートIPアドレス)に対応させるべきかを決定することができる。IPトンネリング技術は、仮想ネットワークトポロジ(オーバーレイネットワーク)を提供する。クライアントに提示されたインターフェース(例えば、サービスAPI)がオーバーレイネットワークに加えられ、これによりクライアントがパケットの送信を所望するIPアドレスをクライアントが提供するときに、IPオーバーレイアドレスの位置を知っているマッピングサービス(例えば、マッピングサービス1030)と通信することによって、IPアドレスを仮想スペースにおいて実施することができる。
少なくともいくつかの実施形態では、IPトンネリング技術は、ネットワークパケットの基板IPアドレスをIPオーバーレイアドレスにマッピングし、カプセル化プロトコルに従いネットワークパケットをカプセル化し、カプセル化されたパケットを、オーバーレイネットワークトンネルを通じて正確なエンドポイントに供給することができる。エンドポイントにおいて、パケットからカプセルが取り除かれる。図10において、ホスト1020Aにおける仮想マシン(VM)1024Aから、中間ネットワーク1050におけるデバイスまでの実施例のオーバーレイネットワークトンネル1034A、及びホスト1020BにおけるVM1024Bとホスト1020CにおけるVM1024Cとの間の実施例のオーバーレイネットワークトンネル1034Bが示される。いくつかの実施形態では、パケットを、送信する前に、オーバーレイネットワークパケットフォーマットにおいてカプセル化し、受信した後に、オーバーレイネットワークパケットを取り除くことができる。他の実施形態では、送信する前にオーバーレイネットワークパケットにおいてパケットをカプセル化する代わりに、パケットの基板アドレス(プライベートIPアドレス)にオーバーレイネットワークアドレス(パブリックIPアドレス)を組み込み、受信時にパケットアドレスから取り除くことができる。実施例として、パブリックIPアドレスとして32ビットIPv4(インターネットプロトコルバージョン4)アドレスを使用してオーバーレイネットワークを実装し、プライベートIPアドレスとして、基板ネットワークにおいて使用される128ビットIPv6(インターネットプロトコルバージョン6)アドレスの一部としてIPv4アドレスを組み込むことができる。
図10を参照するように、実施形態を実施できる少なくともいくつかのネットワークは、複数のオペレーティングシステムをホストコンピュータ(例えば、図10のホスト1020A及び1020B)において同時に起動できる、すなわち、ホスト1020における仮想マシン(VM)1024として、ハードウェア仮想化テクノロジを含むことができる。VM1024は、例えば、ネットワークプロバイダのクライアントにレントまたはリースすることができる。ハイパーバイザ、またはホスト1020における仮想マシンモニタ(VMM)1022は、ホストにおけるVM1024を仮想プラットフォームに提示し、VM1024の実行をモニタする。各VM1024には一つ以上のプライベートIPアドレスが提供され、ホスト1020におけるVMM1022は、ホストにおけるVMのプライベートIPアドレス1024を認識することができる。マッピングサービス1030が、すべてのネットワークIPプレフィックス及びルータのIPアドレスまたはローカルネットワークにおけるIPアドレスをサーブする他のデバイスを認識することができる。これには、複数のVM1024にサーブするVMM1022のIPアドレスが含まれる。マッピングサービス1030は、例えば、一つのサーバシステムに集中させる、あるいは、二つ以上のサーバシステムまたはネットワークにおける他のデバイス間に分配することができる。ネットワークは、例えば、マッピングサービス技術及びIPトンネリング技術を使用して、例えば、データセンタ1000ネットワーク内の種々のホスト1020におけるVM1024間にデータパケットを伝送することができる。そのようなローカルネットワーク内のルーティング情報を交換するために、内部ゲートウェイプロトコル(IGP)を使用できることに留意されたい。
さらに、(自律システム(AS)と称されることがある)プロバイダデータセンタ1000ネットワークなどのネットワークは、マッピングサービス技術、IPトンネリング技術、及びルーティングサービス技術を使用して、VM1024からインターネット宛先に、かつインターネットソースからVM1024にパケットを伝送することができる。インターネットにおけるソースと宛先との間のインターネットルーティングのために、通常、外部ゲートウェイプロトコル(EGP)または境界ゲートウェイプロトコル(BGP)が使用されることに留意されたい。図10は、少なくともいくつかの実施形態に従う、リソース仮想化テクノロジ、及びインターネットトランジットプロバイダと接続するエッジルータ(複数可)1014を通じてフルインターネットアクセスを提供するネットワークを実装する実施例のプロバイダデータセンタ1000を示す。プロバイダデータセンタ1000は、例えば、クライアントに、ハードウェア仮想化サービスを通じて仮想コンピューティングシステム(VM1024)を実施する能力、及びストレージ仮想化サービスを通じてストレージリソース1018における仮想化データストア1016を実施する能力を与えることができる。
データセンタ1000ネットワークは、IPトンネリング技術、マッピングサービス技術、及びルーティングサービス技術を実施して、仮想化リソースにかつそれからトラフィックを伝送することができる。例えば、データセンタ1000内のホスト1020におけるVM1024からインターネット宛先に、かつインターネットソースからVM1024にパケットを伝送することができる。インターネットソース及び宛先は、例えば、中間ネットワーク1040に接続されたコンピューティングシステム1070、及び(例えば、ネットワーク1050とインターネットトランジットプロバイダとを接続するエッジルータ(複数可)1014を通じて)中間ネットワーク1040に接続されたローカルネットワーク1050に接続されたコンピューティングシステム1052を含むことができる。プロバイダデータセンタ1000ネットワークは、データセンタ1000内のリソース間にもパケットを伝送することができる。例えば、データセンタ1000内のホスト1020におけるVM1024から、同じホストにおける他のVM1024またはデータセンタ1000内の他のホスト1020にも伝送することができる。
データセンタ1000を提供するサービスプロバイダは、データセンタ1000と同様のハードウェア仮想化テクノロジを含み、そして中間ネットワーク1040にも接続できる追加のデータセンタ(複数可)1060も提供することができる。パケットは、データセンタ1000から他のデータセンタ1060に、例えば、データセンタ1000内のホスト1020におけるVM1024から、データセンタ1060と同様の別のデータセンタ内の別のホストにおける別のVMに、かつ逆に転送することができる。
前には、ネットワークプロバイダのクライアントにレントまたはリースすることができる、ホストにおける仮想マシン(VMs)として、複数のオペレーティングシステムをホストコンピュータにおいて同時に起動できるハードウェア仮想化テクノロジを記述したが、ハードウェア仮想化テクノロジを使用して、同じようなネットワークプロバイダのクライアントへの仮想化リソースとして、ストレージリソース1018などの他のコンピューティングリソースも提供することができる。
図11は、少なくともいくつかの実施形態に従う、ストレージ仮想化サービス及びハードウェア仮想化サービスをクライアントに提供する実施例のプロバイダネットワークのブロック図である。ハードウェア仮想化サービス1120は、複数の計算リソース1124(例えば、VM)をクライアントに提供する。計算リソース1124は、例えば、プロバイダネットワーク1100のクライアント(例えば、クライアントネットワーク1150を実施するクライアント)にレントまたはリースすることができる。各計算リソース1124には一つ以上のプライベートIPアドレスを提供することができる。プロバイダネットワーク1100は、計算リソース1124のプライベートIPアドレスからパブリックインターネット宛先に、かつパブリックインターネットソースから計算リソース1124にパケットを伝送するように構成できる。
プロバイダネットワーク1100は、例えば、ローカルネットワーク1156を通じて中間ネットワーク1140に連結されたクライアントネットワーク1150、並びに中間ネットワーク1140及びプロバイダネットワーク1100に連結されたハードウェア仮想化サービス1120を通じて仮想コンピューティングシステム1192を実施する能力を提供することができる。いくつかの実施形態では、ハードウェア仮想化サービス1120は、クライアントネットワーク1150が、例えば、コンソール1194を通じて、ハードウェア仮想化サービス1120によって提供された機能性にそれを通じてアクセスできるウェブサービスインターフェースなどの一つ以上のAPI1102を提供することができる。少なくともいくつかの実施形態では、プロバイダネットワーク1100において、クライアントネットワーク1150における各仮想コンピューティングシステム1192は、クライアントネットワーク1150にリース、レント、さもなければ提供された計算リソース1124に対応することができる。
仮想コンピューティングシステム1192のインスタンス及び/または別のクライアントデバイス1190もしくはコンソール1194から、クライアントは、例えば、一つ以上のAPI1102を通じて、ストレージ仮想化サービス1110の機能性にアクセスして、プロバイダネットワーク1100によって提供された仮想データストア1116からのデータにアクセスし、かつそれにデータを保存することができる。いくつかの実施形態では、クライアントネットワーク1150に仮想化データストアゲートウェイ(図示せず)を提供することができ、このゲートウェイは、頻繁にアクセスされたまたは重要なデータなどの少なくともいくつかのデータをローカルにキャッシュし、そして一つ以上の通信チャネルを通じて仮想化データストアサービス1110と通信して、データの主要なストア(仮想化データストア1116)を維持できるようにローカルキャッシュから新規のまたは修正されたデータをアップロードすることができる。少なくともいくつかの実施形態では、ユーザは、仮想コンピューティングシステム1192を通じて、及び/または別のクライアントデバイス1190において、ユーザにローカル仮想化ストレージ1198として見える仮想データストア1116ボリュームをマウント及びそれにアクセスすることができる。
図11には示さないが、仮想化サービス(複数可)には、プロバイダネットワーク1100内のリソースインスタンスからもAPI(複数可)1102を通じてアクセスすることができる。例えば、クライアント、アプライアンスサービスプロバイダ、または他のエンティティは、プロバイダネットワーク1100におけるそれぞれの仮想プライベートネットワーク内から、API1102を通じて仮想化サービスにアクセスして、仮想プライベートネットワークまたは別の仮想プライベートネットワーク内の一つ以上のリソースインスタンスの配分をリクエストすることができる。
図12は、少なくともいくつかの実施形態に従う、プロバイダネットワークにおける仮想プライベートネットワークを少なくとも何人かのクライアントに提供する実施例のプロバイダネットワークを図示する。プロバイダネットワーク1200におけるクライアントの仮想プライベートネットワーク1260によって、例えば、クライアントは、クライアントネットワーク1250における既存のインフラストラクチャ(例えば、デバイス1252)と、論理的に分離されたリソースインスタンスのセット(例えば、VM1224A及び1224B、並びにストレージ1218A及び1218B)とを接続し、そしてリソースインスタンスを含むための、セキュリティサービス、ファイアウォール及び侵入検知システムなどの管理能力を広げることができる。
クライアントの仮想プライベートネットワーク1260は、プライベート通信チャネル1242を通じてクライアントネットワーク1250に接続することができる。プライベート通信チャネル1242は、例えば、ネットワークトンネリング技術に従い実装されたトンネル、または中間ネットワーク1240にわたるいくつかの他のピアリング接続であってもよい。中間ネットワークは、例えば、共有ネットワーク、またはインターネットなどのパブリックネットワークであってもよい。あるいは、プライベート通信チャネル1242は、仮想プライベートネットワーク1260とクライアントネットワーク1250との間の直接かつ専用の接続にわたって実装することができる。
パブリックネットワークは、複数のエンティティへのオープンアクセス及びそれらの間の相互接続を提供するネットワークとして広く定義することができる。インターネット、またはワールドワイドウェブ(WWW)は、パブリックネットワークの実施例である。共有ネットワークは、アクセスが通常では制限されないパブリックネットワークとは対照的な、アクセスが二つ以上のエンティティに制限されたネットワークとして広く定義することができる。共有ネットワークは、例えば、一つ以上のローカルエリアネットワーク(LAN)及び/もしくはデータセンタネットワーク、または広域ネットワーク(WAN)を形成するように相互接続された二つ以上のLANもしくはデータセンタネットワークを含むことができる。共有ネットワークの実施例は、これらに限定されないが、法人ネットワーク及び他の企業ネットワークを含むことができる。共有ネットワークは、ローカルエリアを保護するネットワークからグローバルネットワークまでの範囲のどこにでも存在することができる。共有ネットワークが、少なくともいくつかのネットワークインフラストラクチャをパブリックネットワークと共有し、かつ共有ネットワークが、他のネットワーク(複数可)と共有ネットワークとの間のアクセスが制御された、パブリックネットワークを含み得る一つ以上の他のネットワークに連結できることに留意されたい。共有ネットワークは、インターネットなどのパブリックネットワークとは対照的に、プライベートネットワークとみなすこともできる。実施形態では、共有ネットワークまたはパブリックネットワークのいずれかは、プロバイダネットワークとクライアントネットワークとの間の中間ネットワークとして機能することができる。
クライアントのための仮想プライベートネットワーク1260をプロバイダネットワーク1200に構築するために、一つ以上のリソースインスタンス(例えば、VM1224A及び1224B、並びにストレージ1218A及び1218B)を仮想プライベートネットワーク1260に配分することができる。他のリソースインスタンス(例えば、ストレージ1218C及びVM1224C)を、他のクライアントの使用のために、プロバイダネットワーク1200において使用可能なままにできることに留意されたい。パブリックIPアドレスのレンジも、仮想プライベートネットワーク1260に配分することができる。さらに、プロバイダネットワーク1200の一つ以上のネットワーキングデバイス(ルータ、スイッチなど)も、仮想プライベートネットワーク1260に配分することができる。仮想プライベートネットワーク1260におけるプライベートゲートウェイ1262と、クライアントネットワーク1250におけるゲートウェイ1256との間に、プライベート通信チャネル1242を構築することができる。
少なくともいくつかの実施形態では、仮想プライベートネットワーク1260は、プライベートゲートウェイ1262に加えてまたはその代わりに、パブリックゲートウェイ1264を含むことができる。このゲートウェイ1264によって、仮想プライベートネットワーク1260内のリソースは、プライベート通信チャネル1242を通じる代わりにまたはそれに加えて、中間ネットワーク1240を通じてエンティティ(例えば、ネットワークエンティティ1244)と、かつ逆に、直接に通信することができる。
仮想プライベートネットワーク1260は、必ずではないが、二つ以上のサブネットワーク、またはサブネット1270に分割することができる。例えば、プライベートゲートウェイ1262及びパブリックゲートウェイ1264の両方を含む実施では、プライベートネットワークは、プライベートゲートウェイ1262を通じて連絡可能なリソース(この実施例ではVM1224A及びストレージ1218A)を含むサブネット1270Aと、パブリックゲートウェイ1264を通じて連絡可能なリソース(この実施例ではVM1224B及びストレージ1218B)を含むサブネット1270Bとに分割することができる。
クライアントは、特定のクライアントパブリックIPアドレスを、仮想プライベートネットワーク1260内の特定のリソースインスタンスに割り当てることができる。次に、中間ネットワーク1240におけるネットワークエンティティ1244は、トラフィックを、クライアントによって発行されたパブリックIPアドレスに送信することができる。トラフィックは、プロバイダネットワーク1200によって、関連するリソースインスタンスに伝送される。リソースインスタンスから戻されたトラフィックは、プロバイダネットワーク1200によって伝送され、中間ネットワーク1240を通じてネットワークエンティティ1244に戻される。リソースインスタンスとネットワークエンティティ1244との間のトラフィックのルーティングには、パブリックIPアドレスとリソースインスタンスのプライベートIPアドレスとの間で変換するためのネットワークアドレス変換が必要となり得ることに留意されたい。
少なくともいくつかの実施形態では、クライアントは、図12に図示するようなクライアントの仮想プライベートネットワーク1260におけるパブリックIPアドレスを、クライアントの外部ネットワーク1250におけるデバイスに再マッピングすることができる。パケットを(例えば、ネットワークエンティティ1244から)受信すると、パケットによって示される宛先IPアドレスを、外部ネットワーク1250におけるエンドポイントに再マッピングし、プライベート通信チャネル1242または中間ネットワーク1240のいずれかを通じるそれぞれのエンドポイントへのパケットのルーティングを処理することを、ネットワーク1200は決定することができる。応答トラフィックは、プロバイダネットワーク1200を通じてエンドポイントからネットワークエンティティ1244に、あるいは、クライアントネットワーク1250によってネットワークエンティティ1244に直接に伝送することができる。ネットワークエンティティ1244の観点からすれば、ネットワークエンティティ1244が、プロバイダネットワーク1200におけるクライアントのパブリックIPアドレスと通信しているかのようである。しかしながら、ネットワークエンティティ1244は、実際には、クライアントネットワーク1250におけるエンドポイントと通信した。
図12は、中間ネットワーク1240における、かつプロバイダネットワーク1200外部のネットワークエンティティ1244を示すが、ネットワークエンティティは、プロバイダネットワーク1200におけるエンティティであってもよい。例えば、プロバイダネットワーク1200に提供されるリソースインスタンスのうちの一つは、トラフィックをクライアントによって発行されたパブリックIPアドレスに送信するネットワークエンティティであってもよい。
図13は、少なくともいくつかの実施形態に従う、プロバイダネットワークにおける実施例の仮想プライベートネットワーク実装内のサブネット及びグループを図示する。少なくともいくつかの実施形態では、図12におけるプロバイダネットワーク1200などのプロバイダネットワークによって、クライアントは、クライアントの仮想プライベートネットワーク1310内に、サブネット1314内に、またはサブネット1314にわたって仮想グループ1316を構築及び管理することができる。少なくともいくつかの実施形態では、グループ1316は、例えば、グループ1316内の一つ以上のリソースインスタンス1318に連絡することを許可されたトラフィックを制御するファイアウォールとしての機能を果たすことができる。クライアントは、プライベートネットワーク1310内に一つ以上のグループ1316を構築し、プライベートネットワーク1310内の各リソースインスタンス1318を、グループ1316の一つ以上に関連付けることができる。少なくともいくつかの実施形態では、クライアントは、グループ1316に関連するリソースインスタンス1318に連絡することを許可されたインバウンドトラフィックを制御する、各グループ1316についての規則を構築及び/または修正することができる。
図13に示す実施例の仮想プライベートネットワーク1310では、プライベートネットワーク1310は、二つのサブネット1314A及び1314Bに分割されている。プライベートネットワーク1310へのアクセスは、ゲートウェイ(複数可)1330によって制御される。各サブネット1314は、それぞれのサブネット1314におけるリソースインスタンス1318に(かつそれから)トラフィックを伝送するロールを果たす少なくとも一つのルータ1312を含むことができる。図13に示す実施例では、リソースインスタンス1318A〜1318Eは、サブネット1314Aに対応し、リソースインスタンス1318F〜1318Jは、サブネット1314Bに対応している。クライアントは、四つのグループ1316A〜1316Dを構築した。図13に示すように、グループは、サブネット1314Aにおけるリソースインスタンス1318A及び1318B、並びにサブネット1314Bにおけるリソースインスタンス1318Fを含むグループ1316Aのように、サブネット1314にわたって広がることができる。さらに、リソースインスタンス1318は、グループ1316A及び1316Bに含まれるリソースインスタンス1318Aのように、二つ以上のグループ1316に含ませることができる。
(実例となるシステム)
少なくともいくつかの実施形態では、本明細書に記述するようなアクセス制御方法及び装置の一部またはすべてを実施するサーバは、図14に図示するコンピュータシステム2000などの、一つ以上のコンピュータアクセス可能な媒体を含む、またはそれにアクセスするように構成された汎用コンピュータシステムを含むことができる。図示する実施形態では、コンピュータシステム2000は、入出力(I/O)インターフェース2030を通じてシステムメモリ2020に連結された一つ以上のプロセッサ2010を含む。コンピュータシステム2000は、さらに、I/Oインターフェース2030に連結されたネットワークインターフェース2040を含む。
さまざまな実施形態では、コンピュータシステム2000は、一つのプロセッサ2010、またはいくつかの(例えば、二つ、四つ、八つまたは別の適切な数の)プロセッサ2010を含むマルチプロセッサシステムを含むユニプロセッサシステムであってもよい。プロセッサ2010は、命令を実行する能力がある任意の適切なプロセッサであってもよい。例えば、さまざまな実施形態では、プロセッサ2010は、x86、PowerPC、SPARCもしくはMIPS ISA、または任意の他の適切なISAなどの様々なインストラクションセットアーキテクチャ(ISA)のうちのいずれかを実装する汎用または組み込みプロセッサであってもよい。マルチプロセッサシステムでは、プロセッサ2010の各々は、必ずではないが、通例、同一のISAを実装することができる。
システムメモリ2020は、プロセッサ(複数可)2010によってアクセス可能な命令及びデータを保存するように構成できる。さまざまな実施形態では、システムメモリ2020は、静的ランダムアクセスメモリ(SRAM)、同期ダイナミックRAM(SDRAM)、不揮発性/フラッシュタイプメモリ、または任意の他のタイプのメモリなどの任意の適切なメモリ技術を使用して実施することができる。図示する実施形態では、アクセス制御に関して前述した方法、技術及びデータなどの一つ以上の所望の機能を実施するプログラム命令及びデータは、コード2025及びデータ2026としてシステムメモリ2020内に保存されるものとして示される。
一つの実施形態では、I/Oインターフェース2030は、プロセッサ2010、システムメモリ2020、及びネットワークインターフェース2040または他の周辺インターフェースを含む、デバイス内の任意の周辺デバイス間のI/Oトラフィックを調整するように構成できる。いくつかの実施形態では、I/Oインターフェース2030は、一つのコンポーネント(例えば、システムメモリ2020)からのデータ信号を、別のコンポーネント(例えば、プロセッサ2010)が使用するのに適したフォーマットに変換するための、任意の必須のプロトコル、タイミングまたは他のデータ変換を実行することができる。いくつかの実施形態では、I/Oインターフェース2030は、例えば、周辺コンポーネント相互接続(PCI)バス標準またはユニバーサルシリアルバス(USB)標準の異形などの、さまざまなタイプの周辺バスを通じて加えられる、デバイスのサポートを含むことができる。いくつかの実施形態では、I/Oインターフェース2030の機能は、例えば、ノースブリッジ及びサウスブリッジなどの二つ以上の別個のコンポーネントに分けることができる。また、いくつかの実施形態では、システムメモリ2020とのインターフェースなどのI/Oインターフェース2030の機能性のいくつかまたはすべては、プロセッサ2010に組み込むことができる。
ネットワークインターフェース2040は、コンピュータシステム2000と、例えば、図1〜図13に図示するような他のコンピュータシステムまたはデバイスなどの、一つ以上のネットワーク2050に取り付けられた他のデバイス2060との間でデータを交換可能なように構成できる。さまざまな実施形態では、ネットワークインターフェース2040は、例えば、イーサネット(登録商標)ネットワークタイプなどの任意の適切な有線または無線の汎用データネットワークを通じて通信をサポートすることができる。さらに、ネットワークインターフェース2040は、アナログ音声ネットワークもしくはデジタルファイバ通信ネットワークなどの遠隔通信もしくはテレフォニーネットワーク、ファイバチャネルSANなどのストレージエリアネットワーク、または任意の他の適切なタイプのネットワーク及び/もしくはプロトコルを通じて通信をサポートすることができる。
いくつかの実施形態では、システムメモリ2020は、アクセス制御方法の実施形態を実施するための、図1〜図13に関して前述したようなプログラム命令及びデータを保存するように構成されたコンピュータアクセス可能な媒体の一つの実施形態であってもよい。しかしながら、他の実施形態では、プログラム命令及び/またはデータは、種々のタイプのコンピュータアクセス可能な媒体において受信、それに送信または保存することができる。概して言えば、コンピュータアクセス可能な媒体は、磁気媒体または光媒体などの非一時的ストレージ媒体またはメモリ媒体、例えば、I/Oインターフェース2030を通じてコンピュータシステム2000に連結されたディスクまたはDVD/CDを含むことができる。非一時的なコンピュータアクセス可能なストレージ媒体は、システムメモリ2020または別のタイプのメモリとしてコンピュータシステム2000のいくつかの実施形態に含ませることができる、例えば、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROMなどの任意の揮発性または不揮発性媒体も含むことができる。さらに、コンピュータアクセス可能な媒体は、例えば、ネットワークインターフェース2040を通じて実装できる、ネットワーク及び/または無線リンクなどの通信媒体を通じて搬送される、伝送媒体または電気、電磁もしくはデジタル信号などの伝送信号を含むことができる。
(結論)
さまざまな実施形態は、さらに、コンピュータアクセス可能な媒体において、前述に従い実装された命令及び/またはデータの受信、送信または保存を含むことができる。概して言えば、コンピュータアクセス可能な媒体は、磁気媒体または光媒体、例えば、ディスクまたはDVD/CD−ROMなどのストレージ媒体またはメモリ媒体、例えば、RAM(例えば、SDRAM、DDR、RDRAM、SRAMなど)、ROMなどの揮発性または不揮発性媒体、並びにネットワーク及び/または無線リンクなどの通信媒体を通じて搬送される、伝送媒体または電気、電磁もしくはデジタル信号などの伝送信号を含むことができる。
図面に図示し、本明細書に記述するようなさまざまな方法は、方法の例示的な実施形態を示す。方法は、ソフトウェア、ハードウェアまたはそれらの組み合わせにおいて実施することができる。方法の順序は変更でき、さまざまな要素を追加、再追加、結合、除外、修正などをすることができる。
本開示の利益を有する当業者に明らかなようなさまざまな変更及び変化を為すことができる。すべてのそのような変更及び変化を包含し、それ故に、前の記述が、限定的意味ではなく、実例とみなされることが意図される。
本開示の実施形態は、以下の条項に照らして記述することができる。
〔1〕
ネットワーク基板と、
プロバイダネットワークにおいてポリシを管理及び評価するように構成されたアクセス制御サービスを実施する一つ以上のコンピューティングデバイスと、
一つ以上のリソースインスタンスをその各々が実装する複数のホストデバイスと、を備えており、
ホストデバイスの一つ以上が、各々、
それぞれのホストデバイスにおいてリソースインスタンスからネットワークパケットを取得し、
アクセス制御サービスと通信して、サービスによって実行されるリソースインスタンスに関連するポリシの評価に従い、リソースインスタンスについての、ネットワークパケットによって示されるターゲットへの接続をオープンにすることを許可するか否かを決定し、
ポリシに従いネットワークパケットによって示されるターゲットへの接続をオープンにすることをリソースインスタンスが許可された場合には、一つ以上のネットワークパケットを、リソースインスタンスから、ネットワーク基板にわたるオーバーレイネットワークパスを通じてターゲットに送信し、
ポリシに従いネットワークパケットによって示されるターゲットへの接続をオープンにすることをリソースインスタンスが許可されなかった場合には、ネットワークパケットをターゲットに送信することなく、ネットワークパケットを廃棄するように構成された、プロバイダネットワーク。
〔2〕
ターゲットが、プロバイダネットワークにおける別のリソースインスタンス、または別のネットワークにおけるエンドポイントである、条項1に記載のプロバイダネットワーク。
〔3〕
リソースインスタンス及びターゲットが、共に、プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装内のリソースインスタンスである、条項1に記載のプロバイダネットワーク。
〔4〕
リソースインスタンスについての、ネットワークパケットによって示されるターゲットへの接続をオープンにすることを許可するか否かを決定するために、アクセス制御サービスが、さらに、ターゲットに関連するポリシを決定及び評価するように構成され、リソースインスタンスに関連するポリシ及びターゲットに関連するポリシの両方が接続を許可する場合に、リソースインスタンスについてのみ、ターゲットへの接続をオープンにすることを許可する、条項1に記載のプロバイダネットワーク。
〔5〕
リソースインスタンスが、ホストデバイスにおける仮想マシン(VM)として実装され、各ホストデバイスが、それぞれのホストデバイスにおける複数の仮想マシン(VM)をモニタする仮想マシンモニタ(VMM)を含み、ホストデバイスにおけるVMMが、前述の取得、前述のアクセス及び前述の送信を実行する、条項1に記載のプロバイダネットワーク。
〔6〕
リソースインスタンスに関連するポリシを評価するために、アクセス制御サービスが、
プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装におけるロールをリソースインスタンスが担ったことを決定し、
リソースインスタンスが担ったロールに関連するポリシを決定し、
ロールに関連するポリシを評価するように構成された、条項1に記載のプロバイダネットワーク。
〔7〕
一つ以上のネットワークパケットを、リソースインスタンスから、ネットワーク基板にわたるオーバーレイネットワークパスを通じてターゲットに送信するために、ホストデバイスが、
カプセル化プロトコルに従い一つ以上のネットワークパケットをカプセル化して、一つ以上のカプセル化パケットを生成し、
カプセル化パケットを、カプセル化パケットにおけるルーティング情報に従い、ターゲットに伝送されるようにネットワーク基板に送信するように構成された、条項1に記載のプロバイダネットワーク。
〔8〕
ネットワーク基板に実装されたオーバーレイネットワーク外部のエンドポイントと通信して、オーバーレイネットワークにおけるエンドポイントについてのアイデンティティを構築し、
アクセス制御サービスにアクセスして、ターゲットリソースインスタンスに関連するポリシの評価に従い、エンドポイントについての、オーバーレイネットワークを通じたターゲットリソースインスタンスへの接続をオープンにすることを許可することを決定し、
前述の決定に応答して、一つ以上のネットワークパケットを、エンドポイントから、ネットワーク基板にわたるオーバーレイネットワークパスを通じてターゲットリソースインスタンスに送信するように構成された一つ以上のネットワークデバイスをさらに備えた、条項1に記載のプロバイダネットワーク。
〔9〕
プロバイダネットワーク内のホストデバイスに実装されたカプセル化層プロセスによって、ホストデバイスに実装された一つ以上のリソースインスタンスのうちの一つから、ターゲットエンドポイントに導かれるネットワークパケットを取得することと、
プロバイダネットワークにおけるアイデンティティ及びアクセス管理環境に従い、リソースインスタンスをプリンシパルとして識別することを決定することと、
プリンシパルに関連するポリシの評価に従い、プリンシパルについての、ターゲットエンドポイントへの接続をオープンにすることを許可することを決定することと、
プリンシパルがターゲットエンドポイントへの接続をオープンにすることを許可されたことの前述の決定に応答して、
一つ以上のカプセル化パケットを生成するためのカプセル化プロトコルに従い、リソースインスタンスからの一つ以上のネットワークパケットをカプセル化し、ターゲットエンドポイントに導くことと、及び
一つ以上のカプセル化パケットを、カプセル化パケットにおけるルーティング情報に従い、ターゲットエンドポイントに伝送されるようにプロバイダネットワークのネットワーク基板に送信することと、を含む、方法。
〔10〕
ターゲットエンドポイントが、プロバイダネットワークにおける別のリソース、または別のネットワークにおけるエンドポイントである、条項9に記載の方法。
〔11〕
リソースインスタンス及びターゲットエンドポイントが、共に、プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装内のリソースインスタンスである、条項9に記載の方法。
〔12〕
プリンシパルに関連するポリシの認可ステートメントの評価に従う、プリンシパルについての、ターゲットエンドポイントへの接続をオープンにすることを許可することの前述の決定が、
カプセル化層プロセスがポリシ評価リクエストをプロバイダネットワークにおけるアクセス制御サービスに送信することと、
アクセス制御サービスによって、プリンシパルに関連するポリシを決定することと、
アクセス制御サービスによって、プリンシパルに関連するポリシにおける一つ以上の認可ステートメントを評価して、プリンシパルについての、ターゲットエンドポイントに関連するリソースへの接続をオープンにすることをポリシが許可することを決定することと、及び
プリンシパルについての、ターゲットエンドポイントへの接続をオープンにすることが許可されたことを、カプセル化層プロセスに示すことと、を含む、条項9に記載の方法。
〔13〕
アクセス制御サービスが、さらに、ターゲットエンドポイントに関連するリソースに関連するポリシの決定及び評価を実行し、プリンシパルに関連するポリシ及びリソースに関連するポリシの両方が接続を許可する場合に、プリンシパルについてのみ、リソースへの接続をオープンにすることを許可する、条項12に記載の方法。
〔14〕
プリンシパルに関連するポリシにおける各認可ステートメントが、認可を許可または拒否するかについての一つ以上のアクション、認可ステートメントが適用される一つ以上のリソース、及び示された一つ以上のアクションが示された一つ以上のリソースについて許可または拒否されるかを示す、条項12に記載の方法。
〔15〕
カプセル化層プロセスによって、アイデンティティ及びアクセス管理環境に従い、プリンシパルとして識別されたリソースインスタンスから、別のターゲットエンドポイントに導かれる他のネットワークパケットを取得することと、
プリンシパルに関連するポリシの評価に従い、プリンシパルについての、他のターゲットエンドポイントへの接続をオープンにすることを許可しないことを決定することと、及び
前述の決定に応答して、ネットワークパケットを他のターゲットエンドポイントに送信せずに、他のネットワークパケットを廃棄することと、をさらに含む、条項9に記載の方法。
〔16〕
プリンシパルに関連するポリシの評価に従う、プリンシパルについての、ターゲットエンドポイントへの接続をオープンにすることを許可することの前述の決定が、
プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装におけるロールをプリンシパルが担ったことを決定することと、ここで、プリンシパルに関連するポリシが、プリンシパルが担ったロールに関連するポリシであり、及び
ロールに関連するポリシを評価して、プリンシパルについての、ターゲットエンドポイントへの接続をオープンにすることを許可することを決定することと、を含む、条項9に記載の方法。
〔17〕
プロバイダネットワーク内のデバイスにおけるカプセル化層プロセスを実施するための、コンピュータ実行可能なプログラム命令を保存する非一時的なコンピュータアクセス可能なストレージ媒体であって、カプセル化層プロセスが、
ソースエンドポイントから、ターゲットエンドポイントに導かれるネットワークパケットを取得し、
ソースエンドポイントについてのリソース識別子、及びターゲットエンドポイントについてのリソース識別子を決定し、
ソースエンドポイントについてのリソース識別子に関連するポリシ、及びターゲットエンドポイントについてのリソース識別子に関連するポリシを決定し、
ソースエンドポイントについてのリソース識別子に関連するポリシ、及びターゲットエンドポイントについてのリソース識別子に関連するポリシのいずれかまたは両方の評価に従い、ソースエンドポイントについてのターゲットエンドポイントへの接続をオープンにすることを許可することを決定し、
ソースエンドポイントがターゲットエンドポイントへの接続をオープンにすることを許可されたことの前述の決定に応答して、
ソースエンドポイントからの一つ以上のネットワークパケットにタグ付けし、一つ以上のカプセル化パケットを生成するためのカプセル化プロトコルに従うカプセル化メタデータを用いてターゲットエンドポイントに導き、
カプセル化パケットにおけるカプセル化メタデータに従い、カプセル化パケットを、ターゲットエンドポイントに伝送されるようにプロバイダネットワークのネットワーク基板に送信するように構成された、非一時的なコンピュータアクセス可能なストレージ媒体。
〔18〕
ソースエンドポイントについてのリソース識別子に関連するポリシ、及びターゲットエンドポイントについてのリソース識別子に関連するポリシのいずれかまたは両方の評価に従い、ソースエンドポイントについてのターゲットエンドポイントへの接続をオープンにすることを許可することを決定するために、カプセル化層プロセスが、
ソースエンドポイントについてのリソース識別子に関連するポリシを評価して、ソースエンドポイントについての、ターゲットエンドポイントに関連するリソース識別子への接続をオープンにすることをポリシが許可することを決定し、
ターゲットエンドポイントについてのリソース識別子に関連するポリシを評価して、ターゲットエンドポイントについての、ソースエンドポイントに関連するリソース識別子からの接続をアクセプトすることをポリシが許可することを決定するように構成された、条項17に記載の非一時的なコンピュータアクセス可能なストレージ媒体。
〔19〕
カプセル化層プロセスが、さらに、一つ以上のカプセル化パケットの少なくとも一つにおけるメタデータとしてソースエンドポイントについてのアイデンティティ関連情報を含むように構成され、ソースエンドポイントについてのアイデンティティ関連情報が、ターゲットエンドポイントにおけるポリシに従い、ソースエンドポイントについてのアクセス決定を為すようにターゲットエンドポイントにおいて使用されるように構成された、条項17に記載の非一時的なコンピュータアクセス可能なストレージ媒体。
〔20〕
ソースエンドポイントが、プロバイダネットワーク外部に位置し、ターゲットエンドポイントが、プロバイダネットワークにおけるリソースインスタンスであり、ソースエンドポイントについてのリソース識別子を決定するために、カプセル化層プロセスが、ソースエンドポインと通信して、プロバイダネットワークにおけるソースエンドポイントについての安全なアイデンティティを構築するように構成された、条項17に記載の非一時的なコンピュータアクセス可能なストレージ媒体。

Claims (15)

  1. ネットワーク基板と、
    プロバイダネットワークにおいてポリシを管理及び評価するように構成されたアクセス制御サービスを実施する一つ以上のコンピューティングデバイスと、
    一つ以上のリソースインスタンスをその各々が実装する複数のホストデバイスと、を備えており、
    前記ホストデバイスの一つ以上が、各々、
    前記それぞれのホストデバイスにおいてリソースインスタンスからネットワークパケットを取得し、
    前記アクセス制御サービスと通信して、前記サービスによって実行される前記リソースインスタンスに関連するポリシの評価に従い、前記リソースインスタンスについての、前記ネットワークパケットによって示されるターゲットへの接続をオープンにすることを許可するか否かを決定し、
    前記ポリシに従い前記ネットワークパケットによって示されるターゲットへの接続をオープンにすることを前記リソースインスタンスが許可された場合には、一つ以上のネットワークパケットを、前記リソースインスタンスから、前記ネットワーク基板にわたるオーバーレイネットワークパスを通じて前記ターゲットに送信し、
    前記ポリシに従い前記ネットワークパケットによって示されるターゲットへの接続をオープンにすることを前記リソースインスタンスが許可されなかった場合には、前記ネットワークパケットを前記ターゲットに送信することなく、前記ネットワークパケットを廃棄するように構成された、プロバイダネットワーク。
  2. 前記ターゲットが、前記プロバイダネットワークにおける別のリソースインスタンス、または別のネットワークにおけるエンドポイントである、請求項1に記載のプロバイダネットワーク。
  3. 前記リソースインスタンス及び前記ターゲットが、共に、前記プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装内のリソースインスタンスである、請求項1に記載のプロバイダネットワーク。
  4. 前記リソースインスタンスについての、前記ネットワークパケットによって示されるターゲットへの接続をオープンにすることを許可するか否かを決定するために、前記アクセス制御サービスが、さらに、前記ターゲットに関連するポリシを決定及び評価するように構成され、前記リソースインスタンスに関連する前記ポリシ及び前記ターゲットに関連する前記ポリシの両方が前記接続を許可する場合に、前記リソースインスタンスについてのみ、前記ターゲットへの接続をオープンにすることを許可する、請求項1に記載のプロバイダネットワーク。
  5. 前記リソースインスタンスが、前記ホストデバイスにおける仮想マシン(VM)として実装され、各ホストデバイスが、前記それぞれのホストデバイスにおける複数の仮想マシン(VM)をモニタする仮想マシンモニタ(VMM)を含み、前記ホストデバイスにおける前記VMMが、前述の取得、前述のアクセス及び前述の送信を実行する、請求項1に記載のプロバイダネットワーク。
  6. 前記リソースインスタンスに関連する前記ポリシを評価するために、前記アクセス制御サービスが、
    前記プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装におけるロールを前記リソースインスタンスが担ったことを決定し、
    前記リソースインスタンスが担った前記ロールに関連するポリシを決定し、
    前記ロールに関連する前記ポリシを評価するように構成された、請求項1に記載のプロバイダネットワーク。
  7. 前記一つ以上のネットワークパケットを、前記リソースインスタンスから、前記ネットワーク基板にわたるオーバーレイネットワークパスを通じて前記ターゲットに送信するために、前記ホストデバイスが、
    カプセル化プロトコルに従い前記一つ以上のネットワークパケットをカプセル化して、一つ以上のカプセル化パケットを生成し、
    前記カプセル化パケットを、前記カプセル化パケットにおけるルーティング情報に従い、前記ターゲットに伝送されるように前記ネットワーク基板に送信するように構成された、請求項1に記載のプロバイダネットワーク。
  8. 前記ネットワーク基板に実装されたオーバーレイネットワーク外部のエンドポイントと通信して、前記オーバーレイネットワークにおける前記エンドポイントについてのアイデンティティを構築し、
    前記アクセス制御サービスにアクセスして、ターゲットリソースインスタンスに関連するポリシの評価に従い、前記エンドポイントについての、前記オーバーレイネットワークを通じた前記ターゲットリソースインスタンスへの接続をオープンにすることを許可することを決定し、
    前述の決定に応答して、一つ以上のネットワークパケットを、前記エンドポイントから、前記ネットワーク基板にわたるオーバーレイネットワークパスを通じて前記ターゲットリソースインスタンスに送信するように構成された一つ以上のネットワークデバイスをさらに備えた、請求項1に記載のプロバイダネットワーク。
  9. プロバイダネットワーク内のホストデバイスに実装されたカプセル化層プロセスによって、前記ホストデバイスに実装された一つ以上のリソースインスタンスのうちの一つから、ターゲットエンドポイントに導かれるネットワークパケットを取得することと、
    前記プロバイダネットワークにおけるアイデンティティ及びアクセス管理環境に従い、前記リソースインスタンスをプリンシパルとして識別することを決定することと、
    前記プリンシパルに関連するポリシの評価に従い、前記プリンシパルについての、前記ターゲットエンドポイントへの接続をオープンにすることを許可することを決定することと、
    前記プリンシパルが前記ターゲットエンドポイントへの接続をオープンにすることを許可されたことの前述の決定に応答して、
    一つ以上のカプセル化パケットを生成するためのカプセル化プロトコルに従い、前記リソースインスタンスからの一つ以上のネットワークパケットをカプセル化し、前記ターゲットエンドポイントに導くことと、及び
    前記一つ以上のカプセル化パケットを、前記カプセル化パケットにおけるルーティング情報に従い、前記ターゲットエンドポイントに伝送されるように前記プロバイダネットワークのネットワーク基板に送信することと、を含む、方法。
  10. 前記リソースインスタンス及び前記ターゲットエンドポイントが、共に、前記プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装内のリソースインスタンスである、請求項9に記載の方法。
  11. 前記プリンシパルに関連するポリシの認可ステートメントの評価に従う、前記プリンシパルについての、前記ターゲットエンドポイントへの接続をオープンにすることを許可することの前述の決定が、
    前記カプセル化層プロセスがポリシ評価リクエストを前記プロバイダネットワークにおけるアクセス制御サービスに送信することと、
    前記アクセス制御サービスによって、前記プリンシパルに関連する前記ポリシを決定することと、
    前記アクセス制御サービスによって、前記プリンシパルに関連する前記ポリシにおける一つ以上の認可ステートメントを評価して、前記プリンシパルについての、前記ターゲットエンドポイントに関連するリソースへの接続をオープンにすることを前記ポリシが許可することを決定することと、及び
    前記プリンシパルについての、前記ターゲットエンドポイントへの接続をオープンにすることが許可されたことを、前記カプセル化層プロセスに示すことと、を含む、請求項9に記載の方法。
  12. 前記アクセス制御サービスが、さらに、前記ターゲットエンドポイントに関連する前記リソースに関連するポリシの決定及び評価を実行し、前記プリンシパルに関連する前記ポリシ及び前記リソースに関連する前記ポリシの両方が前記接続を許可する場合に、前記プリンシパルについてのみ、前記リソースへの接続をオープンにすることを許可する、請求項11に記載の方法。
  13. 前記プリンシパルに関連する前記ポリシにおける各認可ステートメントが、認可を許可または拒否するかについての一つ以上のアクション、前記認可ステートメントが適用される一つ以上のリソース、及び前記示された一つ以上のアクションが前記示された一つ以上のリソースについて許可または拒否されるかを示す、請求項11に記載の方法。
  14. 前記カプセル化層プロセスによって、前記アイデンティティ及びアクセス管理環境に従い、前記プリンシパルとして識別されたリソースインスタンスから、別のターゲットエンドポイントに導かれる前記他のネットワークパケットを取得することと、
    前記プリンシパルに関連するポリシの評価に従い、前記プリンシパルについての、前記他のターゲットエンドポイントへの接続をオープンにすることを許可しないことを決定することと、及び
    前述の決定に応答して、前記ネットワークパケットを前記他のターゲットエンドポイントに送信せずに、前記他のネットワークパケットを廃棄することと、をさらに含む、請求項9に記載の方法。
  15. 前記プリンシパルに関連するポリシの評価に従う、前記プリンシパルについての、前記ターゲットエンドポイントへの接続をオープンにすることを許可することの前述の決定が、
    前記プロバイダネットワークにおける特定のクライアントのプライベートネットワーク実装におけるロールを前記プリンシパルが担ったことを決定することと、ここで、前記プリンシパルに関連する前記ポリシが、前記プリンシパルが担った前記ロールに関連するポリシであり、及び
    前記ロールに関連する前記ポリシを評価して、前記プリンシパルについての、前記ターゲットエンドポイントへの接続をオープンにすることを許可することを決定することと、を含む、請求項9に記載の方法。
JP2016538551A 2013-12-11 2014-12-11 仮想ネットワークにおけるアイデンティティ及びアクセス管理ベースのアクセス制御 Active JP6479814B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/103,628 2013-12-11
US14/103,628 US9438506B2 (en) 2013-12-11 2013-12-11 Identity and access management-based access control in virtual networks
PCT/US2014/069825 WO2015089319A1 (en) 2013-12-11 2014-12-11 Identity and access management-based access control in virtual networks

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018046536A Division JP2018093547A (ja) 2013-12-11 2018-03-14 仮想ネットワークにおけるアイデンティティ及びアクセス管理ベースのアクセス制御

Publications (2)

Publication Number Publication Date
JP2016540446A true JP2016540446A (ja) 2016-12-22
JP6479814B2 JP6479814B2 (ja) 2019-03-06

Family

ID=53272301

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016538551A Active JP6479814B2 (ja) 2013-12-11 2014-12-11 仮想ネットワークにおけるアイデンティティ及びアクセス管理ベースのアクセス制御
JP2018046536A Withdrawn JP2018093547A (ja) 2013-12-11 2018-03-14 仮想ネットワークにおけるアイデンティティ及びアクセス管理ベースのアクセス制御

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018046536A Withdrawn JP2018093547A (ja) 2013-12-11 2018-03-14 仮想ネットワークにおけるアイデンティティ及びアクセス管理ベースのアクセス制御

Country Status (6)

Country Link
US (1) US9438506B2 (ja)
EP (1) EP3080707B1 (ja)
JP (2) JP6479814B2 (ja)
CN (1) CN105814554B (ja)
CA (1) CA2933056C (ja)
WO (1) WO2015089319A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022510555A (ja) * 2018-11-30 2022-01-27 シスコ テクノロジー,インコーポレイテッド 複数の管理ドメインをまたぐエンドツーエンドid認識ルーティング

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2463228C (en) 2003-04-04 2012-06-26 Evertz Microsystems Ltd. Apparatus, systems and methods for packet based transmission of multiple data signals
US10057167B2 (en) * 2014-04-09 2018-08-21 Tallac Networks, Inc. Identifying end-stations on private networks
US9712542B1 (en) * 2014-06-27 2017-07-18 Amazon Technologies, Inc. Permissions decisions in a service provider environment
US9832118B1 (en) 2014-11-14 2017-11-28 Amazon Technologies, Inc. Linking resource instances to virtual networks in provider network environments
US9928095B2 (en) * 2015-04-24 2018-03-27 International Business Machines Corporation Preventing interoperability conflicts in a shared computing environment
US10523646B2 (en) 2015-08-24 2019-12-31 Virtru Corporation Methods and systems for distributing encrypted cryptographic data
US9860214B2 (en) * 2015-09-10 2018-01-02 International Business Machines Corporation Interconnecting external networks with overlay networks in a shared computing environment
US10110483B2 (en) * 2016-03-18 2018-10-23 Cisco Technology, Inc. Method and apparatus for creation of global network overlay with global parameters defining an end-to-end network
US10873540B2 (en) * 2016-07-06 2020-12-22 Cisco Technology, Inc. Crowd-sourced cloud computing resource validation
US10389628B2 (en) * 2016-09-02 2019-08-20 Oracle International Corporation Exposing a subset of hosts on an overlay network to components external to the overlay network without exposing another subset of hosts on the overlay network
US11463400B2 (en) 2016-11-04 2022-10-04 Security Services, Llc Resolving domain name system (DNS) requests via proxy mechanisms
US10560431B1 (en) 2016-12-05 2020-02-11 Amazon Technologies, Inc. Virtual private gateway for encrypted communication over dedicated physical link
US11470119B2 (en) * 2016-12-19 2022-10-11 Nicira, Inc. Native tag-based configuration for workloads in a virtual computing environment
US11948009B2 (en) * 2017-01-13 2024-04-02 Boe Technology Group Co., Ltd. Method and device for operating instance resources based on instance arranging property
US10931744B1 (en) * 2017-01-19 2021-02-23 Tigera, Inc. Policy controlled service routing
US10171344B1 (en) * 2017-02-02 2019-01-01 Cisco Technology, Inc. Isolation of endpoints within an endpoint group
US11582244B2 (en) 2017-03-23 2023-02-14 International Business Machines Corporation Access control of administrative operations within an application
US10819749B2 (en) 2017-04-21 2020-10-27 Netskope, Inc. Reducing error in security enforcement by a network security system (NSS)
US10491584B2 (en) * 2017-05-22 2019-11-26 General Electric Company Role-based resource access control
US10958623B2 (en) * 2017-05-26 2021-03-23 Futurewei Technologies, Inc. Identity and metadata based firewalls in identity enabled networks
US10834113B2 (en) 2017-07-25 2020-11-10 Netskope, Inc. Compact logging of network traffic events
US11595372B1 (en) * 2017-08-28 2023-02-28 Amazon Technologies, Inc. Data source driven expected network policy control
KR101858715B1 (ko) * 2017-11-10 2018-05-16 베스핀글로벌 주식회사 서비스자원 관리시스템 및 그 방법
US10715458B1 (en) * 2017-12-08 2020-07-14 Amazon Technologies, Inc. Organization level identity management
US11017107B2 (en) * 2018-03-06 2021-05-25 Amazon Technologies, Inc. Pre-deployment security analyzer service for virtual computing resources
CN110324248B (zh) * 2018-03-30 2021-07-30 中移(苏州)软件技术有限公司 一种裸金属服务器路由更新方法、装置、电子设备及介质
US10911406B2 (en) * 2018-04-30 2021-02-02 Microsoft Technology Licensing, Llc Accessing cloud resources using private network addresses
US10999326B1 (en) * 2018-05-30 2021-05-04 Tigera, Inc. Fine grained network security
US11252155B2 (en) * 2018-07-26 2022-02-15 Comcast Cable Communications, Llc Systems and methods for on-network device identification
US10680945B1 (en) * 2018-09-27 2020-06-09 Amazon Technologies, Inc. Extending overlay networks to edge routers of a substrate network
CN113039745B (zh) * 2018-10-10 2023-04-14 阿里巴巴集团控股有限公司 文件系统服务器、应用于其中的方法、计算机可读介质
US10826874B2 (en) * 2018-11-29 2020-11-03 Mastercard International Incorporated Direct production network access using private networks and encapsulation
US11570244B2 (en) * 2018-12-11 2023-01-31 Amazon Technologies, Inc. Mirroring network traffic of virtual networks at a service provider network
US11087179B2 (en) 2018-12-19 2021-08-10 Netskope, Inc. Multi-label classification of text documents
US10841209B2 (en) 2018-12-21 2020-11-17 Cisco Technology, Inc. Method, node, and medium for establishing connection between a source and endpoint via one or more border nodes
US11531777B2 (en) * 2019-01-30 2022-12-20 Virtru Corporation Methods and systems for restricting data access based on properties of at least one of a process and a machine executing the process
EP4123973A1 (en) * 2019-02-08 2023-01-25 Palantir Technologies Inc. Isolating applications associated with multiple tenants within a computing platform
US11677785B2 (en) * 2019-02-12 2023-06-13 Sap Portals Israel Ltd. Security policy as a service
US11201800B2 (en) * 2019-04-03 2021-12-14 Cisco Technology, Inc. On-path dynamic policy enforcement and endpoint-aware policy enforcement for endpoints
US11463477B2 (en) * 2019-05-22 2022-10-04 Hewlett Packard Enterprise Development Lp Policy management system to provide authorization information via distributed data store
CN112019475B (zh) * 2019-05-28 2021-12-21 阿里巴巴集团控股有限公司 无服务器架构下的资源访问方法、设备、系统及存储介质
CN114026826B (zh) * 2019-06-28 2023-07-14 亚马逊技术股份有限公司 提供商网络底层扩展的提供商网络连接管理
US11405381B2 (en) 2019-07-02 2022-08-02 Hewlett Packard Enterprise Development Lp Tag-based access permissions for cloud computing resources
US11580239B2 (en) * 2019-10-22 2023-02-14 Microsoft Technology Licensing, Llc Controlling access to cloud resources in data using cloud-enabled data tagging and a dynamic access control policy engine
US11856022B2 (en) 2020-01-27 2023-12-26 Netskope, Inc. Metadata-based detection and prevention of phishing attacks
US11360799B2 (en) 2020-04-28 2022-06-14 International Business Machines Corporation Virtual machine live migration with seamless network connectivity
US11394661B2 (en) * 2020-09-23 2022-07-19 Amazon Technologies, Inc. Compositional reasoning techniques for role reachability analyses in identity systems
US11442770B2 (en) * 2020-10-13 2022-09-13 BedRock Systems, Inc. Formally verified trusted computing base with active security and policy enforcement
US20220191205A1 (en) * 2020-12-10 2022-06-16 Amazon Technologies, Inc. Analysis of role reachability with transitive tags
US11757886B2 (en) 2020-12-10 2023-09-12 Amazon Technologies, Inc. Analysis of role reachability using policy complements
DE112021005656T5 (de) * 2020-12-10 2023-08-10 Amazon Technologies, Inc. Analyse der rollenerreichbarkeit mit transitiven tags
US11601399B2 (en) 2021-01-20 2023-03-07 Bank Of America Corporation System and method for detecting forbidden network accesses based on zone connectivity mapping
US11323357B1 (en) * 2021-03-31 2022-05-03 Arista Networks, Inc. Accessing varying route attribute states during routing policy application on network devices
US11588740B2 (en) 2021-04-09 2023-02-21 Microsoft Technology Licensing, Llc Scaling host policy via distribution
US11652749B2 (en) 2021-04-09 2023-05-16 Microsoft Technology Licensing, Llc High availability for hardware-based packet flow processing
US11799785B2 (en) 2021-04-09 2023-10-24 Microsoft Technology Licensing, Llc Hardware-based packet flow processing
CN114679290B (zh) * 2021-05-20 2023-03-24 腾讯云计算(北京)有限责任公司 一种网络安全管理方法及电子设备
US20230069306A1 (en) * 2021-08-25 2023-03-02 Hewlett Packard Enterprise Development Lp Policy enforcement on multi-destination packets in a distributed tunnel fabric
CN114422573B (zh) * 2022-01-14 2023-08-15 杭州华橙软件技术有限公司 报文发送方法及装置、存储介质及电子装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187335A (ja) * 2008-02-07 2009-08-20 Fujitsu Ltd 接続管理システム、接続管理サーバ、接続管理方法及びプログラム
WO2011115655A1 (en) * 2010-03-15 2011-09-22 Symantec Corporation Systems and methods for providing network access control in virtual environments
JP2013507044A (ja) * 2009-09-30 2013-02-28 アルカテル−ルーセント クラウドトポロジでのエンタープライズ拡張のためのスケーラブルなアーキテクチャ
WO2013145780A1 (en) * 2012-03-30 2013-10-03 Nec Corporation Communication system, control apparatus, communication apparatus, communication control method, and program

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6335927B1 (en) 1996-11-18 2002-01-01 Mci Communications Corporation System and method for providing requested quality of service in a hybrid network
US6092196A (en) 1997-11-25 2000-07-18 Nortel Networks Limited HTTP distributed remote user authentication system
US6460141B1 (en) 1998-10-28 2002-10-01 Rsa Security Inc. Security and access management system for web-enabled and non-web-enabled applications and content on a computer network
US7124101B1 (en) 1999-11-22 2006-10-17 Accenture Llp Asset tracking in a network-based supply chain environment
US6986061B1 (en) 2000-11-20 2006-01-10 International Business Machines Corporation Integrated system for network layer security and fine-grained identity-based access control
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7400640B2 (en) 2002-05-03 2008-07-15 Conexant, Inc. Partitioned medium access control implementation
US20050273668A1 (en) 2004-05-20 2005-12-08 Richard Manning Dynamic and distributed managed edge computing (MEC) framework
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US8447829B1 (en) 2006-02-10 2013-05-21 Amazon Technologies, Inc. System and method for controlling access to web services resources
US8091119B2 (en) * 2007-08-22 2012-01-03 Novell, Inc. Identity based network mapping
US20110110377A1 (en) * 2009-11-06 2011-05-12 Microsoft Corporation Employing Overlays for Securing Connections Across Networks
US8374183B2 (en) * 2010-06-22 2013-02-12 Microsoft Corporation Distributed virtual network gateways
US20120099591A1 (en) 2010-10-26 2012-04-26 Dell Products, Lp System and Method for Scalable Flow Aware Network Architecture for Openflow Based Network Virtualization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187335A (ja) * 2008-02-07 2009-08-20 Fujitsu Ltd 接続管理システム、接続管理サーバ、接続管理方法及びプログラム
JP2013507044A (ja) * 2009-09-30 2013-02-28 アルカテル−ルーセント クラウドトポロジでのエンタープライズ拡張のためのスケーラブルなアーキテクチャ
WO2011115655A1 (en) * 2010-03-15 2011-09-22 Symantec Corporation Systems and methods for providing network access control in virtual environments
WO2013145780A1 (en) * 2012-03-30 2013-10-03 Nec Corporation Communication system, control apparatus, communication apparatus, communication control method, and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022510555A (ja) * 2018-11-30 2022-01-27 シスコ テクノロジー,インコーポレイテッド 複数の管理ドメインをまたぐエンドツーエンドid認識ルーティング
JP7482121B2 (ja) 2018-11-30 2024-05-13 シスコ テクノロジー,インコーポレイテッド 複数の管理ドメインをまたぐエンドツーエンドid認識ルーティング

Also Published As

Publication number Publication date
CN105814554A (zh) 2016-07-27
CA2933056C (en) 2018-11-13
CA2933056A1 (en) 2015-06-18
EP3080707A1 (en) 2016-10-19
US9438506B2 (en) 2016-09-06
US20150163158A1 (en) 2015-06-11
EP3080707A4 (en) 2017-08-23
JP2018093547A (ja) 2018-06-14
CN105814554B (zh) 2019-11-15
JP6479814B2 (ja) 2019-03-06
EP3080707B1 (en) 2020-03-18
WO2015089319A1 (en) 2015-06-18

Similar Documents

Publication Publication Date Title
JP6479814B2 (ja) 仮想ネットワークにおけるアイデンティティ及びアクセス管理ベースのアクセス制御
US11563681B2 (en) Managing communications using alternative packet addressing
EP3646175B1 (en) Virtual private network service endpoints
US11089021B2 (en) Private network layering in provider network environments
US7760729B2 (en) Policy based network address translation
CN113014468B (zh) 用于隔离虚拟网络的私有别名端点
US9825822B1 (en) Group networking in an overlay network
US11770364B2 (en) Private network peering in virtual network environments
EP3788755B1 (en) Accessing cloud resources using private network addresses
US20140280810A1 (en) Providing private access to network-accessible services
EP3545650A1 (en) Virtual network verification service
US10862796B1 (en) Flow policies for virtual networks in provider network environments
US10298720B1 (en) Client-defined rules in provider network environments
US9426069B2 (en) System and method of cross-connection traffic routing
US10862709B1 (en) Conditional flow policy rules for packet flows in provider network environments
EP1379037B1 (en) Packet routing based on user ID in virtual private networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180314

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20180322

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20180413

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190206

R150 Certificate of patent or registration of utility model

Ref document number: 6479814

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250