CN105814554B - 虚拟网络中基于身份和访问管理的访问控制 - Google Patents

虚拟网络中基于身份和访问管理的访问控制 Download PDF

Info

Publication number
CN105814554B
CN105814554B CN201480067508.1A CN201480067508A CN105814554B CN 105814554 B CN105814554 B CN 105814554B CN 201480067508 A CN201480067508 A CN 201480067508A CN 105814554 B CN105814554 B CN 105814554B
Authority
CN
China
Prior art keywords
network
resource
target
strategy
resource instances
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.)
Active
Application number
CN201480067508.1A
Other languages
English (en)
Other versions
CN105814554A (zh
Inventor
M·赖兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN105814554A publication Critical patent/CN105814554A/zh
Application granted granted Critical
Publication of CN105814554B publication Critical patent/CN105814554B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

本发明提供用于为虚拟覆盖网络环境中的实体之间的连接提供基于身份和访问管理的访问控制的方法和设备。在所述覆盖网络的封装层处,可利用带外连接创建过程强制执行访问控制并且因此根据策略允许或拒绝源与目标之间的覆盖网络连接。例如,可给予资源身份,所识别的资源可担任角色,并且可针对所述角色定义策略,所述策略包括与建立到其他资源的连接有关的权限。当给定资源,即源,试图建立到另一个资源,即目标,的连接时,可确定给定的资源所担任的角色,识别所述角色的策略,并且检验权限以确定是允许还是拒绝在所述覆盖网络之上从所述源到所述目标的连接。

Description

虚拟网络中基于身份和访问管理的访问控制
背景技术
许多公司和其他组织操作互连众多计算系统的计算机网络以支持其运营,诸如其中所述计算系统位于同一位置(例如,作为本地网络的一部分)或者替代地位于多个不同的地理位置中(例如,通过一个或多个私有和/或公共中间网络连接)。例如,包括显著数量的互连的计算系统的数据中心已变得司空见惯,诸如由单个组织操作并用于所述组织的私有数据中心和由实体进行商业运营来向客户或客户端提供计算资源的公共数据中心。一些公共数据中心运营商为由各种客户端所拥有的计算硬件提供网络访问、电源以及安全安装设施,而其他公共数据中心运营商提供还包括可供其客户端使用的硬件资源的“全方位服务”设施。然而,随着典型数据中心规模和范围的不断扩大,供应、操纵和管理物理计算资源的任务变得越来越复杂。
用于商用硬件的虚拟化技术的出现已关于为具有多样化需求的众多客户端管理大规模计算资源提供了益处,从而允许各种计算资源高效且安全地由多个客户端共享,并且促进在一组物理节点之间对计算资源的供应、管理和移动。例如,虚拟化技术可以通过为每个用户提供由单个物理计算机托管的一个或多个虚拟机而允许所述单个物理计算机在多个用户之间共享,其中每个这样的虚拟机是充当不同逻辑计算系统的软件模拟,所述软件模拟使用户幻想他们是给定硬件资源的唯一操作者和管理者,同时还在各种虚拟机之间提供了应用程序隔离和安全性。此外,一些虚拟化技术能够提供跨越两个或更多个物理资源的虚拟资源,诸如具有跨越多个不同物理计算系统的多个虚拟处理器的单一虚拟机。作为另一个实例,虚拟化技术可以通过为每个用户提供可以跨多个数据存储装置分布的虚拟化数据存储库而允许数据存储硬件在多个用户之间共享,其中每个这样的虚拟化数据存储库充当不同的逻辑数据存储库,所述逻辑数据存储库使用户幻想他们是数据存储资源的唯一操作者和管理者。作为另一个实例,虚拟化操作系统可通过以下方式而更容易在物理节点之间移动:停止和开始,或甚至使用有时称为“热迁移”的过程在运行时通过网络复制存储页面、之后是最终快照并重新路由网络流量。
总之,这些趋势已经导致用于多个客户或“租户”的大规模“实用型”(即用即付)计算环境的出现,所述计算环境一方面共享来自计算和存储资源的大型公共池的资源,而另一方面使得其租户专用资源以维护其隐私和安全的逻辑上隔离的方式起作用。这类系统称为多租户云计算环境或“公共云”。在这种使用中,术语“公共的”并不意指租户使用无隔离且不安全。相反,它意指公众的成员可访问公共云中逻辑上隔离的资源,并且在至少一些情况下,为它们所使用的内容付费,例如按每小时、每千兆字节或每月付费。
附图说明
图1是根据至少一些实施方案的用于覆盖网络连接的访问控制方法的高级流程图。
图2示出其中可实现用于访问控制的方法和设备的实施方案的示例性提供商网络环境。
图3示出根据至少一些实施方案的提供商网络上的访问控制服务。
图4A和4B提供根据至少一些实施方案的通用策略格式的非限制性实例。
图5A和5B提供根据至少一些实施方案的可针对主体或资源定义的策略的非限制性实例。
图6是示出根据至少一些实施方案的用于在客户端的虚拟私有网络上的资源实例之间提供访问控制的方法和设备的框图。
图7是示出根据至少一些实施方案的用于在客户端的虚拟私有网络上的资源实例与外部端点之间提供访问控制的方法和设备的框图。
图8是根据至少一些实施方案的用于覆盖网络连接的访问控制方法的流程图,其中主体担任角色,角色具有策略,并且访问基于对角色的策略的评估而被允许或拒绝。
图9示出根据至少一些实施方案的示例性提供商网络环境。
图10示出根据一些实施方案的使用IP隧道技术在网络底层(network substrate)上实现覆盖网络的示例性数据中心。
图11是根据至少一些实施方案的示例性提供商网络的框图,所述提供商网络向客户端提供存储虚拟化服务和硬件虚拟化服务。
图12示出根据至少一些实施方案的向至少一些客户端提供虚拟私有网络的示例性提供商网络。
图13示出根据至少一些实施方案的提供商网络上的示例性虚拟私有网络实现方式中的子网和群组。
图14是示出可在一些实施方案中使用的示例性计算机系统的框图。
虽然在本文中通过对若干实施方案和示意性附图举例的方式描述了实施方案,但本领域的技术人员应认识到,实施方案不限于所描述的实施方案或附图。应理解,附图和对其的详细描述并非意图将实施方案限于所公开的特定形式,而相反,其意图在于涵盖落入由所附权利要求书限定的精神和范围内的所有修改、等效物和替代方案。本文中使用的标题都仅用于组织目的,并且并不意图用于限制本说明书或权利要求书的范围。如贯穿本申请所用,词语“可”是以允许意义(即,意味着有可能)而不是强制意义(即,意味着必须)使用。类似地,词语“包括(include/including/includes)”表示包括但不限于。
具体实施方式
描述了用于虚拟网络中的基于身份和访问管理的访问控制的方法和设备的各种实施方案。更具体地,描述了用于对覆盖网络环境中的实体之间的连接提供基于身份和访问管理的控制、建立和管理的方法的实施方案。这些方法在本文中可称为基于身份和访问管理的访问控制方法,或简单地称为访问控制方法。覆盖网络环境可例如在网络底层之上使用封装协议技术进行两个实体之间的通信。在网络底层之上使用封装协议技术的覆盖网络环境中,可由网络分组源(产生网络分组的实体)产生网络分组,在根据封装协议技术实现的封装层处对网络分组进行包装或封装以产生封装协议分组(在本文中也称为封装分组或网络底层分组)。然后,可根据封装分组的路由信息在网络底层之上将封装分组路由到目的地。根据封装信息在网络底层之上路由封装分组可被视为:在网络底层之上通过覆盖网络路线或路径来发送封装分组。在目的地处,封装层将网络分组从封装分组移出(称为解封装的过程),并且将网络分组提供或发送到网络分组目的地(消费网络分组的实体)。
在常规的物理网络环境中,试图向另一个IP地址发送分组的物理节点所使用的第一步是:发送ARP(地址解析协议)分组,ARP分组是逻辑上由子网上的所有主机接收的广播分组。(在一些实现方式中,网络交换机可高速缓存先前广播的结果并缩短(short-circuit)这个过程,但逻辑算法保持相同。)ARP分组用作资源发现消息,即关于哪个物理节点是对应于所需IP地址的主机的询问。在性能良好的网络中,唯一的主机(负责所述IP地址的主机)将以其MAC(媒体访问控制或层2)地址作出响应。然后,发送主机将MAC地址与IP地址之间的映射高速缓存在其本地ARP表中。需注意,利用这种标准方法存在安全风险。例如,没有安全的方法来确定ARP请求的响应方是否告知真实情况的事实是许多物理网络的限制,并且“ARP高速缓存布毒”是已知的网络安全攻击媒介。
在覆盖网络环境中,上述过程以后向兼容但可减少安全风险的方式来模拟。在覆盖网络的至少一些实现方式中,ARP分组不被转发,而是被看作通知封装层所述主机希望与给定IP地址处的另一个主机通信的一种应用程序编程接口(API)调用。封装层然后在映射服务中进行查找以确定主机是否有权将分组发送到所述目的地,并且确定是否存在被配置来从发送方进行接收的具有所请求IP地址的对应潜在接收方节点。如果这个映射服务查找成功,那么封装层向请求主机返回虚拟MAC(VMAC)地址,并且然后处理所查找的向覆盖网络主机呈回的VMAC所拥有的IP地址。在至少一些实现方式中,并不允许主机查看ARP分组或直接对ARP分组作出响应,从而提供改进的网络安全性。
在覆盖网络环境中,从网络分组源和网络分组目的地的角度,看起来好像两个实体是通过以常规方法转发网络分组的物理网络来连接的。然而,实际上,来自网络分组源的网络分组利用以下各项来封装并在网络底层之上发送以便路由到网络分组目的地:在覆盖网络环境中用于通过网络底层传递分组的潜在地不同的寻址方案、路由选择方案、协议等。
每个封装分组可包括一个、两个或更多个网络分组。在各种实施方案中,封装协议可以是标准网络协议,诸如IPv6(第六版互联网协议)或用户数据报协议(UDP),或可替代地可以是非标准、定制或专有网络协议。根据封装协议封装的网络分组可以是例如互联网协议(IP)技术分组,包括但不限于IPv4(第四版互联网协议版本)分组、IPv6分组、传输控制协议(TCP)分组、用户数据报协议(UDP)分组或互联网控制消息协议(ICMP)分组。然而,网络分组可以是根据其他IP协议、除IP协议之外的其他标准协议(诸如OSI TP4)的分组,或根据其他非标准、定制或专有协议(诸如Novell IPX/SPX或Xerox XNS)的分组。
常规地,在覆盖网络环境中,实体之间的连接(例如,网络分组源与网络分组目的地之间的覆盖网络路径)由封装层处的装置和/或进程(为简单起见在本文中可称为封装层进程)建立。作为封装层进程的实例,覆盖网络环境可包括各自实现管理程序(也称为虚拟机监视程序(VMM))的实例的主机系统,管理程序以相应主机系统上的一个或多个虚拟机实例(VM)的名义执行封装层功能,以根据覆盖网络封装协议建立到其他实体的分组流(例如,覆盖网络路径)。作为另一个实例,封装层进程可实现为协处理器或在协处理器上实现,协处理器拦截来自网络分组源的一些或全部网络分组并且根据封装协议封装分组以便在网络底层之上进行传递。作为又一个实例,封装层进程可实现为(从联网的角度)位于VMM与网络底层之间、或(从联网的角度)位于物理硬件装置上的操作系统与网络底层之间的装置或在所述装置上实现。总的来说,封装层进程的实例可在网络分组源或目的地与网络底层之间的任何地方实现,以根据覆盖网络的封装协议技术处置网络分组的封装/解封装。
通常,在覆盖网络上的两个实体之间建立分组流可包括:VMM从本地VM接收网络分组;访问映射服务或实用程序(或映射信息的本地高速缓存)以确定到目标(可以但不必是网络上的另一个VM)的映射信息(例如,覆盖地址到底层地址映射);根据映射信息封装网络分组;以及根据封装信息将封装分组发送到网络底层上以便路由到目标。
常规地,封装层可实施简单的网络IP地址访问控制方法。例如,响应于源VMM的查询(例如,ARP查询),如果映射服务具有有效的目标地址并且如果允许源地址向所述目标地址发送分组,那么向VMM返回目标地址(例如,VMAC地址),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地址(例如,RFC 1918地址)。然而,在一些实现方式中,私有IP地址自身可以是互联网可路由地址。换句话说,客户端可针对客户端在提供商网络上的资源实例以及在客户端在提供商网络上的虚拟私有网络实现方式内使用互联网可路由地址或不可路由地址。在至少一些实施方案中,客户端可通过以下方式控制对客户端的虚拟私有网络内的资源实例的访问和寻址:根据在私有网络上使用的客户端的私有寻址方案将私有IP地址指配给特定资源实例,和/或将(由服务提供商指配给客户端的)公共IP地址映射或重新映射到客户端的私有IP地址或其范围。需注意,给定虚拟私有网络中的资源实例的至少一些私有IP地址不必映射到公共IP地址。
图1是根据至少一些实施方案的用于覆盖网络连接的访问控制方法的高级流程图。所述方法例如可由网络的封装层处的一个或多个进程执行,例如由主机系统上的虚拟机监视程序(VMM)执行,虚拟机监视程序以主机系统上的一个或多个虚拟机实例(VM)的名义执行封装层功能,以根据覆盖网络封装协议建立到其他实体的分组流(例如,覆盖网络路径)。
如100处所指示,封装层进程(例如,VMM)从源(例如,主机系统上的VM)获得网络分组。网络分组可指示目标;例如,分组可包括目标地址(例如,客户端资源实例的IP地址)。如102处所指示,封装层进程可获得目标的覆盖网络映射信息。在至少一些实施方案中,覆盖网络信息可至少包括分组在底层网络上的封装层目的地(例如,面对目标VM的VMM)的IP地址。在至少一些实施方案中,封装层进程可访问映射服务以获得映射信息。然而,在一些实施方案中,目标的映射信息一旦从映射服务获得然后就可从本地高速缓存获得。下文参考例如图2和10进一步描述示例性映射服务。
如104处所指示,可根据资源和/或目标的身份来确定可应用策略。如106处所指示,可根据策略评估源和目标,以确定是否允许从源到目标的连接。在至少一些实施方案中,元素104和106可由网络上的访问控制服务执行。在至少一些实施方案中,封装层进程通过服务的应用程序编程接口(API)与访问控制服务通信以执行元素104和106。
在108处,如果根据策略允许从源到目标的连接,那么如110处所指示,可根据策略创建从源到目标的连接(例如,覆盖网络路径),并且如112处所指示,可通过覆盖网络路径将网络分组从源发送到目标。在一些实施方案中,创建覆盖网络路径通过根据覆盖网络的封装协议封装网络分组来执行,其中封装元数据包括用于在封装层处将分组路由到覆盖网络目的地(例如,提供商网络上的另一个VMM)的信息。在封装层目的地处,封装从网络分组被移除并且原始网络分组被传递到目标(例如,相应主机系统上的VM)。
在108处,如果根据策略不允许从源到目标的连接,那么如114处所指示,封装层进程可忽略并丢弃网络分组。在一些实施方案中,封装层进程(例如,VMM)并不通知源(例如,相应主机系统上的源VM):不允许连接。在一些实施方案中,封装层进程可出于报告目的(例如,向拥有相应VM的客户端或客户报告)记录或记载不允许的连接请求。然而,在一些实施方案中,封装层进程可通知源:不允许连接。例如,VMM可按不破坏与VM及其操作系统所利用的现有安全协议的兼容性的方式利用逻辑带外安全协议(诸如通用安全服务应用程序编程接口(GSSAPI,也作GSS-API))来向源VM通告“访问被拒绝”消息。
在至少一些实施方案中,可仅针对源与目标之间的给定分组流中的第一网络分组执行元素102至108。给定分组流或逻辑连接中的后续网络分组可如112处所指示通过覆盖网络封装协议来发送到目标,而无需评估每个网络分组的策略。
用于虚拟网络中的访问控制的方法和设备的实施方案可例如在服务提供商的背景下实现,所述服务提供商通过中间网络(诸如互联网)向客户端或客户提供虚拟化资源(例如,虚拟化计算和存储资源),所述虚拟化资源在服务提供商的提供商网络200上实现,如图2中所示。图9至13以及题为示例性提供商网络环境的部分进一步示出并描述了其中可实现如本文所述的方法和设备的实施方案的示例性服务提供商网络环境。参考图2,在至少一些实施方案中,通过提供商网络200A向服务提供商的客户端提供的资源中的至少一些可以是在与其他客户端共享的多租户硬件上和/或专用于特定客户端的硬件上实现的虚拟化计算资源。每个虚拟化计算资源可称为资源实例214。资源实例214可例如租借或租赁给服务提供商的客户端(或租户)。例如,通过借助于中间网络250(诸如互联网)联接到提供商网络200A的外部客户端装置260,服务提供商的客户端可通过服务的API来访问提供商网络200A的一个或多个服务,以便获得并配置资源实例214并且建立并管理包括资源实例214的虚拟网络配置,例如,如图12和13的客户端的虚拟私有网络。
如图2中所示,在一些实现方式中,服务提供商可具有两个或更多个提供商网络200(示出了提供商网络200A和200B),提供商网络200可以但不必在不同的、可能在地理上远离的数据中心中实现。两个提供商网络200可例如由一个或多个直接通信链路208(例如,光纤连接)联接。替代地或此外,两个提供商网络200可通过中间网络250通信。
资源实例214中的至少一些可例如根据硬件虚拟化技术来实现,硬件虚拟化技术使得多个操作系统能够同时在主机210计算机上(即,作为主机210上的虚拟机(VM))运行。主机210上的管理程序或虚拟机监视程序(VMM)212为主机210上的VM 214呈现虚拟平台并监视VM 210的执行。每个VM 214可设置有一个或多个私有IP地址;相应主机210上的VMM212可以知道主机210上的VM 214的私有IP地址。关于有关硬件虚拟化技术的另外信息,请参见图9至13。
提供商网络200A可包括网络底层202,网络底层202包括联网装置诸如路由器、交换机、网络地址转换器(NAT)等以及装置之间的物理连接。VMM 212连同网络底层202上的其他装置和进程可使得能够在提供商网络200上创建覆盖网络,覆盖网络也可称为软件定义网络或SDN。覆盖网络的创建和管理可通过提供商网络200的控制平面、例如通过对控制平面处的服务或其他进程的一个或多个API的调用来执行。在至少一些实施方案中,VMM 212和其他装置或进程可使用封装协议技术来封装网络分组(例如,客户端IP分组),并且在网络底层202之上在提供商网络200A内的不同主机210上的客户端资源实例214之间路由网络分组,或将其路由到提供商网络上的其他装置或子网络(诸如网络装置204),或将其路由到其他提供商网络200上的其他装置或客户端资源实例。封装协议技术可在网络底层202上使用,以通过路径206或路线在网络底层202上的端点之间路由已封装分组(网络底层分组)或将其路由到其他提供商网络200上的端点。封装协议技术可被视为潜在地利用不同的寻址和分网方案提供覆盖在网络底层202上的虚拟网络拓扑,因此得到术语“覆盖网络”。在至少一些实施方案中,封装协议技术可包括维持映射目录的映射服务220,所述映射目录将IP覆盖地址(提供商网络200的客户端或客户所利用的IP地址,这些客户端或客户可能与提供商网络200上的其他客户端或客户的拓扑隔离)映射到底层IP地址(通常不暴露给提供商网络200的客户端或客户的底层联网基础设施所利用的IP地址),并且可由提供商网络200上的各种进程访问以便在网络底层202上的端点之间路由分组。关于使用封装协议在网络底层上实现覆盖网络的虚拟网络技术的示例性实现方式及其另外信息,请参见图9至图13。
主机210上的客户端资源实例214可根据面向连接的协议(诸如传输控制协议(TCP))和/或根据无连接协议(诸如用户数据报协议(UDP)或互联网控制消息协议(ICMP))与同一主机210或不同主机210上的其他客户端资源实例214通信。然而,客户端分组由发送VMM212根据封装协议封装,根据封装协议作为网络底层分组在网络底层202之上发送,并且由接收VMM 212解封装。在至少一些实施方案中,在网络底层202上使用的封装协议可以是无连接协议。然而,在一些实施方案中,封装协议可以是面向连接的协议。主机210上的VMM212,在接收来自主机210上的客户端资源实例214的并且目标是另一个客户端资源实例214的网络地址的客户端分组(例如,TCP或UDP分组)之后,根据封装协议封装或标记客户端分组并且将网络底层分组(在本文中也可称为封装分组)发送到网络底层202上以便传递。然后可根据封装协议分组报头中的信息通过网络底层202将网络底层分组路由到另一个VMM212。另一个VMM 212将封装数据从客户端分组剥离并且将客户端分组(例如,TCP或UDP分组)传递到主机210上的实现目标资源实例214的适当VM。需注意,在一些实现方式中,为了增加效率或出于其他原因,可将两个或更多个客户端分组封装在单个网络底层分组中。通常,两个或更多个客户端分组可定向到同一目标(例如,定向到同一资源实例214)。然而,在一些实现方式中,只要定向到不同目标(例如,不同资源实例214)的两个或更多个客户端分组的网络底层202目标地址(例如,特定主机210上的VMM 212)相同,这些客户端分组就可一起封装在单个网络底层分组中。
在至少一些实施方案中,VMM 212在接收来自相应主机210上的资源实例214的定向到目标的网络分组之后,访问提供商网络200的将IP覆盖地址映射到底层IP地址的映射服务220,以便将网络分组路由到网络底层202上的适当端点。例如,目标可以是另一个资源实例214,并且端点可以是网络底层202上的托管目标资源实例的另一个VMM 212。作为另一个实例,目标可以是外部装置260,并且端点可以是网络装置204。
在用于虚拟网络中的访问控制的方法和设备的实施方案中,除访问映射服务220以确定目标的IP覆盖地址之外,VMM 212还可与提供商网络200的访问控制服务230通信,以确定是否存在与源资源实例214和/或网络分组的目标相关联的一个或多个策略,并且如果存在,则确定策略是否允许从源资源实例214到目标的连接。VMM 212只有在访问控制服务230指示允许连接时才完成连接。在至少一些实施方案中,策略还可指定用于连接的一个或多个条件,例如被允许用于连接到目标的的端口号和/或被允许用于与目标通信的网络协议。作为另一个实例,在至少一些实施方案中,客户端可定义任意元数据标签并且使元数据标签与特定资源实例214相关联。作为在策略中使用这些元数据标签的实例,可指定策略的条件:仅允许均具有相同元数据标签的两个资源实例214之间的网络流量。例如,策略可指定:网络流量将只有在两个资源实例均具有标签“财务部”时才得以允许。
在至少一些实施方案中,完成连接包括:VMM 212封装网络分组并且将封装分组发送到网络底层202上,并且因此在网络底层202之上在源资源实例214与目标之间建立路径206。如果访问控制服务230指示不允许连接,那么VMM 212则不完成从源到目标的连接。换句话说,VMM 212不封装网络分组并将封装分组发送到网络底层202上,并且因此未在网络底层202之上在源资源实例214与目标之间建立路径206。需注意,在一些实施方案中,映射服务220和访问控制服务230的功能可结合在提供商网络200上的单个服务中。
在至少一些实施方案中,身份(可称为主体)可被指配给资源实例214或以其他方式与资源实例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提供可在至少一些实施方案中使用的策略的非限制性实例。
在至少一些实施方案中,VMM 212除知道主机210上的资源实例214的私有IP地址之外,还可知道或能够发现主机210上的资源实例214已经担任的角色。在确定资源实例214已经担任的角色之后,VMM 212可与访问控制服务230通信,以确定是否存在与角色相关联的策略,并且如果存在,则确定是否允许连接到网络分组所指示的目标。如果存在与角色相关联的策略,那么访问控制服务230可评估策略以确定是否允许从源资源实例214到目标的连接,并且关于是否允许连接通告VMM 212。
在至少一些实施方案中,目标也可与角色相关联。例如,目标可以是客户端在不同主机210上的资源实例214中的另一个并且因此面对不同的VMM 212,并且客户端可能已经定义具有策略的角色,并且目标资源实例214可能已经担任所述角色。在至少一些实施方案中,除评估源资源实例214已经担任的角色的策略以确定是否允许从源到目标的连接之外,还可评估目标已经担任的角色的策略以确定是否允许从源到目标的连接。例如,如果与目标的角色相关联的策略指示不允许从源资源实例214所位于的子网到处于所述角色的资源实例的连接,那么就不允许从源到目标的连接,即使与源相关联的策略指示将允许连接到目标也是如此。作为另一个实例,目标的角色的策略可指示允许(或不允许)来自处于特定其他角色的资源实例的连接。换句话说并且更一般地说,如果存在与源和目标两者相关联的策略,那么两个策略在允许连接之前必须一致。
虽然上文总体描述了在网络底层202之上在位于客户端在提供商网络200上的虚拟私有网络内的客户端的源资源实例214与客户端的另一个资源实例214之间提供访问控制,但是需注意,当尝试通过直接通信链路208连接时,实施方案可用于在客户端在一个提供商网络200A上的源资源实例214与客户端在另一个提供商网络200B上的资源之间提供访问控制。
此外,访问控制方法的至少一些实施方案可提供用于控制从客户端在提供商网络200上的虚拟私有网络实现方式之外的源到位于客户端的虚拟私有网络内的资源实例的访问的机制。例如,参考图2,外部客户端装置260可能想要向客户端在提供商网络210上的资源实例214(目标)发送网络分组。外部装置260的网络分组可在联接到网络底层202的网络装置204处被接收。在至少一些实施方案中,外部装置260和网络装置204可利用带内网络安全协议来为外部装置260在提供商网络200上建立身份。例如,在至少一些实施方案中,可使用根据通用安全服务应用程序编程接口(GSSAPI,也作GSS-API)的网络协议来在提供商网络200上建立与外部装置260相关联的安全身份(即,主体)。网络装置204然后可使用外部装置260的已建立身份和/或目标(资源实例214)的身份来评估外部装置260与目标之间在覆盖网络之上的连接的策略。如果根据策略不允许连接,那么可丢弃网络分组。如果允许连接,那么网络装置204可根据封装协议来封装网络分组并且将封装分组发送到网络底层202上,以便通过目标资源实例214的VMM 212传递到目标资源实例214。
作为实例,外部装置260可利用网络装置204建立身份,并且发送定向到特定资源实例214(或客户端的资源实例的地址范围)的网络分组。在通过映射服务220证实所述地址有效之后,网络装置204可与访问控制服务230通信以确定是否存在与资源实例214相关联的策略。如果存在策略,那么可评估策略以确定外部装置260(源)是否具有与内部资源实例214(目标)通信的权限。例如,与目标资源实例(或与所述资源实例已经担任的角色)相关联的策略可允许从某些IP地址、从某些IP地址范围和/或从某些主体(如通过网络协议(诸如GSSAPI)所建立)访问所述资源实例(或访问处于所述角色的资源实例)。替代地或此外,策略可能不允许来自某些主体、IP地址和/或IP地址范围的访问。如果策略允许访问,那么可建立从网络装置204到目标资源实例214的连接(即,覆盖网络路径(诸如图2中的路径206E))。
此外,访问控制方法的至少一些实施方案可提供用于使用策略控制从客户端的虚拟私有网络内的资源实例214向客户端的虚拟私有网络之外的目标发起的访问的类似机制,所述策略与客户端的资源实例214或与客户端的资源实例214已经担任的角色相关联。此外,在确定是否允许从客户端的虚拟私有网络内部到客户端的虚拟私有网络之外的目标的连接时,可评估与目标相关联的策略。客户端的虚拟私有网络之外的目标可以是例如外部客户端装置260、客户端或另一个客户端在另一个虚拟私有网络上的资源实例214或提供商网络200上的网络装置204或一些其他装置。
访问控制服务
图3示出根据至少一些实施方案的提供商网络300上的访问控制服务330。在至少一些实施方案中,用于网络上的访问控制的身份和策略管理和强制执行可至少部分地由访问控制服务330提供。访问控制服务330可在网络环境内的一个或多个计算系统上实现或由其实现,例如作为如图2中所示的服务提供商的提供商网络环境中的服务。图14中示出可在其上实现访问控制服务330的实施方案的示例性计算机系统。访问控制服务330可提供一个或多个应用程序编程接口(API)332以用于访问服务330的功能。然而,需注意,本文所述的访问控制服务330的功能可以代替地由两个或更多个分开的服务执行。此外,访问控制服务330的至少一部分功能可与网络上的另一个服务(例如,与如本文其它地方所述的映射服务220)集成。在一些实施方案中,访问控制服务330可实现为在网络中跨其他节点分布的、相互通信以提供逻辑上一元化的服务330的一组协同操作的软件模块;换句话说,服务330可实现为分布式系统。
在至少一些实施方案中,如图3所示,访问控制服务330可包括数据存储库340,其用于存储服务330所使用的客户端的访问控制信息,例如与跟客户端的资源实例314相关联的客户端的主体、角色和策略有关的信息。访问控制服务330可提供API 332B,其允许客户端380查看、创建、修改、删除以及以其他方式管理数据存储库340上的客户端的信息。访问控制服务330还可提供API 332A,其允许进程或装置(例如,主机310上的VMM 312、网络装置304、其他服务等)请求对由客户端在提供商网络300上命名实体发起的动作(例如,对由客户端的资源实例314发起的到目标实体的连接请求)的策略评估。访问控制服务330可包括策略评估模块334,其通过API 332A接收策略评估请求,根据数据存储库340上的相关访问控制信息评估所述请求,并且以策略评估的结果响应请求的发起方(例如,响应VMM 312或提供商网络300上的其他进程或装置)。
如先前所述,资源标识符可与资源实例314相关联并且可由访问控制服务用于识别和强制执行资源实例314的策略。资源标识符可以是例如主体、资源名称、元数据标签、账户标识符、IP地址或一般地资源实例314的任何特性或条件。主体可以是例如用户、群组、角色或身份和访问管理环境中的其他实体。可根据资源标识符中的一个或多个使策略与资源实例314相关联。在至少一些实施方案中,可根据唯一属性或标识符(诸如基于名称的资源标识符或根据用户主体类型的用户身份)使策略与单独资源实例314相关联。
在至少一些实施方案中,基于名称的资源标识符可唯一地识别命名空间内的资源。以下是可在至少一些实施方案中使用的基于名称的资源标识符的通用格式的非限制性实例:
<命名空间>:<所有人>:<资源类型>:<资源名称>
其中:
·<命名空间>可识别在提供商网络300上提供这个资源实例的服务。例如,对于如本文所述的VM或资源实例314,所述服务可以是硬件虚拟化服务,例如如图11所示的服务1120。
·<所有人>可识别服务提供商的“拥有”这个资源实例的客户或客户端。
·<资源类型>可用于区分可由服务提供的(即,命名空间内的)资源的不同类型。
·<资源名称>可以是例如由客户/客户端为这个特定资源指定的字母数字串。在一些实施方案中,资源名称可以是路径。资源名称在由基于名称的资源标识符的其他元素定义的空间内应是唯一的。
在至少一些实施方案中,替代或除了通过唯一属性或标识符(诸如基于名称的资源标识符)使策略与单独资源实例314相关联,可使策略与可包括两个或更多个实体(例如,资源实例314)的群组、集合或类别相关联。如先前所提及的,主体可包括群组主体类型和角色主体类型。如本文所使用,群组是资源或主体(例如,资源实例314)的相对静止的集合;客户端或其他实体定义群组,并且可明确地将成员(例如,资源或主体)指配给群组(或将成员从群组移除),或可替代地可明确地定义群组成员关系。在至少一些实施方案中,由访问控制服务330强制执行的策略中的至少一些可针对群组来定义并且与群组而不是与单独资源或其他主体类型相关联。在至少一些实施方案中,定义群组可包括创建并维持两个策略—识别哪些实体(资源或主体)是在群组中的一个策略,以及指定与这个群组相关联的权限的另一个策略。然而,群组可以其他方式来定义。
在至少一些实施方案中,访问控制服务330还可允许针对客户端在提供商网络300上的资源或主体来定义角色,并且可允许资源和主体担任所述角色。角色与群组的不同之处在于:群组成员关系由客户端定义并且相对静止,而实体(例如,资源或主体)可动态地担任角色。角色“成员关系”并未得到明确定义;替代地,可针对角色定义一个或多个特性或条件,可针对实体(例如,主体或资源)动态地评估特性或条件,以确定实体是否属于或可担任所述角色。因此,例如,可基于资源实例314的一个或多个特性的动态评估而允许资源实例314担任角色。在至少一些实施方案中,由访问控制服务330强制执行的策略中的至少一些可针对角色来定义并且与角色而不是与单独资源、用户或群组身份或其他主体类型相关联。因此,资源和主体可担任角色,并且角色可具有策略。将资源和主体与角色分开可提供灵活性并且易于管理,因为一个、两个或更多个可信任实体(例如,资源或主体)可基于可信任实体的动态评估而不是到群组的明确且静态的指配来动态地担任一个或多个角色。在至少一些实施方案中,定义角色可包括创建并维持两个策略—识别针对实体进行评估以确定所述实体是否可担任角色的特性和条件的一个策略,以及指定与这个角色相关联的权限的另一个策略。然而,角色可以其他方式来定义。
图4A和4B提供通用策略格式的非限制性实例。图5A和5B提供可在至少一些实施方案中使用的策略的非限制性实例。
图4A和4B提供根据至少一些实施方案的通用策略格式的非限制性实例。在至少一些实施方案中,存在可与策略400相关联的三种类型的实体:
·这个策略所相关联的实体(例如,主体)或资源。例如,策略400可与客户端所定义的角色、客户端的特定命名资源实例、子网、群组或特定用户或账户相关联。通常,策略可与身份和访问管理环境中和/或网络上的任何主体或资源相关联,可针对所述主体或资源强制执行对其他资源的访问控制。
·策略中的语句所应用于的主体或资源(如策略400A中的权限的<资源>字段中以及策略400B中的权限的<主体>字段中所指定的)。例如,策略中的特定语句可(针对特定动作)允许或拒绝对以下各项的访问:指定主体、资源实例、子网、角色、群组、地址范围、服务,或一般地网络上的可被指定并且可针对其强制执行访问控制的任何实体或资源。
·针对其评估策略的实体。例如,VMM或其他封装层进程可以特定资源实例的名义请求策略评估,所述特定资源实例已经担任策略所相关联的角色并且试图与对其进行的访问可由策略控制的目标(例如,另一个资源实例)通信。
策略400可包括一个、两个或更多个语句,每个语句可称为与策略相关联的实体(例如,相关联角色或其他主体)的权限。每个权限可指定效应、一个或多个动作以及一个或多个资源(如果允许则可对其执行动作(如果拒绝,则不执行),如策略400A中所示)或一个或多个主体(其执行动作的权限可被允许或拒绝,如策略400B中所示)。权限还可以但不必包括一个或多个条件。
在策略400A中,指定资源可指示如果允许则可对其执行动作(或如果不允许则不执行)的资源。换句话说,策略400A所相关联的实体(例如,主体)或资源对所指示资源执行动作的权限被允许或拒绝。在至少一些实施方案中,所指示资源可以是提供商网络上的实体(例如,主体)或资源,包括但不限于用户、群组、子网、资源实例、角色、服务等。在至少一些实施方案中,资源可由如上文所述的资源标识符指定。在至少一些实施方案中,在资源标识符中可使用通配符。例如,在基于名称的资源标识符中,星号(或其他字符或符号)可用作通配符,如在:
<命名空间>:<所有人>:<资源类型>:*中,
其中星号指示这个命名空间/所有人/资源类型的所有命名资源这个权限语句覆盖。
在策略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的第一(允许)权限可指定:允许担任角色A的主体打开到担任角色B的所有资源的连接,除非这些资源中的特定一个在策略500A的拒绝打开到指定资源的连接的权限的第二权限中有所指示。
在至少一些实施方案中,当例如评估连接请求时,可评估与源(例如,主体)和目标(例如,资源)相关联的策略两者。使用分别与图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地址;相反,流量使用提供商网络600的公共IP地址,公共IP地址可根据例如NAT技术映射到私有IP地址。需注意,在虚拟私有网络610内使用的私有IP地址通常可以但不必是可以仅可在虚拟私有网络610内路由的非互联网可路由IP地址(例如,RFC 1918地址)。然而,在一些实现方式中,在虚拟私有网络610内使用的私有IP地址可以是互联网可路由地址。换句话说,在至少一些实施方案中,客户端可在客户端在提供商网络600上的虚拟私有网络610实现方式内使用互联网可路由地址或不可路由地址。关于有关客户端的虚拟私有网络、群组和子网的更多信息,请参见图12和图13。
在至少一些实施方案中,客户端虚拟私有网络610上的客户端资源实例614A可发送定址到客户端虚拟私有网络610上的另一个客户端资源实例614B的网络分组。VMM 612A可接收网络分组并访问映射服务或实用程序(或映射信息的本地高速缓存),以确定到目标资源实例614B的映射信息(例如,私有地址到公共地址映射)。此外,VMM612A可向访问控制服务630请求对网络分组的源和/或目标进行策略评估,以确定是否允许客户端资源实例614A打开与客户端资源实例614B的通信。访问控制服务630可评估策略评估请求以确定资源实例614中的一个或两个是否在角色中。例如,客户端资源实例614A可已经担任如图5A中所指示的角色A,并且客户端资源实例614B可已经担任如图5B中所指示的角色B。一旦访问控制服务630确定资源实例614的角色,服务630就可根据所述角色的策略来评估请求。如果访问控制服务630确定策略允许连接,那么就通知VMM 612A:允许连接。然后,VMM 612A可在网络底层602上打开到VMM 612B的路径606(如由映射服务所指示),并且开始封装来自资源实例614A的网络分组并且通过路径606将封装分组发送到VMM 612B。在VMM 612B处,网络分组被解封装并且传递给客户端资源实例614B。在至少一些实施方案中,如果访问控制服务630确定策略拒绝连接,那么VMM 612A仅仅丢弃来自资源实例614A的网络分组并且不向资源实例614A通告:不允许连接。然而,在一些实施方案中,VMM612A(或提供商网络600上的别的服务,诸如访问控制服务630)可记录拒绝的连接请求(并且可能还有允许的连接请求),使得客户端可根据客户端的策略获得并查看关于其覆盖网络配置和性能的信息,包括关于连接拒绝的信息。
图7是示出根据至少一些实施方案的用于在客户的虚拟私有网络上的资源实例与外部端点之间提供访问控制的方法和设备的框图。服务提供商的客户端可访问提供商网络700的一个或多个服务以获得并配置资源实例714并且建立并管理包括客户端的资源实例714的虚拟网络配置(例如,客户端虚拟私有网络710)。虽然图7中未示出,但客户端虚拟私有网络710可包括子网,并且客户端可在私有网络内建立群组。关于有关客户端的虚拟私有网络、群组和子网的更多信息,请参见图12和图13。
在至少一些实施方案中,客户端虚拟私有网络710上的客户端资源实例714A可发送定址到不在客户端虚拟私有网络710上的端点708的网络分组。端点708可以是例如提供商网络700上的端点,诸如主机上的资源实例(VM)或外部网络上的端点。VMM 712A可接收网络分组并且访问映射服务或实用程序(或映射信息的本地高速缓存),以确定到提供商网络700上的网络装置704的映射信息(例如,私有地址到公共地址映射),网络装置704用作端点708与网络底层702上的覆盖网络之间的桥。此外,VMM 712A可向访问控制服务730请求对网络分组的源和/或目标进行策略评估,以确定是否允许客户端资源实例714A打开与端点708的通信。例如,访问控制服务730可评估策略评估请求以确定资源实例714A是否在角色中。例如,客户端资源实例714A可已经担任如图5A所指示的角色A。一旦访问控制服务730确定资源实例714A的角色,服务730就可根据所述角色的策略来评估请求。需注意,端点708也可具有与其相关联的策略,并且在评估从客户端资源实例714A到端点708的连接请求以确定是否允许连接时,也可考虑端点708的策略。如果访问控制服务730确定策略允许通过网络装置704进行从资源实例714A到端点708的连接,那么就通知VMM 712A:允许连接。然后,VMM712A可在网络底层702上打开到网络装置704的路径706,并且开始封装来自资源实例714A的网络分组并且通过路径706将封装分组发送到网络装置704。在网络装置704处,网络分组被解封装并且作为网络协议数据流发送到端点708。对于一些网络协议,网络装置708可建立到端点的网络协议连接(例如,TCP连接),网络协议流量可通过网络协议连接流动。在至少一些实施方案中,如果访问控制服务630确定策略拒绝连接,那么VMM 712A仅仅丢弃来自资源实例714A的网络分组并且不向资源实例714A通告:不允许连接。
上文针对从客户端虚拟私有网络710上的源(客户端资源实例714A)发起的通过网络底层702上的覆盖网络到客户端虚拟私有网络710外部的目标(端点708)的连接描述了评估策略。然而,当客户端虚拟私有网络710外部的端点708是源并且客户端资源实例714是目标时,用于提供访问控制的方法和设备的实施方案也可适用。端点708可以是例如在提供商网络700的另一个虚拟私有网络上,或可以是提供商网络700外部的端点。端点708的网络分组可在联接到网络底层702的网络装置704处被接收。在至少一些实施方案中,端点708和网络装置704可利用带内网络安全协议来为端点708在提供商网络700上建立身份。例如,在至少一些实施方案中,根据通用安全服务应用程序编程接口(GSSAPI,也作GSS-API)的网络协议可用于为端点708在提供商网络700上建立安全身份。网络装置704然后可使用端点708的已建立身份和/或目标(资源实例714A)的身份来确定并评估打开端点708与目标(资源实例714A)之间在网络底层702上的覆盖网络之上的连接的策略。如果根据策略不允许连接,那么可丢弃网络分组。如果允许连接,那么网络装置704可根据封装协议来封装网络分组并且在网络底层702之上通过路径706将封装分组发送到VMM712A。在VMM 712A处,网络分组被解封装并且传递给目标资源实例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上在进程级的连接。
用身份信息标记封装分组
在至少一些实施方案中,封装来自源(例如,主机系统上的VM)的网络分组以便通过覆盖网络路由到目标端点的封装层进程(例如,主机系统上的VMM)具有或可获得关于是网络分组的源的进程(例如,VM上的操作系统或应用程序)的身份信息。在至少一些实施方案中,除了或替代如本文所述的基于对相关策略的评估来确定是允许还是拒绝在覆盖网络之上从源(例如,VM)到目标端点的连接,封装层进程(例如,VMM)可将源的身份相关信息作为元数据嵌入或附到封装分组。身份相关信息可例如包括相应源端点的主体信息、角色信息、群组信息等中的一个或多个。身份相关信息还可包括可用于验证身份信息的、基于例如共享秘密的安全/验证信息,诸如加密签名。用与策略决定有关的身份相关信息标记封装分组可为目标在做出关于连接的策略决定时提供更多上下文,并且可允许目标使用所提供信息做出关于连接的策略决定,而无需从其他源(诸如数据库)检索信息。
作为可使用用于标记封装分组的身份相关信息的方式的实例,目标或目标处的封装层进程可使用所接收封装分组中的身份相关信息来基于策略做出访问决定,即使在基于源侧策略评估而允许从源到目标端点的连接的情况下也是如此。例如,网络分组的源想要访问的目标端点可以是通过提供商网络上的存储虚拟化服务提供的虚拟化存储装置,如图10和图11所示。存储虚拟化服务可使用用于标记封装分组的身份相关信息来执行基于源的身份的策略评估,以基于源的身份确定是否允许访问特定存储资源,即使在源(例如,客户端的资源实例上的操作系统或应用程序)不知道访问控制方法、其请求的签字等的情况下也是如此。
作为可使用用于利用标记封装分组的身份相关信息的方式的另一个实例,对于面向连接的网络协议(诸如TCP),源侧封装层进程(例如,VMM)可用身份信息标记封装分组,并且根据例如通用安全服务应用程序编程接口(GSSAPI)在源不知道或未直接参与的情况下以源的名义参与到与目标端点的验证交换中。
高速缓存策略信息
已经主要描述了访问控制方法和设备的实施方案,其中提供商网络中的装置(例如,主机装置)上的封装层进程(例如,VMM)访问在提供商网络上的一个或多个装置上实现的访问控制服务以进行策略评估。在一些实施方案中,替代或除了访问访问控制服务以进行策略评估,装置可维持策略信息的高速缓存。封装层进程或装置上的另一个进程可被配置来根据策略信息的本地高速缓存本地执行至少一些策略评估。在一些实施方案中,封装层进程可被配置来检验策略信息的本地高速缓存,以根据高速缓存的策略确定是否可本地评估来自主体的连接请求,并且如果这样的话,则执行本地策略评估。如果根据本地高速缓存不能本地执行策略评估,那么可访问控制服务以执行评估。
示例性提供商网络环境
这个部分描述了其中可实现如本文所述的访问控制方法和设备的实施方案的示例性提供商网络环境。然而,这些示例性提供商网络环境并非旨在进行限制。
图9示出根据至少一些实施方案的示例性提供商网络环境。提供商网络900可通过一个或多个虚拟化服务910向客户端提供资源虚拟化,所述一个或多个虚拟化服务910允许客户端购买、租借或以其他方式获得在提供商网络或一个或多个数据中心中的网络内的装置上实现的虚拟化资源(包括但不限于计算和存储资源)的实例912。私有IP地址916可与资源实例912相关联;私有IP地址是提供商网络900上的资源实例912的内部网络地址。在一些实施方案中,提供商网络900还可提供客户端可从提供商900获得的公共IP地址914和/或公共IP地址范围(例如,第四版互联网协议(IPv4)地址或第六版互联网协议(IPv6)地址)。
常规地,提供商网络900通过虚拟化服务910可允许服务提供商的客户端(例如,操作客户端网络950A的客户端)动态地使指配或分配给客户端的至少一些公共IP地址914与指配给客户端的特定资源实例912相关联。提供商网络900还可允许客户端将先前映射到分配给客户端的一个虚拟化计算资源实例912的公共IP地址914重新映射到同样分配给客户端的另一个虚拟化计算资源实例912。使用由服务提供商提供的虚拟化计算资源实例912和公共IP地址914,服务提供商的客户端(诸如客户端网络950A的操作者)可例如实现客户端特定的应用程序并且将客户端的应用程序呈现在中间网络940(诸如互联网)上。中间网络940上的其他网络实体920然后可产生到由客户端网络950A发布的目的地公共IP地址914的流量;流量路由到服务提供商数据中心,并且在数据中心处通过网络底层路由到虚拟化计算资源实例912的当前映射到目的地公共IP地址914的私有IP地址916。类似地,来自虚拟化计算资源实例912的响应流量可通过网络底层路由回到中间网络940上的源实体920。
如本文所使用的私有IP地址是指提供商网络中的资源实例的内部网络地址。源自提供商网络之外的网络流量并不直接路由到私有IP地址;相反,流量使用映射到资源实例的私有IP地址的公共IP地址。提供商网络可包括提供网络地址转换(NAT)或类似功能以执行从公共IP地址到私有IP地址并且反之亦然的映射的网络装置或设施。需注意,如本文中使用的给定私有IP地址不一定映射到公共IP地址。
如本文所使用的公共IP地址是提供商网络的可由服务提供商或由客户端指配给提供商网络上的资源实例的互联网可路由网络地址。路由到提供商网络的公共IP地址的流量可通过例如1:1网络地址转换法(NAT)进行转换,并且转发给提供商网络上的资源实例的相应私有IP地址。需注意,如本文所使用的私有IP地址通常可以但不必是例如仅可在提供商网络或其子网络内或客户在提供商网络上的虚拟私有网络实现方式内路由的非互联网可路由IP地址(例如,RFC 1918地址)。然而,在一些实现方式中,私有IP地址可以是互联网可路由地址。换句话说,客户端可针对客户端在提供商网络上的资源实例并且在客户端在提供商网络上的虚拟私有网络实现方式内使用互联网可路由地址或不可路由地址。
一些公共IP地址可由提供商网络基础设施指配给特定资源实例;这些公共IP地址可称为标准公共IP地址或简单地称为标准IP地址。在至少一些实施方案中,对于所有资源实例类型来说,将标准IP地址映射到资源实例的私有IP地址是默认启动配置。
至少一些公共IP地址可被分配给提供商网络900的客户端或由其获得;客户端然后可将其被分配的公共IP地址指配给分配给客户端的特定资源实例。这些公共IP地址可称为客户端公共IP地址或简单地称为客户端IP地址。替代如标准IP地址的情况下那样由提供商网络900指配给资源实例,客户端IP地址可由客户端通过例如由服务提供商提供的API指配给资源实例。不像标准IP地址,客户端IP地址被分配给客户端账户并且可由相应客户端根据需要或希望重新映射到其他资源实例。客户端IP地址与客户端的账户而不是特定资源实例相关联,并且客户端控制所述IP地址,直到客户端选择放弃它为止。不像常规静态IP地址,客户端IP地址允许客户端通过将客户端的公共IP地址重新映射到与客户端的账户相关联的任何资源实例来屏蔽资源实例或可用区故障。客户端IP地址例如使得客户端能够通过将客户端IP地址重新映射到替换资源实例来解决客户端的资源实例或软件的问题。
图10示出根据至少一些实施方案的使用IP隧道技术在网络底层上实现覆盖网络的示例性数据中心。提供商数据中心1000可包括网络底层,所述网络底层包括联网装置1012,诸如路由器、交换机、网络地址转换器(NAT)等。至少一些实施方案可采用互联网协议(IP)隧道技术来提供覆盖网络,可使用隧道经由覆盖网络将已封装分组传递通过网络底层1010。IP隧道技术可提供用于在网络(例如,图10的数据中心1000中的本地网络)上创建覆盖网络的映射和封装系统,并且可为覆盖层(公共IP地址)和网络底层1010层(私有IP地址)提供单独的命名空间。可对照映射目录(例如,由映射服务1030提供)检验覆盖层中的分组,以确定它们的隧道底层目标(私有IP地址)应该是什么。IP隧道技术提供虚拟网络拓扑(覆盖网络);呈现给客户端的接口(例如,服务API)附接到覆盖网络,使得当客户端提供客户端想要将分组发送到的IP地址时,IP地址通过与知道IP覆盖地址位置的映射服务(例如,映射服务1030)通信而在虚拟空间中运行。
在至少一些实施方案中,IP隧道技术可将网络分组的底层IP地址映射到IP覆盖地址,根据封装协议封装网络分组,并且通过覆盖网络隧道将已封装分组传递到正确的端点。在端点处,封装从分组被剥离。在图10中,示出从主机1020A上的虚拟机(VM)1024A到中间网络1050上的装置的示例性覆盖网络隧道1034A以及主机1020B上的VM 1024B与主机1020C上的VM 1024C之间的示例性覆盖网络隧道1034B。在一些实施方案中,可在发送之前以覆盖网络分组格式封装分组,并且可在接收之后剥离覆盖网络分组。在其他实施方案中,替代以覆盖网络分组形式封装分组,可在发送之前将覆盖网络地址(公共IP地址)嵌入分组的底层地址(私有IP地址)中,并且在接收之后将覆盖网络地址从分组地址剥离。作为实例,可使用32位IPv4(第四版互联网协议)地址作为公共IP地址来实现覆盖网络,并且IPv4地址可作为在底层网络上作为私有IP地址使用的128位IPv6(第六版互联网协议)地址的一部分来嵌入。
参考图10,其中可实现实施方案的至少一些网络可包括使得多个操作系统能够同时在主计算机(例如,图10的主机1020A和1020B)上(即作为主机1020上的虚拟机(VM)1024)运行的硬件虚拟化技术。VM 1024可例如租借或租赁给网络提供商的客户端。主机1020上的管理程序或虚拟机监视程序(VMM)1022为主机上的VM 1024呈现虚拟平台并监视VM 1024的执行。每个VM 1024可设置有一个或多个私有IP地址;主机1020上的VMM 1022可以知道主机上的VM 1024的私有IP地址。映射服务1030可以知道服务本地网络上的IP地址的路由器或其他装置的所有网络IP前缀和IP地址。这包括服务多个VM 1024的VMM 1022的IP地址。映射服务1030可例如集中在一个服务器系统上,或可替代地可分布在网络上的两个或更多个服务器系统或其他装置之间。网络可使用例如映射服务技术和IP隧道技术以例如在数据中心1000网络内的不同主机1020上的VM 1024之间路由数据分组;需注意,内部网关协议(IGP)可用于在这种本地网络内交换路由信息。
此外,诸如提供商数据中心1000网络(有时称为自主系统(AS))的网络可使用映射服务技术、IP隧道技术和路由服务技术来将分组从VM 1024路由到互联网目的地以及从互联网源路由到VM 1024。需注意,外部网关协议(EGP)或边界网关协议(BGP)通常用于在互联网上的源与目的地之间进行互联网路由。图10示出根据至少一些实施方案的实现网络的示例性提供商数据中心1000,所述网络提供资源虚拟化技术并且通过连接到互联网转接提供商的边缘路由器1014提供完全互联网访问。提供商数据中心1000可例如使得客户端能够通过硬件虚拟化服务实现虚拟计算系统(VM 1024)并且能够通过存储虚拟化服务在存储资源1018上实现虚拟化数据存储库1016。
数据中心1000网络可实现IP隧道技术、映射服务技术和路由服务技术,以将流量路由到虚拟化资源并从虚拟化资源路由流量,例如将分组从数据中心1000中的主机1020上的VM 1024路由到互联网目的地,以及从互联网源路由到VM 1024。互联网源和目的地可包括例如连接到中间网络1040的计算系统1070和连接到本地网络1050的计算系统1052,本地网络1050连接到中间网络1040(例如,通过将网络1050连接到互联网转接提供商的边缘路由器1014)。提供商数据中心1000网络还可在数据中心1000中的资源之间路由分组,例如从数据中心1000中的主机1020上的VM 1024路由到同一主机或数据中心1000中的其他主机1020上的其他VM 1024。
提供数据中心1000的服务提供商还可提供另外的数据中心1060,所述另外的数据中心1060包括类似于数据中心1000的硬件虚拟化技术并且也可连接到中间网络1040。分组可从数据中心1000转发至其他数据中心1060,例如从数据中心1000中的主机1020上的VM1024转发至另一个类似数据中心1060中的另一个主机上的另一个VM,并且反之亦然。
虽然上文描述了使得多个操作系统能够作为主机上的虚拟机(VM)同时在主计算机上运行的硬件虚拟化技术,其中VM可租借或租赁给网络提供商的客户端,但是硬件虚拟化技术还可用于以类似方式将其他计算资源(例如,存储资源1018)作为虚拟化资源提供给网络提供商的客户端。
图11是根据至少一些实施方案的示例性提供商网络的框图,所述提供商网络向客户端提供存储虚拟化服务和硬件虚拟化服务。硬件虚拟化服务1120向客户端提供多个计算资源1124(例如,VM)。计算资源1124可例如租借或租赁给提供商网络1100的客户端(例如,实现客户端网络1150的客户端)。每个计算资源1124可设置有一个或多个私有IP地址。提供商网络1100可被配置来将分组从计算资源1124的私有IP地址路由到公共互联网目的地,以及从公共互联网源路由到计算资源1124。
提供商网络1100可使得例如通过本地网络1156联接到中间网络1140的客户端网络1150能够通过硬件虚拟化服务1120实现联接到中间网络1140并联接到提供商网络1100的虚拟计算系统1192。在一些实施方案中,硬件虚拟化服务1120可提供一个或多个API1102,例如web服务接口,通过API 1102,客户端网络1150可以(例如)通过控制台1194访问由硬件虚拟化服务1120提供的功能。在至少一些实施方案中,在提供商网络1100处,客户端网络1150处的每个虚拟计算系统1192可对应于租赁、租借或以其他方式提供给客户端网络1150的计算资源1124。
客户端可(例如)通过一个或多个API 1102从虚拟计算系统1192的实例和/或另一个客户端装置1190或控制台1194访问存储虚拟化服务1110的功能,以访问来自由提供商网络1100提供的虚拟数据存储库1116的数据以及将数据存储到虚拟数据存储库1116。在一些实施方案中,可在客户端网络1150处提供虚拟化数据存储网关(未示出),所述虚拟化数据存储网关可本地高速缓存(例如)频繁被访问的至少一些数据或重要数据,并且可通过一个或多个通信通道与虚拟化数据存储服务1110通信,以从本地高速缓存上传新的或修改的数据,使得数据的主存储库(虚拟化数据存储器1116)得到维护。在至少一些实施方案中,用户可通过虚拟计算系统1192和/或在另一个客户端装置1190上安装并访问虚拟数据存储库1116卷,所述虚拟数据存储器1116卷作为本地虚拟化存储装置1198呈现给用户。
虽然图11中未示出,但是还可通过API 1102从提供商网络1100内的资源实例访问虚拟化服务。例如,客户端、设施服务提供商或其他实体可通过API 1102从提供商网络1100上的相应虚拟私有网络内部访问虚拟化服务,以请求分配虚拟私有网络内或另一个虚拟私有网络内的一个或多个资源实例。
图12示出根据至少一些实施方案的示例性提供商网络,其将提供商网络上的虚拟私有网络提供给至少一些客户端。客户端在提供商网络1200上的虚拟私有网络1260例如使得客户端能够将它们在客户端网络1250上的现有基础设施(例如,装置1252)连接到一组逻辑上隔离的资源实例(例如,VM 1224A和1224B以及存储装置1218A和1218B),并且能够扩展管理能力(诸如安全服务、防火墙和入侵检测系统)以便包括它们的资源实例。
客户端的虚拟私有网络1260可通过私有通信通道1242连接到客户端网络1250。私有通信通道1242可以是例如根据网络隧道技术或中间网络1240之上的别的对等连接实现的隧道。中间网络可以是例如共享网络或公共网络(诸如互联网)。可替代地,私有通信通道1242可通过虚拟私有网络1260与客户端网络1250之间的直接的、专用的连接实现。
公共网络广义上可定义为向多个实体提供开放访问并且在多个实体之间提供互连性的网络。互联网或万维网(WWW)是公共网络的实例。共享网络广义上可定义为与访问通常不受限于的公共网络相比、访问仅限于两个或更多个实体的网络。共享网络可包括例如一个或多个局域网(LAN)和/或数据中心网络,或互连以形成广域网(WAN)的两个或更多个LAN或数据中心网络。共享网络的实例可包括但不限于公司网和其他企业网。共享网络可以在从覆盖局部地区的网络到全球网络范围中的任何位置。需注意,共享网络可与公共网络共享至少一些网络基础设施,并且共享网络可联接到一个或多个其他网络,所述一个或多个其他网络可包括在其他网络与共享网络之间具有受控访问的公共网络。与公共网络(诸如互联网)相比,共享网络也可被视为私有网络。在实施方案中,共享网络或公共网络可用作提供商网络与客户端网络之间的中间网络。
为了为客户端在提供商网络1200上建立虚拟私有网络1260,可将一个或多个资源实例(例如,VM 1224A和1224B以及存储装置1218A和1218B)分配给虚拟私有网络1260。需注意,其他资源实例(例如,存储装置1218C和VM 1224C)可在提供商网络1200上保持可供其他客户端使用。还可将公共IP地址范围分配给虚拟私有网络1260。此外,还可将提供商网络1200的一个或多个联网装置(路由器、交换机等)分配给虚拟私有网络1260。可在虚拟私有网络1260处的私有网关1262与客户端网络1250处的网关1256之间建立私有通信通道1242。
在至少一些实施方案中,除了或替代私有网关1262,虚拟私有网络1260可包括公共网关1264,所述公共网关1264使得虚拟私有网络1260内的资源能够通过中间网络1240(代替或除了通过私有通信通道1242)与实体(例如,网络实体1244)直接通信,并且反之亦然。
虚拟私有网络1260可以但不必再分成两个或更多个子网络或子网1270。例如,在包括私有网关1262和公共网关1264两者的实现方式中,私有网络可再分成包括可通过私有网关1262到达的资源(在这个实例中为VM 1224A和存储装置1218A)的子网1270A以及包括可通过公共网关1264到达的资源(在这个实例中为VM 1224B和存储装置1218B)的子网1270B。
客户端可将特定客户端公共IP地址指配给虚拟私有网络1260中的特定资源实例。中间网络1240上的网络实体1244然后可向由客户端发布的公共IP地址发送流量;流量由提供商网络1200路由到相关联的资源实例。从资源实例返回的流量由提供商网络1200通过中间网络1240路由回网络实体1244。需注意,在资源实例与网络实体1244之间路由流量可能需要进行网络地址转换以在资源实体的公共IP地址与私有IP地址之间进行转换。
至少一些实施方案可允许客户端将如图12中所示的客户端的虚拟私有网络1260中的公共IP地址重新映射到客户端的外部网络1250上的装置。当(例如,从网络实体1244)接收分组时,网络1200可确定由分组指示的目的地IP地址已经重新映射到外部网络1250上的端点并且通过私有通信通道1242或通过中间网络1240处理分组到相应端点的路由。响应流量可通过提供商网络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的规则,所述规则控制允许到达与群组1316相关联的资源实例1318的入站流量。
在图13所示的示例性虚拟私有网络1310中,私有网络1310再分成两个子网1314A和1314B。对私有网络1310的访问受网关1330控制。每个子网1314可包括起作用以向(和从)相应子网1314上的资源实例1318路由流量的至少一个路由器1312。在图13中所示的实例中,资源实例1318A至1318E在子网1314A上,而资源实例1318F至1318J在子网1314B上。客户端已经建立了四个群组1316A至1316D。如图13中所示,群组可跨子网1314扩展,如同包括子网1314A上的资源实例1318A和1318B以及子网1314B上的资源实例1318F的群组1316A那样。此外,资源实例1318可包括在两个或更多个群组1316中,如同包括在群组1316A和1316B中的资源实例1318A那样。
说明性系统
在至少一些实施方案中,实现如本文所述的访问控制方法和设备的部分或全部的服务器可包括通用计算机系统,诸如图14中所示的计算机系统2000,所述通用计算机系统包括一种或多种计算机可访问介质或被配置来访问一种或多种计算机可访问介质。在所示实施方案中,计算机系统2000包括通过输入/输出(I/O)接口2030联接到系统储存器2020的一个或多个处理器2010。计算机系统2000还包括联接到I/O接口2030的网络接口2040。
在各种实施方案中,计算机系统2000可以是包括一个处理器2010的单处理器系统,或包括若干处理器2010(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器2010可以是能够执行指令的任何处理器。例如,在各种实施方案中,处理器2010可以是实现各种指令集架构(ISA)中何一种架构的通用或嵌入式处理器,所述架构诸如x86、PowerPC、SPARC、或MIPS ISA或任何其他合适ISA。在多处理器系统中,每一个处理器2010通常可以但不一定实现相同的ISA。
系统储存器2020可被配置来存储可由处理器2010访问的指令和数据。在各种实施方案中,系统储存器2020可使用任何合适储存器技术来实施,所述储存器技术诸如静态随机存取储存器(SRAM)、同步动态RAM(SDRAM)、非易失性/快闪型储存器或任何其他类型的储存器。在所示实施方案中,实施一个或多个所需功能的程序指令和数据(诸如上述用于访问控制的那些方法、技术和数据)被示出为作为代码2025和数据2026存储在系统储存器2020内。
在一个实施方案中,I/O接口2030可被配置来协调处理器2010、系统储存器2020和装置中的任何外围装置之间的I/O流量,所述外围装置包括网络接口2040或其他外围接口。在一些实施方案中,I/O接口2030可执行任何必需协议、时序或其他数据转换以将来自一个部件(例如,系统存储器2020)的数据信号转变成适合于由另一个部件(例如,处理器2010)使用的格式。在一些实施方案中,I/O接口2030可包括对于通过各种类型的外围总线附接的装置的支持,所述外围总线诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的改变形式。在一些实施方案中,I/O接口2030的功能可分到两个或更多个单独的部件中,诸如北桥和南桥。另外,在一些实施方案中,I/O接口2030的一些或所有功能,诸如到系统储存器2020的接口,可直接并入处理器2010中。
网络接口2040可被配置来允许数据在计算机系统2000与附接到一个或多个网络2050的其他装置2060(例如像如图1至图13中所示的其他计算机系统或装置)之间进行交换。在各个实施方案中,网络接口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.如条款1所述的提供商网络,其中所述资源实例被实现为所述主机装置上的虚拟机(VM),其中每个主机装置包括监视所述相应主机装置上的多个虚拟机(VM)的虚拟机监视程序(VMM),并且其中所述主机装置上的所述VMM执行所述获得、所述访问和所述发送。
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.如权利要求1所述的提供商网络,其中所述资源实例被实现为所述主机装置上的虚拟机VM,其中每个主机装置包括监视所述相应主机装置上的多个虚拟机VM的虚拟机监视程序VMM,并且其中所述主机装置上的所述VMM执行所述获得、所述通信和所述发送。
6.如权利要求1所述的提供商网络,其中为了评估与所述资源实例相关联的所述策略,所述访问控制服务被配置来:
确定所述资源实例已经在特定客户端在所述提供商网络上的私有网络实现方式中担任角色;
确定与所述资源实例所担任的所述角色相关联的策略;并且
评估与所述角色相关联的所述策略。
7.如权利要求1所述的提供商网络,其中为了通过所述网络底层之上的覆盖网络将所述一个或多个网络分组从所述资源实例发送到所述目标,所述主机装置还被配置来:
将所述封装分组发送到所述网络底层上,以便根据所述封装分组中的路由信息路由到所述目标。
8.如权利要求1所述的提供商网络,还包括一个或多个网络装置,所述一个或多个网络装置被配置来:
与在所述网络底层上实现的覆盖网络外部的端点通信,以便为所述端点在所述覆盖网络上建立身份;
访问所述访问控制服务,以根据对与目标资源实例相关联的策略的评估确定允许所述端点打开通过所述覆盖网络到所述目标资源实例的连接;并且
响应于所述确定,通过所述网络底层之上的覆盖网络路径将一个或多个网络分组从所述端点发送到所述目标资源实例。
9.一种方法,包括:
由在提供商网络中的主机装置上实现的封装层进程从在所述主机装置上实现的一个或多个资源实例中的一个获得网络分组,其中所述网络分组定向到目标端点;
根据所述提供商网络上的身份和访问管理环境确定所述资源实例被识别为主体;
根据对与所述主体相关联的策略的评估,确定允许所述主体打开到所述目标端点的连接;以及
响应于所述确定允许所述主体打开到所述目标端点的连接:
根据封装协议封装来自所述资源实例并且定向到所述目标端点的一个或多个网络分组,以产生一个或多个封装分组;
将所述资源实例的身份相关信息作为元数据包括在所述一个或多个封装分组中的至少一个中,其中所述资源实例的所述身份相关信息被配置来在所述目标端点处使用,以根据所述目标端点处的策略针对所述资源实例做出访问决定,以及其中所述资源实例的所述身份相关信息包括以下各项中的一个或多个:相应资源实例的主体信息、相应资源实例的群组信息和用来验证身份信息的安全/验证信息;以及
将所述一个或多个封装分组发送到所述提供商网络的网络底层上,以便根据所述封装分组中的路由信息路由到所述目标端点。
10.如权利要求9所述的方法,其中所述资源实例和所述目标端点都是特定客户端在所述提供商网络上的私有网络实现方式中的资源实例。
11.如权利要求9所述的方法,其中所述根据对与所述主体相关联的策略的权限语句的评估确定允许所述主体打开到所述目标端点的连接包括:
所述封装层进程向所述提供商网络上的访问控制服务发送策略评估请求;
由所述访问控制服务确定与所述主体相关联的所述策略;
由所述访问控制服务评估与所述主体相关联的所述策略中的一个或多个权限语句,以确定所述策略允许所述主体打开到与所述目标端点相关联的资源的连接;以及
向所述封装层进程指示允许所述主体打开到所述目标端点的连接。
12.如权利要求11所述的方法,其中所述访问控制服务进一步执行确定并评估与所述资源相关联与所述目标端点相关联的策略,其中只有在与所述主体相关联的所述策略和与所述资源相关联的所述策略都允许所述连接时,才允许所述主体打开到所述资源的连接。
13.如权利要求11所述的方法,其中与所述主体相关联的所述策略中的每个权限语句指示:一个或多个动作,针对所述一个或多个动作,权限被允许或拒绝;一个或多个资源,所述权限语句应用于所述一个或多个资源;以及针对所述一个或多个所指示资源是允许还是拒绝所述一个或多个所指示动作。
14.如权利要求9所述的方法,还包括:
由所述封装层进程从根据所述身份和访问管理环境被识别为所述主体的资源实例获得另一个网络分组,其中所述另一个网络分组定向到另一个目标端点;
根据对与所述主体相关联的策略的评估确定不允许所述主体打开到所述另一个目标端点的连接;以及
响应于所述确定,丢弃所述另一个网络分组而无需将所述网络分组发送到所述另一个目标端点。
15.如权利要求9所述的方法,其中所述根据对与所述主体相关联的策略的评估确定允许所述主体打开到所述目标端点的连接包括:
确定所述主体已经在特定客户端在所述提供商网络上的私有网络实现方式中担任角色,其中与所述主体相关联的所述策略是与所述主体所担任的所述角色相关联的策略;以及
评估与所述角色相关联的所述策略以确定允许所述主体打开到所述目标端点的连接。
CN201480067508.1A 2013-12-11 2014-12-11 虚拟网络中基于身份和访问管理的访问控制 Active CN105814554B (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
CN105814554A CN105814554A (zh) 2016-07-27
CN105814554B true CN105814554B (zh) 2019-11-15

Family

ID=53272301

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480067508.1A Active CN105814554B (zh) 2013-12-11 2014-12-11 虚拟网络中基于身份和访问管理的访问控制

Country Status (6)

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

Families Citing this family (60)

* 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
EP3570567B1 (en) * 2017-01-13 2022-07-27 BOE Technology Group Co., Ltd. Method and device for operating instance resources
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
WO2020073230A1 (en) 2018-10-10 2020-04-16 Alibaba Group Holding Limited Authentication and authorization for cloud file system
US10826874B2 (en) * 2018-11-29 2020-11-03 Mastercard International Incorporated Direct production network access using private networks and encapsulation
US10999197B2 (en) * 2018-11-30 2021-05-04 Cisco Technology, Inc. End-to-end identity-aware routing across multiple administrative domains
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
US10868887B2 (en) * 2019-02-08 2020-12-15 Palantir Technologies Inc. Systems and methods for 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 阿里巴巴集团控股有限公司 无服务器架构下的资源访问方法、设备、系统及存储介质
WO2020264323A1 (en) * 2019-06-28 2020-12-30 Amazon Technologies, Inc. Provider network connectivity management for provider network substrate extensions
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
EP4229785A4 (en) * 2020-10-13 2024-08-28 Bedrock Systems Inc FORMALLY VERIFIED SECURE COMPUTER BASE WITH ACTIVE POLICY AND SECURITY APPLICATION
DE112021005656T5 (de) * 2020-12-10 2023-08-10 Amazon Technologies, Inc. Analyse der rollenerreichbarkeit mit transitiven tags
US12034727B2 (en) * 2020-12-10 2024-07-09 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
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
US11757782B2 (en) * 2021-04-09 2023-09-12 Microsoft Technology Licensing, Llc Architectures for disaggregating SDN from the host
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 腾讯云计算(北京)有限责任公司 一种网络安全管理方法及电子设备
CN115499143A (zh) * 2021-06-17 2022-12-20 杭州筋斗腾云科技有限公司 支持动态资源映射的网络主机访问方法和系统
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
CN102577270A (zh) * 2009-09-30 2012-07-11 阿尔卡特朗讯公司 用于云拓扑中企业扩展的可伸缩架构
CN102598591A (zh) * 2009-11-06 2012-07-18 微软公司 采用用于保护跨网络的连接的覆盖
CN102948132A (zh) * 2010-06-22 2013-02-27 微软公司 分布式虚拟网络网关
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
JP5239369B2 (ja) * 2008-02-07 2013-07-17 富士通株式会社 接続管理システム、接続管理サーバ、接続管理方法及びプログラム
US8938782B2 (en) * 2010-03-15 2015-01-20 Symantec Corporation Systems and methods for providing network access control in virtual environments
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
CN102577270A (zh) * 2009-09-30 2012-07-11 阿尔卡特朗讯公司 用于云拓扑中企业扩展的可伸缩架构
CN102598591A (zh) * 2009-11-06 2012-07-18 微软公司 采用用于保护跨网络的连接的覆盖
CN102948132A (zh) * 2010-06-22 2013-02-27 微软公司 分布式虚拟网络网关
WO2013145780A1 (en) * 2012-03-30 2013-10-03 Nec Corporation Communication system, control apparatus, communication apparatus, communication control method, and program

Also Published As

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

Similar Documents

Publication Publication Date Title
CN105814554B (zh) 虚拟网络中基于身份和访问管理的访问控制
US10666606B2 (en) Virtual private network service endpoints
US11563681B2 (en) Managing communications using alternative packet addressing
US11792041B2 (en) Private alias endpoints for isolated virtual networks
US11509577B2 (en) Linking resource instances to virtual network in provider network environments
US11089021B2 (en) Private network layering in provider network environments
US9654340B2 (en) Providing private access to network-accessible services
US8396946B1 (en) Managing integration of external nodes into provided computer networks
US11269673B2 (en) Client-defined rules in provider network environments
US11770364B2 (en) Private network peering in virtual network environments
US10862796B1 (en) Flow policies for virtual networks in provider network environments
US10326710B1 (en) Propagating access rules on virtual networks in provider network environments
Jeuk et al. Towards cloud, service and tenant classification for cloud computing
US10862709B1 (en) Conditional flow policy rules for packet flows in provider network environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant