在多租户环境中提供用于安全网络通信的集成防火墙的系统和方法与流程

文档序号:11532489阅读:462来源:国知局
在多租户环境中提供用于安全网络通信的集成防火墙的系统和方法与流程

版权声明:

本专利文档的公开内容的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现的那样进行传真复制,但是除此之外在任何情况下都保留所有版权。

本发明一般而言涉及计算机系统,并且具体而言涉及在网络环境中提供安全通信。



背景技术:

互连网络在下一代超级计算机、集群和数据中心中发挥有益的作用。随着更大云计算体系架构的引入,与传统网络和存储相关联的性能和管理瓶颈已成为重要的问题。下一代数据中心可以包括具有用于托管应用的多个计算节点的中间件机器系统。这种中间件机器系统的一个例子是exalogic计算机设备。下一代数据中心还可以包括数据库服务器系统。数据库服务器系统的一个例子是exadata数据库云服务器。中间件机器系统与数据库服务器系统协作工作。存储在数据库服务器系统中的数据被使用和检索,用于中间件机器系统中的计算机操作,在中间件机器系统中生成或修改的数据被存储在数据库服务器系统中。因此,中间件机器系统和数据库服务器系统之间的连接可靠、高速、低延迟和具有低协议开销的高带宽是重要的。例如,已经见到infiniband(ib)技术日益增长地部署为云计算结构的基础。infiniband是基于连接的通信协议,其使用可以支持中间件机器系统和数据库服务器系统之间的远程直接存储器访问(rdma)操作等的交换结构拓扑。

但是,数据中心通常由多个租户共享。多个租户可以是例如云计算环境中的不同公司实体。即使在数据中心专用于单个公司实体的情况下,也可能存在不同部门形式的多个租户(诸如财务、人力资源、工程等),其拥有必须对其它部门保持私密的数据。在多租户环境中,数据被保护以及可以被授权的租户和相关联的用户访问并且不能被未授权的租户和相关联的用户访问是重要的或必要的。同样,中间件机器系统中的应用与特定租户相关联,并且因此数据库服务器系统中的数据对某些应用应当是可访问的,而对其它应用应当是不可访问。

保护数据免于未授权访问的常规方式是使用防火墙设备。防火墙设备(诸如以太网防火墙设备)可以放置在位于共享以太网介质中的中间件机器系统和数据库服务器系统之间。防火墙设备控制对数据库服务的访问,使得用于这种服务的端口对授权租户及其相关联的应用可用,而对未授权的租户及其相关联的应用不可用。但是,使用这种防火墙设备必然防止中间件机器系统和数据库服务器系统之间的直接连接,并且充当了间接连接的瓶颈。没有infiniband防火墙设备当前可用。因此,如果需要/指定防火墙,则应当使用常规的以太网防火墙设备(等等)。但是,使用常规的以太网防火墙设备引入了额外的联网开销,并且产生限制系统可扩展性的瓶颈。使用常规的以太网防火墙设备排除了使用基于高速连接的交换结构(诸如,infiniband)以及这种基于连接的交换结构提供给在中间件机器系统和数据库服务器系统之间执行的操作的优化。

在用于中间件和应用执行系统的工程化系统中使用中间节点提供安全性来提供和控制数据流的现有系统和方法在于2014年8月25日提交的、申请号为14/467859、标题为“systemandmethodforprovidingadataserviceinanengineeredsystemformiddlewareandapplicationexecution”的美国专利申请;于2014年8月25日提交的、申请号为14/467860、标题为“systemandmethodforcontrollingadataflowinanengineeredsystemformiddlewareandapplicationexecution”的美国专利申请;于2014年8月25日提交的、申请号为14/467868、标题为“systemandmethodforsupportingdataserviceaddressinginanengineeredsystemformiddlewareandapplicationexecution”的美国专利申请;以及于2014年8月25日提交的、申请号为14/467896、标题为“systemandmethodforsupportinghostchanneladapter(hca)filteringinanengineeredsystemformiddlewareandapplicationexecution”的美国专利申请中描述,这些申请通过引用被结合于此。但是,中间节点的使用必然增加通信通道的延迟和开销。这些应用描述了具有一般适用性的防火墙设备。但是,该解决方案需要额外的联网开销,从而影响延迟和可扩展性问题,因为中间节点接收和处理在两个端点之间传播的每个分组。此外,根据每个分组所需的处理,系统在针对开销、延迟和可扩展性影响与执行多少深度分组处理之间做出折衷。

为了提供类似于在本发明公开内容中所描述的使用标准防火墙设备的解决方案的解决方案,将需要跟踪每个连接的状态以及该连接与特定应用层构造(例如像数据库服务)的关联,如我们在本发明公开内容中所描述的那样。

因此,克服由常规使用中间防火墙设备和/或中间节点所出现的缺点,同时在多租户环境中提供确保数据的安全性的安全性解决方案将是所期望的。



技术实现要素:

本文描述的是克服由常规使用中间防火墙设备所出现的缺点,同时在多租户环境中提供确保数据的安全性的安全性解决方案的系统和方法。本文描述的安全性解决方案避免了必须使用中间防火墙设备并且允许中间件机器系统和数据库服务器系统之间的无瓶颈直接连接。安全性解决方案使得能够使用基于高速连接的交换结构(诸如,链接中间件机器系统和数据库服务器系统的infiniband)以及这种基于连接的结构可以提供给在中间件机器系统和数据库服务器系统之间执行的操作的优化。中间件机器系统中的节点和数据库服务器系统中的节点可以通过交换结构中的一个或多个交换机直接连接,而不用通过任何中间防火墙设备或计算节点。该安全性解决方案以允许系统使用由这种直接连接(包括sr-iov技术所提供的那些)所能够实现的全范围优化的方式操作。

在一些实施例中,本公开内容描述了一种在多租户环境中提供安全性的集成防火墙,多租户环境具有基于连接的交换结构,其将提供多个数据库服务的数据库服务器与托管数据库服务消费者的应用服务器直接连接,每个服务器服务消费者具有不同的数据库服务消费者身份。集成到每个数据库服务器中的防火墙功能通过丢弃不包括数据库服务消费者身份的通信分组并且通过结合访问控制列表使用数据库服务消费者身份来控制从数据库服务消费者到数据库服务的访问来提供访问控制。访问控制包括基于所述访问控制列表的地址解析访问控制、连接建立访问控制以及数据交换访问控制。该集成防火墙经由infiniband网络使得数据库服务器和应用服务器能够直接连接,从而提供防火墙功能而无需单独的中间防火墙设备或安全性节点。集成防火墙使得系统能够使用sr-iov技术,该技术(在授权时)提供从消费者到数据库服务的直接联网硬件访问。

在一些实施例中,本公开内容描述了一种在多租户环境中提供安全通信的完整的安全性解决方案,多租户环境包括基于连接的结构、保持与不同租户相关联的数据的存储单元、使用所述数据提供多个数据库服务的数据库服务器、托管数据库服务消费者的应用服务器。该结构被配置为将存储单元与数据库服务消费者隔离的多个分区。唯一数据库服务消费者身份与每个数据库服务消费者安全地相关联。该安全性解决方案被配置为使得消费者标识符被包括在数据库服务消费者和数据库服务器之间的所有通信中。数据库服务器拒绝来自不包括身份的数据库服务消费者的所有通信。数据库服务器使用访问控制列表结合在通信分组中提供的身份以使用地址解析访问控制、连接建立访问控制和数据交换访问控制中的一个或多个来控制从数据库服务消费者到数据库服务的访问。基于分组中包括的消费者身份,还可以执行拒绝服务(denialofservice,dos)攻击预防。该安全性解决方案经由infiniband网络使得数据库服务器和应用服务器能够直接连接,从而提供防火墙功能而无需单独的中间防火墙设备或安全性节点。

在一些实施例中,本公开内容描述了一种可以在网络环境中提供安全通信的系统和方法。网络环境(诸如,网络上的多租户环境)可以包括一个或多个服务提供商节点、一个或多个服务消费者节点和一个或多个存储单元。所述一个或多个服务提供商节点可以确保所述一个或多个服务提供商节点与所述一个或多个服务消费者节点之间的安全通信。此外,网络环境可以将与所述一个或多个服务提供商节点相关联的一个或多个存储单元与所述一个或多个服务消费者节点隔离。此外,网络环境可以为在所述一个或多个服务消费者节点上的一个或多个虚拟机(vm)提供对在所述一个或多个服务提供商节点上运行的一个或多个服务提供商实例的安全访问。

在一些实施例中,本公开内容描述了一种用于在网络环境中提供安全通信的方法,包括:经由网络环境中的一个或多个服务提供商节点确保所述一个或多个服务提供商节点和一个或多个服务消费者节点之间的安全通信;将与所述一个或多个服务提供商节点相关联的一个或多个存储单元与所述一个或多个服务消费者节点隔离;以及为在所述一个或多个服务消费者节点上的一个或多个虚拟机(vm)提供对在所述一个或多个服务提供商节点上运行的一个或多个服务提供商实例的安全访问。

当按照附图阅读时,根据对各种实施例的以下描述,本发明的这些和其它目的和优点对本领域技术人员将变得显而易见。

附图说明

下面基于以下各图详细描述本发明的各种实施例。

图1示出根据本发明实施例的、在网络环境中提供安全通信的图示。

图2图示根据本发明实施例的、在具有由交换联网结构连接到中间件机器系统的数据库服务器系统的集成系统中的访问控制。

图3图示根据本发明实施例的、在由交换联网结构连接到中间件机器系统的计算节点的数据库服务器系统的数据库节点中的访问控制。

图4a-4c图示根据本发明实施例的、用于在来自中间件机器系统的计算节点上的虚拟机的通信分组中安全地嵌入源标识符的系统和方法的各方面。

图5a图示根据本发明实施例的访问控制列表。

图5b和5c图示根据本发明实施例的用于创建、更新和分发图5a的访问控制列表的系统和方法。

图6图示根据本发明实施例的、基于图5a的访问控制列表在数据库节点处执行的连接建立访问控制和数据交换控制的各方面。

具体实施方式

本文描述的是可以在网络环境中提供安全通信的系统和方法。网络环境(诸如,网络上的多租户环境)可以包括一个或多个服务提供商节点、一个或多个服务消费者节点和一个或多个存储单元。所述一个或多个服务提供商节点可以确保所述一个或多个服务提供商节点与所述一个或多个服务消费者节点之间的安全通信。此外,网络环境可以将与所述一个或多个服务提供商节点相关联的一个或多个存储单元与所述一个或多个服务消费者节点隔离。此外,网络环境可以为在所述一个或多个服务消费者节点上的一个或多个虚拟机(vm)提供对在所述一个或多个服务提供商节点上运行的一个或多个服务提供商实例的安全访问。

在以下描述中,本发明将在附图的各图中通过示例而非限制的方式示出。对本公开内容中的各种实施例的引用不必是相同的实施例,并且这样的引用意味着至少一个。虽然讨论了具体实现,但是应当理解的是,这只是为了说明性的目的提供。相关领域的技术人员将认识到,在不脱离本发明的范围和精神的情况下,可以使用其它组件和配置。

此外,在某些情况下,将阐述许多具体细节以提供对本发明的详尽描述。但是,对于本领域技术人员将显而易见的是,本发明可以在没有这些具体细节的情况下实践。在其它情况下,众所周知的特征没有被详细描述,以免模糊本发明。

本发明借助于示出特定功能的性能及其关系的功能构建块进行描述。为了方便描述,这些功能构建块的边界在本文往往被任意地定义。因此,示出为由相同元件执行的功能在替代实施例中可由不同元件执行。并且示出为在单独元件中执行的功能可以替代地合并到一个元件中。只要适当地执行指定的功能及其关系,就可以定义替代边界。任何这样的替代边界因此也在本发明的范围和精神之内。

贯穿附图和详细描述,使用了共同的标号来指示相同的元件;因此,如果元件在其它地方被描述,则在图中使用的标号可以或可以不在特定于该图的详细描述中被引用。三位数字标号中的第一个数字指示该元件首次出现的一系列图。

在以下描述中,一些实施例描述了具有通过infiniband结构连接到exadata数据库服务器系统的exalogic中间件机器的系统。但是,本领域普通技术人员将理解的是,在不脱离本发明的范围的情况下,本发明可以应用到许多高性能计算环境。此外,虽然描述了通过infiniband结构连接到exadata数据库服务器系统的exalogic中间件机器的许多具体细节以提供本发明的详尽描述,但是对本领域技术人员将显而易见的是,本发明可以在没有这些具体细节的情况下实践。因此,在不脱离本发明的范围的情况下,体现本发明的多租户计算环境的特定实现可以在一些实施例中排除某些特征和/或包括与下面描述的中间件机器、数据库服务器系统和infiniband结构不同或修改的特征。

图1示出了根据本发明实施例的、用于在网络环境中提供安全通信的系统和方法的概述。如图1所示,多租户环境100可以基于infiniband(ib)子网110。ib子网110包括一个或多个服务提供商(例如数据库节点102)、一个或多个服务消费者(例如计算节点101上的虚拟机)以及一个或多个存储单元103。典型的系统将包括通过infiniband子网101连接的大量类似的数据库节点102、计算节点101和存储单元103。

如图1所示,多租户环境100可以依赖于数据库节点102来执行防火墙功能和提供计算节点101上的虚拟机111和112与数据库节点102上的数据库实例113之间的安全通信。被认为是可信安全性域的数据库节点102趋向于比计算节点101上的虚拟机更安全。此外,多租户环境100可以将存储单元103与计算节点101上的虚拟机隔离,即存储单元103可以仅由数据库节点102访问,并且不能由计算节点101上的虚拟机访问。

根据本发明的实施例,支持多租户环境100的ib子网110可以使用不同的分区来配置。例如,存储单元103对于计算节点101上的虚拟机可以是不可见的,因为对存储单元103的访问可以通过使用专用ib分区来隔离。此外,对数据库节点102的访问可以通过另一专用分区来隔离,而数据库节点102可以由计算节点101上运行的所有租户共享。另一方面,数据库节点102可以使用不同的联网接口对两个分区访问。

如图1所示,计算节点101可以支持一个或多个虚拟机(vm),例如vm111-112,其中每个vm可以被指派有vm标识符。在vm部署时指派的vm标识符可以使用硬件来实行。vm标识符可以出现在由vm111-112传输的每个分组中。另外,可以用来控制vm对数据库的访问的vm标识符可以不由vm本身操纵。此外,vm标识符可以在整个vm生命周期中改变(即,vm标识符不是永久的)。

如图1所示,多租户环境100可以确保vm111-112对数据库实例113的安全访问。例如,使用由vm111-112传输到数据库节点112的每个分组中出现的vm标识符,系统可以在联网层基于访问控制机制和在数据库节点101的应用层基于工作负荷检查机制。如图1所示,访问控制114对计算节点101上的vm111-112是透明的,并且可以在数据库节点102上实行。系统可以限制vm111-112对特定数据库服务的访问,例如对由数据库实例113提供的特定数据库服务的访问。例如,vm111被允许访问由数据库实例113提供的数据库服务,而vm112被防止访问由数据库实例113提供的数据库服务。

如图1所示,系统可以配置用于传输数据分组的控制路径,以限制到特定数据库节点102的地址和路由解析。此外,控制路径可以被配置为将连接建立限制到特定数据库服务。此外,系统可以配置用于传输数据分组的数据路径,以在硬件(例如,数据库节点102的主机通道适配器(hca))中实行数据交换访问控制,并且避免显著的性能影响。

如图1所示,系统可以限制计算节点101和数据库节点102之间的通信经过安全通信通道120。注意,如同这里,每当本详细描述引用数据库节点和计算节点之间的通信时,它是指数据库节点和在计算节点上运行的vm而不是计算节点本身之间的通信。安全通信通道120可以基于具有增强访问控制的ib可靠连接(rc)协议,并且可以禁止通过该联网接口对数据库的tcp/udp/sdp访问。例如,在实施例中,exadirectsecure可以提供exalogic计算节点和exadata数据库节点之间经ib网络的高速安全通信。exadirectsecure可以只能由java数据库连接(javadatabaseconnectivity,jdbc)和调用接口(callinterface,oci)客户端(即实际上限于sqlnet)使用。

如图1所示,系统可以附加地经由位于ib子网110外部的安全性设备104建立vm111和由数据库实例113提供的特定数据库服务之间的安全通信。例如,如果exalogic计算节点上的应用不使用jdbc或oci客户端与exadata数据库接口,则exalogic计算节点可以替代地经由安全性设备104使用单独的基于以太网的通信。

图2图示了根据本发明实施例的、在具有由交换联网结构206连接到中间件机器系统220的数据库服务器系统240的集成系统中的访问控制。集成系统200提供了访问控制功能,其克服了由常规使用中间防火墙设备所出现的缺点,同时提供在多租户环境中确保数据的安全性的安全性解决方案。该安全性解决方案使得能够使用基于高速连接的网络结构(诸如,infiniband结构206)以及使得能够使用这种基于连接的交换结构可以向在中间件机器系统220和数据库服务器系统240之间执行的操作提供的优化。

集成系统200包括由infiniband结构206连接到中间件机器系统220的数据库服务器系统240。在实施例中,数据库服务器系统240是exadata数据库服务器系统,并且中间件机器系统220是exalogic中间件机器系统。数据库服务器系统240可以由数据库管理员(dba)212管理,并且集成系统200可以由系统管理员211使用管理栈210来管理。中间件机器系统220包括虚拟机(数据库服务消费者)的集合。在部署时,每个虚拟机被指派硬件实行的唯一标识符(vmid)。该标识符由安全地运行在infiniband结构206中的交换机216上的子网管理器214分配、并且由中间件机器系统220的每个计算节点上的硬件嵌入到由虚拟机生成的每个分组的报头中作为报头中的源全局标识符(sgid)的部分。系统使用在每个分组标识符的sgid中提供的这个唯一vmid来安全地识别每个vm,并且控制从该vm对特定数据库服务(数据库服务提供商)的访问。在实施例中,如下所述,对数据库服务的访问不仅受数据库前台进程限制,而且受数据库监听器和hca限制。在替代实施例中,访问控制可以应用到其它数据库基元,诸如可插拔数据库(pdb)或数据库表。

系统包括访问控制措施,其确保在管理栈210的控制下,对由数据库服务器系统240提供的特定数据库服务的访问被限制到在访问控制列表(acl)中已经被授权访问那个特定数据库服务的中间件机器系统220的虚拟机。可以例如仅向与特定租户相关联的那些虚拟机授权访问。访问控制列表(acl)将每个命名的数据库服务与对应于被允许访问它的vm的一组vm标识符相关联。访问控制系统确保只有在acl中针对命名数据库服务被授权权限的vm将被允许访问该命名数据库服务。acl的内容受到使用管理栈210的集成系统的管理员的安全控制。

如图2所示,数据库服务器系统240包括多个存储单元250。示出了四个存储单元250a、250b、250c和250d。典型的系统可以包括大量类似的存储单元。存储单元存储可以与多租户环境中的特定租户相关联的数据/数据库文件。如图2所示,专用存储访问分区限制对存储单元250的访问。对存储访问分区202的访问仅被授权给存储单元和数据库节点。计算节点220a、220b、220c和220d上的虚拟机不被授权对存储访问分区202的访问,并且因此不能直接访问存储单元250。

数据库服务器系统240还包括多个数据库节点260。示出了两个数据库节点260a、260b。典型的系统将包括大量类似的数据库节点。数据库节点260a、260b可以经由存储访问分区202访问存储单元250a、250b、250c和250d。数据库节点260a、260b中的每一个可以托管多个数据库进程,例如pdb261a、262a、261b和262b,其中每一个可以提供命名数据库服务,例如dbsvc263a、264a、263b和264b。每个命名数据库服务可以与一个或多个特定租户相关联。存储单元250a、250b、250c、250d表示共享存储介质。特定存储单元不需要与特定租户相关联或专用于特定租户。在实施例中,存储单元250表示由数据库节点260管理的分布式存储阵列。数据库文件可以跨多个存储单元条带化(striped)。但是,在数据库节点260的控制下,可以利用在存储单元上的许多种布置的数据库文件。由于存储单元使用专用存储访问分区204与计算节点的vm隔离,因此对存储单元250的访问不需要附加的安全性措施。存储访问分区204仅对于数据库节点260a和260b以及存储单元250a、250b、250c和250d可用。因此,该多个存储单元250与中间件机器系统220以及计算节点220a、220b、220c和220d上的虚拟机隔离。

中间件机器系统220访问存储在多个存储单元250上的数据库文件的唯一方式是通过调用多个数据库节点260上特定于租户的命名数据库服务中的一个或多个来间接访问。如下所述,使用访问控制266a和266b来控制和保护对数据库节点260a、260b的访问。从计算节点上的虚拟机对数据库节点的访问也被约束到专用数据库访问分区204。该分区与默认分区不同,并且不用于不同计算节点上的虚拟机本身之间的通信。如果部署多个租户,则它们都共享相同的数据库访问分区204来访问数据库节点。所有vm被配置为数据库访问分区204的受限成员(limitedmember),以便防止使用数据库访问分区204在vm之间的通信。所有数据库节点被配置为数据库访问分区204的完全成员(fullmember)。

中间件机器系统220包括多个计算节点,其中四个被示为220a、220b、220c和220d。典型的系统将包括大量类似的计算节点。计算节点托管在虚拟机中运行的应用(未示出)。虚拟机中的每一个可以被指派给多租户环境中的特定租户。可以存在在每个计算节点上运行的多个虚拟机(和应用)。八个虚拟机被示为vm221a、vm222a、vm221b、vm222b、vm221c、vm222c、vm221d和vm222d。典型的系统将包括在每个计算节点和许多附加计算节点上运行的大量类似的虚拟机。每个虚拟机在子网管理器214的控制下,通过托管虚拟机的计算节点的硬件,将与标识符vmid223a、vmid224a、vmid223b、vmid224b、vmid223c、vmid224c、vmid223d和vmid224d相关联。使用基于连接的可靠协议,计算节点220a、220b、220c、220d上的vm可以通过存储访问分区202与多个数据库节点260通信。在优选实施例中,计算节点220a、220b、220c和220d上的vm可以通过infiniband结构206与多个数据库节点260通信。

计算节点220a、220b、220c和220d的硬件在虚拟机上的应用和数据库节点之间传输通信分组。计算节点的硬件在每个分组的报头中包括源全局标识符(sgid),其包括与虚拟机通信相关联的vmid。因为vmid与硬件中的虚拟机相关联,因此虚拟机不能伪造其标识符,即,它们不能使用没有由硬件进行关联的标识符。此外,计算节点的硬件确保来自虚拟机的所有通信分组在其报头中包括sgid,其包括在通过数据库访问分区204与数据库节点通信时相关虚拟机的vmid。

如前所述,中间件机器系统220的虚拟机访问多个存储单元250上的数据的唯一方式是通过调用多个数据库节点260上的特定命名数据库服务。虚拟机不被允许通过存储访问分区进行通信,并且因此不能与存储单元直接通信。虚拟机中的每一个可以试图创建与任何命名数据库服务的连接。但是,每个数据库节点包括在数据库节点的硬件(例如hca)和软件中实现的访问控制功能266a和266b。访问控制功能266a和266b可以从接收到的通信分组中的sgid识别哪个虚拟机正在试图连接到命名服务。访问控制功能266a和266b响应于访问控制列表268a和268b提供访问控制功能,访问控制列表268a和268b识别哪些虚拟机可以访问哪些命名服务。acl的内容在管理栈210的安全控制之下,并且acl的副本被分发到每个数据库节点。访问控制功能266a、266b可以包括地址解析访问控制、连接建立访问控制、数据交换访问控制和ipoib访问控制中的一个或多个。

如果vm未被授权访问由特定数据库节点提供的任何数据库服务,则访问控制功能266a、266b可以防止虚拟机与特定数据库节点建立连接。访问控制功能266a和266b还可以防止虚拟机与特定数据库服务建立连接并与其通信,除非该vm在访问控制列表中被授权访问该特定数据库服务。在多租户环境的实施例中,访问控制列表被配置为使得只有与特定数据库服务相同的租户相关联的虚拟机可以与特定数据库服务建立连接并与其通信。来自未授权虚拟机的所有连接请求都被拒绝。如下所述,可以在连接的生命周期中的各个阶段执行访问控制。

图3图示根据本发明实施例的、在由交换联网结构(诸如,infiniband结构206)连接到中间件机器系统220的计算节点的数据库服务器系统240的数据库节点中的访问控制。图3示出了访问控制系统的元件的更详细的视图,该系统克服了由常规使用中间防火墙设备所出现的缺点,同时提供了在多租户环境中确保数据的安全性的安全性解决方案。为了简单起见,图3示出了由infiniband结构206连接的一个计算节点320和一个数据库节点360的特征。在计算节点320上示出一个虚拟机331。但是,典型的系统将包括许多类似的计算节点、虚拟机和由infiniband结构206连接的数据库节点。

如图3所示,计算节点320包括主机通道适配器(hca)326;cpu328,其可以包括一个或多个微处理器,每个微处理器具有一个或多个核;以及存储器ram329,其可以包括四个或更多个千兆字节的存储器。计算节点320托管应用层330中的一个或多个应用。这些应用中的一个或多个的实例将在虚拟机中运行,其中每个虚拟机与唯一vmid相关联。示出了单个虚拟机vm331,但是在单个计算节点320上可以操作多个虚拟机。多个应用可以在相同的虚拟机中运行或者在计算节点上的不同虚拟机中运行。应用可以包括例如使用oci客户端333使用call接口与数据库通信的一个或多个oci应用332。应用可以包括使用jdbc客户端335使用java数据库连接与数据库通信的一个或多个jdbc应用334。

在使用附连到托管应用层中的应用实例的每个虚拟机的虚拟功能(vf)时,oci客户端333和jdbc客户端335可以使用单根i/o虚拟化(singlerooti/ovirtualization,sr-iov)技术经由直接访问栈340和hca326使用远程直接存储器访问(rdma)来发送和接收数据。如图3所示,hca326的虚拟功能(vf)321被附连到vm331。数据可以直接发送到与应用层的特定虚拟机相关联的存储器以及从该存储器发送。开放式结构企业分布(openfabricenterprisedistribution,ofed)栈342提供用于rdma交换结构(在这种情况下是infiniband结构206)的连接控制。

单根和多根io虚拟化技术在由pci-sig公布的标准规范中定义。附连到虚拟机的虚拟功能、rdma和单根i/o虚拟化(sr-iov)技术的某些方面在例如于2013年3月15日提交的、申请号为13/838121、标题为“systemandmethodforsupportinglivemigrationofvirtualmachinesinavirtualizationenvironment”的美国专利申请;和于2013年3月15日提交的、申请号为13/838275、标题为“systemandmethodforsupportinglivemigrationofvirtualmachinesbasedontheextendedhostchanneladapter(hca)model”的美国专利申请;以及于2013年3月15日提交的、申请号为13/837922、标题为“systemandmethodforsupportinglivemigrationofvirtualmachinesinaninfinibandnetwork”的美国专利申请中描述,这些申请通过引用被结合于此。

sr-iov技术的优点是虚拟机被授权经由pcie虚拟功能(pcievf)的直接硬件访问。这提供了与物理部署相同的性能,并支持提供具有vm数量的线性性能可扩展性的用户级联网和rdma。因此,需要sr-iov充分使用高速互连(诸如,infiniband结构)。但是,与软件i/o虚拟化技术(诸如,半虚拟化)不同,sr-iov没有中间软件控制对vm的访问。因此,在vm联网栈是非信任的情况下,没有可信的软件中介来拦截和过滤网络流量。因此,为了在提供访问控制的同时充分使用sr-iov技术,安全vm标识符(vmid)变得在网络上可见,并且如本文所述由外部实体或服务提供商(数据库)调解(mediate)访问控制。如图3所示,数据库节点360包括主机通道适配器(hca)366、cpu368和存储器-ram369,cpu368可以包括一个或多个微处理器,每个微处理器具有一个或多个核,存储器-ram369可以包括四个或更多个千兆字节存储器。数据库节点360托管应用层370中的一个或多个数据库进程。数据库进程可以包括例如一个或多个oci服务器应用372,其使用callinterface(调用接口)与计算节点上的虚拟机通信。应用层370还可以托管多个数据库进程实例(示出了三个)pdb374a、374b、374c。oci服务器应用可以使用单根i/o虚拟化(sr-iov)技术经由直接访问栈376和hca366使用远程直接存储器访问(rdma)来发送和接收数据。数据可以直接发送到与应用层的特定虚拟机相关联的存储器以及从存储器发送。开放式结构企业分布(ofed)栈377提供用于rdma交换结构(在这种情况下是infiniband结构206)的连接控制。在本发明的实施例中,可以在数据库节点的各种组件中基于访问控制列表实现访问控制,各种组件包括例如ofed栈377、hca366和os栈378。

infiniband结构206包括多个交换机216(示出了一个),计算节点320的hca326和数据库节点360的hca366(除了未示出的多个其它计算节点和数据库节点之外的多个hca以外)连接到该多个交换机216。infiniband(缩写为ib)是在高性能计算中使用的计算机联网通信标准,具有非常高的吞吐量和非常低的延迟的特征。它用于计算机之间和计算机内的数据互连。infiniband用作服务器和存储系统之间以及存储系统之间的直接或交换互连。infiniband使用交换结构拓扑,而不是共享介质技术,诸如,以太网。所有传输在hca处开始或结束。在图3的系统中,hca366在没有任何中间防火墙设备或节点的情况下由infiniband结构206通过交换机216连接到hca326。

infiniband结构206实现一个或多个子网管理器214,其负责infiniband结构206的配置,以及在ib连接建立的过程中使用的路由解析。子网管理器214还通过安全子网管理分组(smp)配置附连到子网的hca366、326。在本发明的实施例中,子网管理器214可以用来使用与和特定虚拟机相关联的特定虚拟功能相关联的虚拟机标识符(vmid)安全地配置子网中的hca。如图3所示,例如,vmid322与附连到虚拟机331的hca326的虚拟功能321相关联。

子网管理器214还可以用来安全地配置子网中的hca,使得在计算节点上的虚拟机和数据库节点之间传输的每个通信分组包括全局路由报头(grh),其包括源全局标识符(sgid),该源全局标识符包括与和特定虚拟机相关联的特定虚拟功能相关联的虚拟机标识符(vmid)。如图3所示,例如,在计算节点320的虚拟机331和数据库节点之间传输的每个通信分组包括全局路由报头(grh),其包括源全局标识符(sgid),该源全局标识符包括与附连到虚拟机331的vf321相关联的vmid322。因此,vmid与虚拟机的关联以及在通信分组中包括sgid处于子网管理器214和hca的安全控制之下,并且不能被计算节点320或计算节点上的vm伪造或破坏。因此,即使对计算节点具有根访问权的用户或应用也将不能更改包括在分组报头中的vmid和sgid或者使用未授权的vmid/sgid。

在实施例中,每个数据库节点360的ofed栈377和hca366基于一个或多个访问控制列表(acl)375a、375b来实现访问控制。访问控制使用嵌入在infiniband分组中的sgid来识别与分组相关联的虚拟机。ofed栈377和hca366基于一个或多个访问控制列表(acl)375a、375b来实现访问控制,以便除非被适当的acl授权,否则防止在计算节点中的虚拟机和数据库进程之间建立连接和传输数据。但是,注意的是,如果在授权的虚拟机和数据库进程之间做出连接和允许通信,则该连接在无需中间防火墙设备(诸如例如以太网防火墙390)的情况下允许在计算节点320上的oci客户端333实例和oci服务器372以及数据库节点360之间通过infiniband的完全直接rdma。一旦被访问控制逻辑和硬件授权,vm就被授权对数据库服务的直接硬件访问(经由pcievf),其具有与物理部署相同的性能,使用支持用户级联网和rdma的连接无需任何中间软件来控制对vm的访问,从而导致具有vm数量的线性性能可扩展性并充分使用与由数据库节点的hca硬件实行的数据交换访问的高速infiniband互连。

计算节点320上的应用还可以包括不使用jdbc或oci的一个或多个其它应用336,因此被排除使用用于rdma的直接访问栈340而是使用套接字337来通过以太网与数据库通信。套接字337经由os栈344耦合到infiniband上以太网(eoib)适配器346。以太网分组使用eoib发送到网关306,网关306通过infiniband结构206外部的以太网网络重新传输分组。以太网通信在到达数据库节点360之前经过常规的以太网防火墙设备390。在数据库节点360处,使用网络接口卡(nic)367从以太网防火墙设备390接收以太网通信,并且以太网通信经由os栈378传输到套接字379。应当注意的是,这个连接路径特征在于在若干方面具有较高的开销,包括在读/写套接字379中的处理器开销、os栈开销、以及在通信路径中包括网关306和以太网防火墙390。

图4a-4c示出了用于在从中间件机器系统的计算节点上的虚拟机发送到数据库服务器系统的数据库节点的通信分组的报头中安全地嵌入源标识符(sgid)的系统和方法的各方面。图4a示出了在安全子网管理器的控制下使用主机通道适配器硬件在infiniband分组的报头的sgid中嵌入虚拟机标识符(vmid)。如图4a所示,交换机216实现子网管理器214,其负责infiniband结构206的配置以及在ib连接建立的过程中使用的路由解析。子网管理器214还通过可以在带内发送的安全子网管理分组(smp)来配置附连到子网的所有hca。

在本发明的实施例中,使用子网管理器214来使用与和特定虚拟机相关联的特定虚拟功能相关联的虚拟机标识符(vmid)安全地配置子网中的所有hca。每个子网管理器214使用子网管理分组来配置存储在hca326的安全存储器中的端口全局唯一标识符(guid)表400。在连接到子网的每个hca中配置不同的端口guid表。端口guid表400在hca326中使用,以将每个虚拟功能(vf)并因此每个虚拟机与由子网管理器214建立的guid相关联用于用作vmid。因此,vmid与虚拟机的关联在子网管理器的安全控制之下,并且不能被虚拟机伪造或破坏。

子网管理器214还配置数据库访问分区,使得hca326在由hca326向数据库节点传输的每个infiniband分组402a、402b、402c中的全局路由报头(globalroutingheading,grh)中包括guid。在实施例中,子网管理器214指导软件栈在计算节点上的虚拟机和数据库节点之间的连接上使用grh。当为连接指定grh时,硬件(例如hca326)将在通过连接发送的所有分组中包括grh。vmid被包括在全局路由报头中作为grh.sgid,其是附连的vf的guid(vmid)和子网前缀的级联。当infiniband分组在单个子网内的端点之间传输时,grh通常不在infiniband分组中传输。子网管理器214确保由hca326向数据库节点传输的每个infiniband分组包括grh的一种方式是将所有数据库节点识别为与计算节点分离的子网的一部分,然后hca将通过infiniband根据用于在不同子网之间通信的标准协议在所有infiniband分组中包括grh。可替代地,子网管理器214可以指定策略的改变,其要求即使在相同子网内也要在所有infiniband分组中传输grh。

在实施例中,子网管理分区命令被扩展为包括grh标志。grh标志由子网管理器214在分区创建时配置。当用于连接的路径解析指定数据库访问分区204(参见图2)时,grh标志要求在每个infiniband分组中包含grh。注意的是,访问控制功能可以应用到某些网络接口,例如数据库访问分区204,并且不应用到其它网络接口,例如存储访问分区202。因此,由于不需要包含grh,因此不需要在存储访问分区202中设置grh标志。在实施例中,子网管理器214将用于数据库访问分区204的路径解析管理数据报的hoplimit属性设置为大于1的值,以便激发包含grh。通过将hoplimit属性设置为大于1,子网管理器214创建数据库节点和计算节点属于不同子网的错觉,从而触发在通过数据库访问分区从计算节点的虚拟机发送到数据库节点的每个infiniband分组中包含grh。

图4b示出了使用infiniband(ib)寻址来访问网络环境中的数据服务的infiniband分组402。如图4b所示,ib分组402包括有效载荷406和根据ib协议的各种报头,包括本地路由报头(lrh)408和其它报头410、412。交换机使用本地路由报头(lrh)将分组跨子网移动到其目的地端节点网络端口。它包含源和目的地本地标识符(lid)、链路协议版本id、服务级别、虚拟通道(lane)、分组长度、以及用来指示存在哪些可选字段的“下一报头”字段。此外,ib分组402可以包括用来确保ib分组的完整性的不变体icrc14、变体vcrc416。如上所述,子网管理器214配置子网和/或hca,使得在数据库访问分区204中传输的每个ib分组402的报头还包括全局路由报头(grh)404。grh404由hca326的硬件嵌入到每个ib分组中。vmid被包括在grh报头中作为grh.sgid,它是附连的vf的guid(vmid)和子网前缀的级联。

图4c示出了全局路由报头(grh)404的元素。grh通常被路由器使用来在不同子网之间移动分组。在本发明的实施例中,它用来确保ib分组的源的guid被嵌入在每个分组中,使得虚拟机可以被识别。如图4c所示,grh404包括源guid440和目的地guid442。grh404还包括路由版本id、有效载荷长度、ip版本、流量类别和跳跃限制。如图4c所示,源guid440由hca326的硬件基于存储在hca326中的端口guid表400嵌入在ib分组402的grh404中。如前所述,端口guid表400由子网管理器214安全地配置。因此,每个infiniband分组包括唯一识别与分组相关联的虚拟机的源guid440。源guid440由hca326的硬件在子网管理器214的控制下实现,并且不能被它托管的虚拟机的计算节点修改。vmid被包括在sgid中,因为grh.sgid是附连的vf的guid(vmid)和子网前缀的级联。计算节点上的虚拟机因此不能使用未被子网管理器214指派给它的任何源guid。

管理栈

管理栈210(参见图2)编排虚拟机的部署,并且使用访问控制列表(acl)来管理从那些vm到数据库服务器系统240的特定数据库服务的访问。acl表包含控制任何中间件机器系统vm对每个特定数据库服务的访问所需的所有信息。虚拟机不知道与数据库节点的通信是被访问控制的,因为所有访问控制由在数据库节点上运行的软件和硬件执行,并且因此对中间件机器系统220的计算节点上的虚拟机是透明的。

图5a示出了访问控制列表(acl)524。如图5a所示,acl524具有用于每个命名数据库服务的行—svcname1-n。对于每个命名服务,acl524指示哪些虚拟机(由vmid识别)被允许访问命名服务。acl524允许命名服务到vmid权限的完整粒度,并且如图5b所示被填充。在实施例中,acl被配置为使得与特定租户相关联的vm只能在多租户环境中访问与相同租户相关联的命名数据库服务。但是,acl524允许命名服务到vmid权限的完全粒度,因此acl可以被配置为使得一些数据库服务可以被共享并且因此由与两个或更多个租户相关联的vm访问。逻辑上,数据库acl表可以被布置为如下:行表示具有其当前指派的vmid的各个vm;并且列表示允许由特定vm访问的数据库服务的名称。

数据库acl表是专门为本文所述的访问控制系统创建的数据库表。pl/sql包向管理栈210提供在不暴露实际表实现的内部细节的情况下允许管理该表的api。只有管理栈210将更新数据库acl表。可以创建专用数据库服务来访问数据库acl表。用来访问数据库acl表的数据库服务的名称应该对管理栈210是已知的,并且取决于使用的管理栈部署选项经由api或配置文件来提供。管理栈210可以使用专用管理数据库访问分区来访问数据库acl表,优选地使用tcp上的sql。对管理数据库访问分区的访问仅限于管理栈210。

数据库监听器546(参见图5b)用来为管理栈提供对部署在数据库服务器系统上的所有数据库上的数据库acl表的访问。数据库监听器的数量及其坐标作为配置属性提供给管理栈210。管理栈与在其中一个数据库节点上运行的pl/sql过程进行通信。数据库服务器系统负责将数据库acl表更新传播到所有数据库节点、所有db监听器546以及在那些节点上运行的ipoib驱动器526(参见图5b)。

系统管理员可以配置部署在中间件机器系统计算节点上的vm具有对一个或多个数据库服务的访问。数据库服务应当与vm部署在其中的相同租户相关联,并且管理栈210实行该限制。管理栈210将vmid到(一个或多个)数据库服务的关联保持在本地数据库或配置中。此外,管理栈210能够使用该信息来构建/重建数据库acl表。

在acl中,基于vm的唯一vmid和给定的数据库服务名称,每个vm与该vm被授权访问的数据库服务相关联。管理栈负责跟踪vm和vmid的关联,并贯穿vm生命周期适当地更新数据库acl表。在vm部署时,携带vmuuid的新条目由管理栈添加到数据库acl表中。该条目最终将使用vmid和一个或多个数据库服务名称进行更新。在随后的vm生命周期操作期间,可以用指派给该vm的新vmid或用被授权或撤消访问的(一个或多个)新数据库服务来更新条目。vf被热插拔式附连到引导vm,并且每次给定vm被启动时,不同的vf可以被附连,并且因此导致不同vmid用于给定vm。vmid中的这个变化要求管理栈将vmid更新到acl中的数据库服务关联。该vm条目将保留在数据库acl表中,直到vm被销毁。如果vm试图在管理栈完成数据库acl表的更新并且更新被传播到所有数据库节点、以及监听器和ipoib驱动器之前访问数据库,则vm可能被拒绝访问直到更新完成之后。

图5b示出了与图5a的acl524交互的数据库服务。如图5b所示,在步骤530,数据库管理员(dba)212访问数据库管理系统服务(dbms)512来配置命名数据库服务。在步骤531,dbms服务将命名数据库服务添加到数据库服务表(dbst)522。在步骤532,管理栈210使用acl服务514从dbst522检索名称服务的列表。在步骤534,管理栈210将新命名数据库服务添加到acl524。在步骤535,管理栈210为acl524中的新命名数据库服务设置vmid权限。在步骤537,管理栈210提交事务,从而将新命名数据库服务添加到acl524。在提交对acl524的修改之后,在步骤538,修改的acl524经由监听器注册(lreg)进程515被推出(pushout)到所有数据库实例。因此,所有数据库实例具有acl524的最新版本。lreg515更新每个数据库实例506中的acl表。每个数据库实例接收列出为特定服务授权的所有vmid的服务vmid列表516。lreg515还将acl524推送到数据库监听器546。提供给数据库监听器546的acl525识别节点上的数据库服务和为那些服务授权的vmid。lreg515还使用sysfs/ioctl接口用节点acl536来更新ipoib驱动器526,该节点acl536包括(通过vmid)被授权访问特定节点的所有vm的列表。

图5c示出了访问控制系统的管理。集成系统200涉及多个组件,这些组件被配置、协调和管理,以便实现在本文所公开的用于在多租户环境中提供用于安全网络通信的集成防火墙的系统和方法。存在可替代的部署模型,每个模型提供特定于那个部署的管理解决方案。图5c示出了访问控制解决方案的高层管理模型和在配置集成系统200以实现访问控制解决方案中涉及的高层管理步骤。

如图5c所示,在步骤561和562,使用在子网管理器分区表555中设置的grh标志创建数据库访问分区204(参见图2)。该grh标志由子网管理器214使用,以指示计算节点上的虚拟机和数据库节点之间的所有路径必须配置有全局路由报头(grh)。该操作作为将部署在计算节点上的虚拟机连接到数据库节点的infiniband结构206的设置的一部分来执行。在步骤563、564和565,管理栈210检索当前数据库配置(为数据库配置的服务名称列表),并且创建服务名称和授权的vm/租户之间的关联,并且将该关联保持在管理栈数据库内的安全性关联映射555中。数据库服务名称跨所有部署的数据库应该是唯一的,并且在配置系统的这一步骤管理栈210负责识别任何数据库错误配置或重复服务名称。

在步骤566、567、568,当vm实例化时,管理栈210将每个vm与其vmid相关联并将vmid与和在步骤565中建立的特定授权租户相关联的一个或多个服务名称相关联、选择计算节点(例如320)用于vm部署、并且在所选择的计算节点上部署vm(例如vm221a)。虚拟功能vf在实例化时被指派并附连到vm,并且从vm221a部署到其的计算节点320的hca326的端口guid表400获得那个vm的标识符(vfguid)。在步骤569、570,管理栈210使用从步骤569建立的服务名称和vmid的关联来更新数据库acl524。在更新数据库acl表时,信息被传播到数据库节点(例如数据库节点360),并且在每个节点内传播到每个节点上的数据库监听器和ipoib驱动器,如图5b所示。数据库管理员212可以以正常的方式配置数据库节点上的数据库服务。

注意的是,多个vm可以被授权访问每个特定数据库服务,并且单个vm可以被授权访问多个数据库服务。授权的访问是按照acl表的完全粒度,并且如果需要访问可以被配置为将与特定租户相关联的vm与和其他租户相关联的数据库服务隔离,或者如果对于特定服务是必要的或所期望的访问可以被配置为在不同租户的vm之间共享特定数据库服务。系统管理员211将数据库服务名称映射到多租户环境中的不同租户。

负责安全性系统的配置的管理栈210可以在中间件机器系统220的计算节点上运行,并且使用infiniband结构206用于与数据库节点的通信,以便检索数据库服务配置信息和编程所需的数据库acl表。管理栈可以使用专用数据库管理访问分区用于这一目的。对该分区的访问将仅被授权给管理栈,因此数据库节点上的这个联网接口不必由本文所述的安全性措施保护。管理栈210使用由在数据库节点上运行并可通过tcp访问的pl/sql过程提供的api。这些过程被增强以允许对数据库acl表的访问和控制仅通过与数据库管理访问分区相关联的联网接口来执行。在替代实施例中,管理栈可以部署在数据库服务器系统260上或使用以太网与数据库节点通信,标准以太网安全性机制将被用来确保管理栈210和数据库节点之间的安全通信。

访问控制

如上所述,vmid作为grh.sgid的一部分被嵌入在数据库访问分区中传输的每个分组中,并且识别发起分组的vm。访问控制列表指定哪些vm可以访问哪些服务。然后在数据库节点中使用在每个分组的grh.sgid中提供的vmid和acl实现访问控制。可以利用acl524和子表(诸如服务vmid列表516和节点acl536)在计算节点虚拟机和数据库服务之间的连接的生命周期中的几个不同阶段(包括地址解析、路径解析、连接建立和数据交换)提供访问控制。应当注意的是,对于上述系统,下面描述的访问控制措施仅需要在用于数据库节点和计算节点上的vm之间的通信的联网接口(即用于数据库访问分区的网络接口)上执行。这些访问控制措施不需要被应用到用于数据库节点和存储单元之间的通信的网络接口(即用于存储访问分区的网络接口)。这些访问控制措施也不需要应用到用于计算节点上的vm和其它计算节点上的vm之间的通信的网络接口。

访问控制的粒度取决于连接生命周期阶段而变化。在地址解析和路径解析阶段期间,系统可以基于节点acl536控制对特定数据库节点的访问。即,虚拟机可以被提供仅用于提供该虚拟机被授权访问的一个或多个数据库服务的数据库节点的地址和路径信息。在连接建立和数据交换阶段期间,系统基于acl524和/或服务vmid列表516控制vm和特定命名数据库服务之间的访问和数据传送。

地址解析访问控制

在数据库节点中实现的用于在虚拟机和数据库服务之间的连接的生命周期的阶段提供访问控制的一种机制是地址解析访问控制。地址解析协议(arp)通信由vm使用,作为用于连接到提供特定命名数据库服务的数据库节点的进程的初始部分。arp用来将ip地址解析为硬件地址(以太网情况下的mac地址,或由ipoib标准定义的20字节的ipoib硬件地址)。使用ipoib通信在数据库节点和计算节点上部署的vm之间交换arp通信。vm从计算节点发出组播arp请求,并且数据库节点发回单播arp响应(如果允许)。在数据库节点和vm之间交换的组播请求和单播响应两者需要携带全局路由报头(grh),并且因此通过在grh.sgid中提供vmid来识别vm。

通过将来自传入地址解析协议(arp)请求的grh.sgid的vmid与识别被授权访问数据库节点的vm的为特定数据库节点编程的节点acl536进行匹配来执行地址解析访问控制。如上所述,使用用于特定ipoib联网接口的sysfs/ioctl接口,节点acl536被提供给每个数据库节点上的ipoib驱动器526。vmid可以被添加到节点acl或从其删除。因此,每个数据库节点的ipoib驱动器被配置有允许通过特定联网接口对数据库节点访问的vm的vmid列表。ipoib驱动器526可以使用节点acl通过拒绝向未被授权访问数据库节点的vm提供arp响应来执行访问控制。换句话说,除非grh.sgid包括节点acl中的vmid,否则ipoib驱动器526不响应arp请求。

在从vm接收到arp请求时,数据库节点的ipoib驱动器526检查请求以验证grh在分组中存在-如果没有grh,则丢弃该请求并且不作出响应。接下来,数据库节点的ipoib驱动器526将每个入站(inbound)arp请求/响应的grh中的sgid与节点acl进行匹配-如果没有匹配,则丢弃该请求并且不作出响应。接下来,数据库节点的ipoib驱动器526将每个入站arp请求/响应的grh中的sgid与来自arp请求/响应主体的源硬件地址的低128位匹配,如果没有匹配,则丢弃该请求并且不作出响应。最后的检查旨在确保编程到arp高速缓存中的硬件地址携带对应vm的有效sgid,并且可以用于识别由vm创建的套接字。只有当grh存在、并且sgid与节点acl536和来自arp请求/响应主体的源硬件地址的低128位匹配时,arp响应才被发送回到计算节点上的虚拟机。

因此,acl将对地址解析信息的访问控制到仅由节点acl536中的sgid所识别的那些vm。因此,vm不能从它们未被授权访问的数据库节点接收地址解析信息。因此,数据库节点(以及它们提供的数据库服务)对于根据节点acl536未被授权访问它们的vm是有效地“不可见的”。

连接建立访问控制

在数据库节点中实现的用于在虚拟机和数据库服务之间的连接的生命周期的阶段提供访问控制的另一种机制是连接建立访问控制。当vm已经定位它希望连接到的数据库服务时,它将试图建立与该数据库服务的连接。数据库节点使用由为rdma和内核旁路应用提供开源软件栈的开放式结构企业分布(ofed)提供的信息来执行连接建立访问控制。在实施例中,系统被配置为使得计算节点上的虚拟机和数据库节点之间的所有通信(除了用于控制操作的tcp套接字和arp流量之外)被限制到通过infiniband可靠连接传输的通信,其中分组包含grh报头。通过确认连接请求确实携带grh报头并且grh.sgid识别与如由访问控制列表所指示的被授权访问特定命名数据库进程的vm对应的vmid来执行连接建立访问控制。

图6示出了连接建立访问控制的各方面。连接管理器(连接管理器代理)实现如由infiniband规范定义的infiniband连接建立协议。使用携带连接建立所需的信息的连接管理数据报(mad)来执行连接建立。如上所述,在本发明的实施例中,数据库服务器系统和中间件机器系统之间的路径上的连接管理数据报(mad)需要携带grh报头。在数据库节点360上运行的连接管理代理(cma)622在连接建立期间执行以下过滤操作。当cma622接收到cmamad626时,它验证在mad中存在grh,并且如果不存在,则丢弃该cmamad而不响应。可选地,cma622可以验证替代路径在cmamad626中无效–替代路径管理(apm)优选地被禁止-如果apm被指定,则该cmamad可以可选地被丢弃而不响应。接下来cma622将来自cmamad的grh的sgid与来自cmamad626的主体的主路径sgid进行匹配-如果存在不匹配,则丢弃连接管理mad而不响应。cma的这些步骤验证在连接建立事件中提供给上层(应用或ipoib)的远程地址包含与远程vm对应的有效sgid,使得该sgid可以被上层使用,用于访问控制验证。

连接管理代理(cma)可以被增强,以执行类似于用于arp的ipoib驱动器的附加的节点级访问控制。例如,cma可以被增强,使得它不将事件向上推送到数据库节点中的应用级,除非与mad相关联的grh.sgid与被授权访问数据库节点的vm匹配。向cma添加节点有界的acl能力对于通过将攻击预防推到尽可能靠近节点边界来处理dos攻击以及避免向应用级提供拒绝的mad的开销尤其有用。

但是,在一些实施例中,连接管理代理(cma)622不验证特定vm对特定数据库服务的访问控制,依赖于应用层610中的数据库进程来执行该检查(例如,图5b的db实例506和/或db监听器546)。cma使用事件通知机制来向应用层指示连接建立状态机中的应用转换。应用层610中的数据库进程可以经由分配给该连接的cma_id(包括请求连接的vm的sgid/vmid)获得(通过订阅相关事件)关于远程对等体的信息。例如,上层协议(db实例506、db监听器546、ipoib或其它应用)可以基于细粒度应用层acl524使用在连接建立事件的远程地址结构中提供的sgid/vmid来验证访问控制,从而基于acl524接受或拒绝连接。

应用层消费来自ofed栈的事件。应用层使用ofed事件通知机制来建立ib连接。应用层如上所述在连接建立流程期间获得用于特定连接的vm的vmid。然后,应用层中的数据库进程610使用获得的vmid来实行对个体连接的访问控制。应用层确定何时以及如何使用由cma层在cma-id中提供的vm身份(从grh.sgid获得的vmid)来控制对特定数据库服务的访问。

除了vmid之外,应用层还需要数据库服务名称,以便识别特定计算节点vm正在试图获得对哪个数据库服务的访问。如果该信息在连接建立时不可用,则应用可以存储vm身份(从grh.sgid获得的vmid)、进行初始连接、并且然后一旦数据库服务名称变得可用,则使用vm身份来验证访问权限(如果权限被拒绝,则丢弃连接)。ofed栈和应用层之间的接口允许应用层识别连接的特定端点,并且在接收到数据库服务名称之后基于访问控制确定来终止与特定端点的连接性。因此,应用可以决定初始地接受连接,并在以后的阶段终止它。这允许应用层不依赖于数据库服务名称在连接建立之前可用,并且将其作为初始数据交换的一部分获得。

如图6所示,如果应用层中的数据库进程610接受连接,则该接受被传递到infiniband连接管理/连接管理代理(ibcm/cma)驱动器622。ibcm/cma驱动器622负责创建与连接相关联的硬件队列对(qp)上下文624。硬件qp上下文被保存在系统存储器中,其中相对较少数量的硬件qp上下文高速缓存在hca存储器的hwqp上下文高速缓存634中。对于到计算节点vm的连接,硬件qp上下文624包括属性,其包含指示必须在特定连接上使用grh的标志,以及与该连接相关联的特定vm的vmid/sgid值。

在vm未被授权连接到在cammad中所请求的数据库服务的情况下,应用防止连接上下文的创建和/或破坏临时连接上下文。因此,使用acl,在数据库节点中实现的连接建立访问控制可以拒绝到未授权的vm的连接,从而防止连接并且因此防止vm与按照acl其未被授权访问的数据库服务之间的通信。

数据交换访问控制

在数据库节点中实现的用于在虚拟机和数据库服务之间的连接的生命周期的阶段提供访问控制的其他机制是数据交换访问控制。数据交换访问控制基于在连接建立阶段期间编程的硬件队列对(qp)上下文624。如上所述,如图6所示,硬件qp上下文被保存在系统存储器中,其中相对较少数量的硬件qp上下文高速缓存在hca存储器的hwqp上下文高速缓存634中。对于到计算节点vm的连接,硬件qp上下文624包括属性,其包含指示必须在特定连接上使用grh的标志,以及与该连接相关联的特定vm的sgid值。数据交换访问控制验证通过连接接收到的每个分组都包含指定的grh.sgid,并且因此来自被授权使用连接的vm。不符合的分组被丢弃。这允许hca硬件对通过连接传输的所有数据分组执行数据交换访问控制。

符合infiniband规范的hca必须验证在那个连接上交换的每个单个分组都携带grh报头,并且进入分组的grh.sgid与在硬件qp上下文中指定的远程对等体gid匹配。此外,所有序列号检查和协议检查也将由硬件执行(类似于用于tcp套接字的tcp标志和序列号验证)。这些要求的实行确保hca硬件对特定连接上的vm和数据库服务之间的数据传输的即时访问控制验证,而对所执行的infiniband操作(包括rdma操作)没有任何约束,并且没有任何性能影响。

如图6所示,hca366检查每个infiniband分组402,并且除其它之外确保grh404中的sgid匹配与和连接相关联的硬件qp上下文相关联的sgid。所有不符合的分组被丢弃。但是,一旦被验证,符合的分组就被剥去报头,并且数据/有效载荷406被直接放置在与连接相关联的应用缓冲区中。因此,即使在建立连接之后,数据库节点上的hca的硬件也对每个分组执行数据交换访问控制,以确保它来自被授权经由特定连接访问特定数据库服务的vm。

ipoib访问控制

在数据库节点中实现的用于在虚拟机和数据库服务之间的连接的生命周期的阶段提供访问控制的另一种机制是ipoib访问控制。对于由数据库监听器546使用的特定tcp端口的tcp套接字流量启动受限访问。但是,数据库节点中的os栈ip过滤器被配置为排除未授权的流量。ipoib可以被配置为用于连接模式或数据报模式。ipoib通信通道的每一侧被独立配置(即,一侧可以被配置为连接模式,并且另一侧被配置为数据报模式)。在本发明的实施例中,通过ipoib的所有通信仅限于连接模式。这通过配置数据库节点的ipoib驱动器实行由远程对等体(诸如计算节点上的vm)使用连接模式来实现。

ipoib在接收到分组时执行以下检查来保证通信仅使用连接模式。通过数据报qp的通信应该仅限于arp分组-所有其它分组被丢弃。ipoib仅与数据库节点acl表中列出的vm建立连接。连接管理代理(cma)向ipoib提供关于建立这个连接的远程对等体的地址信息。在其它地址属性中,cma将提供如连接建立访问控制部分中所述的对等体(vm)的sgid。当处理连接建立事件时,ipoib驱动器应当执行以下检查。从cma事件获得远程端点地址信息。从cma事件中提供的地址信息中检索vm的sgid。将vm的sgid与acl列表条目匹配,并且如果vm的sgid与acl列表条目不匹配,则丢弃连接建立事件。结合数据库监听器546验证试图创建数据库进程连接的vm被允许访问特定数据库服务,这提供了增强的安全性,从而允许与数据库监听器546通信的vm的肯定识别。

拒绝服务(dos)攻击预防

针对dos攻击的保护是由常规以太网防火墙设备提供的标准特征之一。在dos攻击中,多个消息被发送到接口。即使消息被拒绝,与拒绝消息相关联的消息和开销的绝对数量也淹没接口的资源,使得它不能用于合法流量。dos攻击不一定代表恶意行为人,并且可能由例如错误配置的软件或导致重复消息的软件或硬件中的错误引起。本发明的系统和方法提供如上所述的多租户感知、细粒度数据库感知访问控制。但是,由于访问控制由数据库节点的软件和硬件执行,因此系统不能使用标准过滤技术来解决dos问题。在数据库节点可以检测到攻击时,它已经受到攻击,并且必须花费至少一些资源来拒绝消息。如上所述,通过将消息控制/拒绝推到靠近节点的边缘可以减少所消耗的量或资源。但是,还将期望提供其它dos攻击预防功能。

不是试图遵循传统的基于防火墙的过滤方法,本发明的实施例可以充分使用为解决dos问题而完全工程化和高度集成的解决方案。当负责访问控制的组件检测到vm重复试图连接到其未被授权访问的数据库服务时,集成系统的组件可以采取行动来修复和记录非法访问(accessviolation)。例如,当数据库监听器546检测到重复的非法访问时,它执行以下动作。数据库监听器546记录非法访问。数据库监听器546更新处理栈中位于较低的其它组件(例如ib连接管理栈或ipoib驱动器)的访问控制过滤器,因此可以在更靠近数据库节点边界的较低级别上停止连续攻击,并且因此导致对数据库节点操作更少的干扰。数据库监听器546还通知管理栈210并提供关于攻击的信息,包括grh.sgid,其包括识别是攻击的源的vm的vmid。

系统使用由计算节点的hca嵌入到每个分组的grh.sdid中的vmid来提供虚拟机的可靠识别。因此,根据与攻击分组相关联的grh-sgid,攻击者vm的身份对于管理栈210是已知的。管理栈可以采取一个或多个动作来停止攻击。例如,管理栈可以撤销侵犯vm对数据库访问分区204的访问,从而防止该vm向数据库节点发送任何其它分组。此外,例如,取决于管理栈的配置或系统管理员所采取的动作,管理栈可以来采取动作终止vm的操作。以这种方式,可以防止dos分组到达数据库节点,或者可以停用dos分组的源,从而在没有标准分组过滤防火墙设备的情况下实现dos保护功能。

根据本发明的实施例,提供了一种用于在多租户环境中提供网络安全性的服务器。这种实施例的服务器可以是先前实施例中描述的任何服务器,例如,数据库服务器系统240。此外,服务器及其组件可以基于如先前实施例中描述的本发明的原理执行任何适当的操作。

在本实施例的例子中,服务器可以包括用于接收访问控制列表的第一接收单元,其中访问控制列表可以识别多个数据库服务,并且为多个数据库服务中的每一个识别与被允许访问多个数据库服务中的每一个的一个或多个数据库服务消费者相关联的一个或多个数据库服务消费者身份。同时,服务器可以包括第二接收单元,用于接收通过将多个服务器与多个应用服务器直接连接的基于连接的交换结构传输的多个通信分组。此外,服务器可以包括第一执行单元,用于对多个通信分组中的每个特定通信分组执行以下步骤:如果特定通信分组不包括任何数据库服务消费者身份,则丢弃该特定通信分组;如果特定通信分组确实包括数据库服务消费者身份,则使用包括在特定通信分组中的特定数据库消费者身份来识别发送特定通信分组的特定服务消费者,以及结合包括在特定通信分组中的特定数据库消费者身份使用访问控制列表来防止特定数据库消费者对多个数据库服务中的特定数据库服务的访问,除非访问控制列表将特定数据库服务消费者识别为被允许访问特定数据库服务。

在本实施例的例子中,特定通信分组可以是地址解析协议(arp)请求。第一执行单元可以包括第一确定单元,用于确定访问控制列表是否将特定数据库服务消费者识别为被授权访问由服务器提供的多个数据库服务中的任何一个。此外,第一执行单元可以包括第一丢弃单元,用于如果访问控制列表没有将特定数据库服务消费者识别为被授权访问由服务器提供的多个数据库服务中的任何一个,则丢弃arp请求而不传输arp响应。

在本实施例的例子中,特定通信分组是连接建立请求。第一执行单元可以包括第二确定单元,用于确定访问控制列表是否将特定数据库服务消费者识别为被授权访问由服务器提供的多个数据库服务中的任何一个。此外,第一执行单元可以包括第二丢弃单元,用于如果访问控制列表没有将特定数据库服务消费者识别为被授权访问由服务器提供的多个数据库服务中的任何一个,则丢弃连接建立请求而不建立连接。

在本实施例的例子中,特定通信分组是连接建立请求。第一执行单元可以包括第三确定单元,用于确定连接建立请求正在请求对哪个特定数据库服务进行连接。此外,第一执行单元可以包括防止单元,用于如果访问控制列表没有将特定数据库服务消费者识别为被授权访问特定数据库服务,则防止响应于连接建立请求而建立到特定数据库服务的连接。

在本实施例的例子中,特定通信分组是连接建立请求。第一执行单元可以包括创建单元,用于响应于连接建立请求而创建连接。此外,第一执行单元可以包括第三接收单元,用于通过连接接收旨在由特定数据库服务消费者通过连接访问的特定数据库服务的标识。此外,如果访问控制列表没有将特定数据库服务消费者识别为被授权访问特定数据库服务,则第一执行单元还可以包括用于终止连接的终止单元。

在本实施例的例子中,特定通信分组是通过在特定数据库服务消费者和特定数据库服务之间建立的连接接收到的数据分组。第一执行单元可以包括关联单元,用于将硬件上下文与在特定数据库服务消费者和特定数据库服务之间建立的连接相关联,其中硬件上下文包括特定数据库服务消费者的特定数据库服务消费者标识符。此外,第一执行单元可以包括第三丢弃单元,用于丢弃数据分组,除非它包括在与连接相关联的硬件上下文中包括的特定数据库服务消费者身份。

在本实施例的例子中,在服务器的主机通道适配器处接收数据分组,并且硬件上下文存储在主机通道适配器的存储器中。第三丢弃单元可以包括第四丢弃单元,用于使用主机通道适配器丢弃数据分组,除非它包括在与连接相关联并且存储在主机通道适配器的存储器中的硬件上下文中包括的特定数据库服务消费者身份。

在本实施例的例子中,第一执行单元可以包括第二执行单元,用于基于访问控制列表执行地址解析访问控制、连接建立访问控制和数据交换访问控制之一。

在本实施例的例子中,基于连接的交换结构是infiniband结构,并且特定通信分组是通过将多个服务器与多个应用服务器直接连接的infiniband结构在服务器处接收到的infiniband协议通信分组。第一执行单元可以包括丢弃单元,用于如果infiniband协议通信分组不包括全局路由报头,则丢弃infiniband协议通信分组,如果infiniband协议通信分组确实包括全局路由报头,则使用包括在infiniband协议通信分组的全局路由报头中的源全局标识符来识别发送特定infiniband协议通信分组的特定服务消费者。此外,第一执行单元可以包括使用单元,用于结合包括在infiniband协议通信分组的全局路由报头中的源全局标识符使用访问控制列表来防止特定数据库消费者对多个数据库服务中的特定数据库服务的访问,除非访问控制列表将特定数据库服务消费者识别为被允许访问特定数据库服务。

在本实施例的例子中,基于连接的交换结构是infiniband结构。服务器还可以包括配置单元,用于将多个服务器配置为禁止多个数据库服务消费者和多个服务之间的不是通过使用每个都包括全局路由报头和源全局标识符的infiniband协议分组的数据交换,使得从多个数据库服务消费者传输的每个infiniband分组必须包括识别与每个分组相关联的数据库服务消费者的源全局标识符。

根据本发明的另一种实施例,提供了一种用于在多租户环境中提供网络安全性的服务器。这种实施例的服务器也可以是先前实施例中描述的任何服务器,例如,数据库服务器系统240。此外,服务器及其组件可以基于如先前实施例中描述的本发明的原理执行任何适当的操作。

在本实施例的例子中,服务器可以包括第一配置单元,用于将基于连接的交换结构配置为具有可由多个数据库服务消费者和多个数据库服务器访问的数据库访问分区。服务器还可以包括第二配置单元,用于将基于连接的交换结构配置为具有可由多个服务器和多个存储单元访问但不能被多个数据库服务消费者访问的存储访问分区。服务器还可以包括第三配置单元,用于将多个应用服务器中的每一个的网络接口配置为将在应用服务器上托管的多个数据库服务消费者中的每一个与唯一数据库服务消费者身份相关联。服务器还可以包括第四配置单元,用于将多个应用服务器中的每一个的网络接口配置为在从数据库服务消费者向多个数据库服务传输的每个通信分组中包括与在应用服务器上托管的多个数据库服务消费者中的每一个相关联的数据库服务消费者身份。服务器还可以包括提供单元,用于向多个服务器中的每一个提供访问控制列表,访问控制列表识别多个数据库服务并且为多个数据库服务中的每一个识别与被允许访问多个数据库服务中的每一个的一个或多个数据库服务消费者相关联的一个或多个数据库服务消费者身份。服务器还可以包括丢弃单元,用于使用多个数据库服务器中的每一个的网络接口丢弃从多个应用服务器接收到的不包括数据库服务消费者身份的所有通信分组。服务器还可以包括使用单元,用于结合包括在多个数据库服务器中的特定数据库服务器的特定网络接口处接收到的特定通信分组中的特定数据库服务消费者身份使用访问控制列表来防止与特定数据库消费者身份相关联的特定数据库消费者对多个数据库服务中的特定数据库服务的访问,除非访问控制列表将特定数据库服务消费者识别为被允许访问特定数据库服务。

在本实施例的例子中,特定通信分组是地址解析协议(arp)请求。使用单元可以包括第一确定单元,用于确定访问控制列表是否将特定数据库服务消费者识别为被授权访问由服务器提供的多个数据库服务中的任何一个。使用单元还可以包括丢弃单元,用于如果访问控制列表没有将特定数据库服务消费者识别为被授权访问由服务器提供的多个数据库服务中的任何一个,则丢弃arp请求而不传输arp响应。

在本实施例的例子中,特定通信分组是连接建立请求。使用单元可以包括第二确定单元,用于在服务器中确定访问控制列表是否将特定数据库服务消费者识别为被授权访问由服务器提供的多个数据库服务中的任何一个。使用单元还可以包括第二丢弃单元,用于如果访问控制列表没有将特定数据库服务消费者识别为被授权访问由服务器提供的多个数据库服务中的任何一个,则丢弃连接建立请求而不建立连接。

在本实施例的例子中,特定通信分组是连接建立请求。使用单元可以包括第三确定单元,用于确定连接建立请求正在请求对哪个特定数据库服务进行连接。使用单元还可以包括防止单元,用于如果访问控制列表没有将特定数据库服务消费者识别为被授权访问特定数据库服务,则防止响应于连接建立请求而建立到特定数据库服务的连接。

在本实施例的例子中,特定通信分组是连接建立请求。使用单元可以包括用于响应于连接建立请求而创建连接的创建单元、用于通过连接接收旨在由特定数据库服务消费者通过连接访问的特定数据库服务的标识的接收单元、以及终止单元,用于如果访问控制列表没有将特定数据库服务消费者识别为被授权访问特定数据库服务,则终止连接。

在本实施例的例子中,特定通信分组是通过在特定数据库服务消费者和特定数据库服务之间建立的连接接收到的数据分组。使用单元可以包括关联单元,用于将硬件上下文与在特定数据库服务消费者和特定数据库服务之间建立的连接相关联,其中硬件上下文包括特定数据库服务消费者的特定数据库服务消费者标识符,以及第三丢弃单元,用于丢弃数据分组,除非它包括在与连接相关联的硬件上下文中包括的特定数据库服务消费者身份。

在本实施例的例子中,特定网络接口是主机通道适配器,并且其中在服务器的主机通道适配器处接收数据分组,并且硬件上下文存储在主机通道适配器的存储器中。第三丢弃单元可以包括第四丢弃单元,用于使用主机通道适配器丢弃数据分组,除非它包括在与连接相关联并且存储在主机通道适配器的存储器中的硬件上下文中包括的特定数据库服务消费者身份。

在本实施例的例子中,使用单元可以包括执行单元,用于基于访问控制列表执行地址解析访问控制、连接建立访问控制和数据交换访问控制之一。

在本实施例的例子中,基于连接的交换结构是infiniband结构。服务器还可以包括第五配置单元,用于将多个数据库服务器配置为禁止多个数据库服务消费者和多个数据库服务之间的不是通过使用每个都包括全局路由报头和源全局标识符的infiniband协议分组的数据交换,使得从多个数据库服务消费者传输的每个infiniband分组必须包括识别与每个分组相关联的数据库服务消费者的源全局标识符。

在本实施例的例子中,服务器还可以包括第二使用单元,用于使用多个数据库服务器中的每一个的网络接口来记录对多个数据库服务的未授权访问企图和包括在与未授权访问企图相关联的通信分组中的数据库服务消费者身份;第二提供单元,用于将未授权访问企图的记录提供给多个数据库服务并且将包括在与未授权访问企图相关联的通信分组中的数据库服务消费者身份提供给管理栈;以及第三使用单元,用于使用管理栈来阻止由包括在与未授权访问企图相关联的通信分组中的数据库服务消费者身份所识别的数据库消费者对数据库访问分区的访问,从而防止与多个数据库服务器的通信并阻止未授权的访问企图。

实施例的方法在多租户环境中提供网络安全性,多租户环境包括基于连接的交换结构、保持与多个不同租户相关联的数据的多个存储单元、提供多个数据库服务的多个数据库服务器,其中多个数据库服务中的每一个使用与保持在所述多个存储单元中的所述多个不同租户相关联的所述数据、以及托管与所述多个不同租户相关联的多个数据库服务消费者的多个应用服务器,所述方法包括:将基于连接的交换结构配置为具有可由所述多个数据库服务消费者和所述多个数据库服务器访问的数据库访问分区;将基于连接的交换结构配置为具有可由所述多个数据库服务器和所述多个存储单元访问但不能由所述多个数据库服务消费者访问的存储访问分区;将所述多个应用服务器中的每一个的网络接口控制器安全地配置为将在所述应用服务器上托管的所述多个数据库服务消费者中的每一个与唯一数据库服务消费者身份相关联,使得所述多个数据库服务消费者中的每一个不能修改或伪造与所述多个数据库服务消费者中的所述每一个相关联的唯一数据库服务身份;将所述多个应用服务器中的每一个的网络接口控制器配置为在从所述数据库服务消费者向所述多个数据库服务传输的通信分组中的每一个中包括与在所述应用服务器上托管的所述多个数据库服务消费者中的每一个相关联的数据库服务消费者身份;向所述多个数据库服务器中的每一个提供访问控制列表,其中访问控制列表识别所述多个数据库服务,并且为所述多个数据库服务中的每一个识别与被允许访问所述多个数据库服务中的所述每一个的一个或多个数据库服务消费者相关联的一个或多个数据库服务消费者身份;使用所述多个数据库服务器中的每一个的网络接口丢弃从所述多个应用服务器接收到的不包括数据库服务消费者身份的所有通信分组;以及结合在所述多个数据库服务器中的数据库服务器的网络接口处接收到的通信分组中包括的数据库服务消费者身份使用所述访问控制列表来防止由与数据库消费者身份相关联的数据库服务消费者对所述多个数据库服务中的数据库服务的访问,除非所述访问控制列表将所述数据库服务消费者识别为被允许访问所述数据库服务。

实施例的方法提供所述通信分组是地址解析协议(arp)请求,并且其中结合在所述多个数据库服务器中的数据库服务器的网络接口处接收到的通信分组中包括的数据库消费者身份使用所述访问控制列表来防止由与数据库消费者身份相关联的数据库消费者对所述多个数据库服务中的数据库服务的访问,除非所述访问控制列表将所述数据库服务消费者识别为被允许访问所述数据库服务包括:确定访问控制列表是否将所述数据库服务消费者识别为被授权访问由所述数据库服务器提供的所述多个数据库服务中的任何一个;以及如果访问控制列表没有将所述数据库服务消费者识别为被授权访问由所述数据库服务器提供的所述多个数据库服务中的任何一个,则丢弃arp请求而不传输arp响应。

实施例的方法提供所述通信分组是连接建立请求,并且其中结合在所述多个数据库服务器中的数据库服务器的网络接口处接收到的通信分组中包括的数据库消费者身份使用所述访问控制列表来防止由与数据库消费者身份相关联的数据库消费者对所述多个数据库服务中的数据库服务的访问,除非所述访问控制列表将所述数据库服务消费者识别为被允许访问所述数据库服务包括:在数据库服务器中确定访问控制列表是否将所述数据库服务消费者识别为被授权访问由所述数据库服务器提供的所述多个数据库服务中的任何一个;以及如果访问控制列表没有将所述数据库服务消费者识别为被授权访问由所述数据库服务器提供的所述多个数据库服务中的任何一个,则丢弃连接建立请求而不建立连接。

实施例的方法提供所述通信分组是连接建立请求,并且其中结合在所述多个数据库服务器中的数据库服务器的网络接口处接收到的通信分组中包括的数据库消费者身份使用所述访问控制列表来防止由与数据库消费者身份相关联的数据库消费者对所述多个数据库服务中的数据库服务的访问,除非所述访问控制列表将所述数据库服务消费者识别为被允许访问所述数据库服务包括:在数据库服务器中确定连接建立请求正在请求对哪个数据库服务进行连接;以及如果访问控制列表没有将所述数据库服务消费者识别为被授权访问所述数据库服务,则响应于所述连接建立请求而防止建立到数据库服务的连接。

实施例的方法提供所述通信分组是连接建立请求,并且其中结合在所述多个数据库服务器中的数据库服务器的网络接口处接收到的通信分组中包括的数据库消费者身份使用所述访问控制列表来防止由与数据库消费者身份相关联的数据库消费者对所述多个数据库服务中的数据库服务的访问,除非所述访问控制列表将所述数据库服务消费者识别为被允许访问所述数据库服务包括:响应于所述连接建立请求而创建连接;通过所述连接接收旨在由数据库服务消费者通过所述连接访问的数据库服务的标识;以及如果访问控制列表未将所述数据库服务消费者识别为被授权访问所述数据库服务,则终止所述连接。

实施例的方法提供所述通信分组是通过在数据库服务消费者和数据库服务之间建立的连接接收到的数据分组,并且其中结合在所述多个数据库服务器中的数据库服务器的网络接口处接收到的通信分组中包括的数据库消费者身份使用所述访问控制列表来防止由与数据库消费者身份相关联的数据库消费者对所述多个数据库服务中的数据库服务的访问,除非所述访问控制列表将所述数据库服务消费者识别为被允许访问所述数据库服务包括:将硬件上下文与在数据库服务消费者和数据库服务之间建立的所述连接相关联,其中硬件上下文包括数据库服务消费者的数据库服务消费者标识符;以及丢弃所述数据分组,除非它包括在与连接相关联的硬件上下文中包括的数据库服务消费者身份。

实施例的方法提供所述网络接口是主机通道适配器,并且其中所述数据分组在数据库服务器的主机通道适配器处被接收并且硬件上下文存储在所述主机通道适配器的存储器中,并且其中丢弃所述数据分组,除非它包括在与连接相关联的硬件上下文中包括的数据库服务消费者身份包括:使用主机通道适配器丢弃所述数据分组,除非它包括在与连接相关联并且存储在所述主机通道适配器的存储器中的硬件上下文中包括的数据库服务消费者身份。

实施例的方法提供结合在所述多个数据库服务器中的数据库服务器的网络接口处接收到的通信分组中包括的数据库消费者身份使用所述访问控制列表来防止由与数据库消费者身份相关联的数据库消费者对所述多个数据库服务中的数据库服务的访问,除非所述访问控制列表将所述数据库服务消费者识别为被允许访问所述数据库服务包括:基于所述访问控制列表执行地址解析访问控制、连接建立访问控制和数据交换访问控制中的至少一个。

实施例的方法向所述多个数据库服务器中的每一个提供用于使用存储访问分区与所述多个存储单元通信的另一网络接口,其中另一网络接口被配置为使得它不基于所述访问控制列表执行地址解析访问控制、连接建立访问控制和数据交换访问控制。

实施例的方法提供使用所述多个数据库服务器中的每一个的网络接口来记录对所述多个数据库服务的未授权访问企图和在与所述未授权访问相关联的通信分组中包括的数据库服务消费者身份;将未授权访问企图的所述记录提供给所述多个数据库服务并且将在与所述未授权访问企图相关联的通信分组中包括的数据库服务消费者身份提供给管理栈;使用管理栈来阻止由包括在与所述未授权访问企图相关联的通信分组中的所述数据库服务消费者身份所识别的数据库消费者对所述数据库访问分区的访问,从而防止与所述多个数据库服务器的通信并阻止所述未授权的访问企图。

实施例的方法在多租户环境中提供网络安全性,多租户环境包括:多个存储单元,保持与多个不同租户相关联的数据;多个数据库服务器,提供使用与所述多个不同租户相关联的所述数据的多个数据库服务;多个应用服务器,托管与所述多个不同租户相关联的多个数据库服务消费者;基于连接的交换结构,被配置为具有可由所述多个数据库服务消费者和所述多个数据库服务访问的数据库访问分区;以及可由所述多个数据库服务和所述多个存储单元访问但不能由所述多个数据库服务消费者访问的存储访问分区;在所述多个应用服务器中的每一个中的应用服务器网络接口控制器,其中应用服务器网络接口控制器被安全地配置为将在所述应用服务器上托管的所述多个数据库服务消费者中的每一个与唯一数据库服务消费者身份相关联,使得所述多个数据库服务消费者中的每一个不能修改或伪造与所述多个数据库服务消费者中的所述每一个相关联的唯一数据库服务身份,并且其中应用服务器网络接口控制器还被配置为在从所述每个数据库服务消费者向所述多个数据库服务传输的每个通信分组中包括数据库服务消费者身份;存储在所述多个数据库服务器中的每一个上的访问控制列表,其中访问控制列表识别所述多个数据库服务,并且为所述多个数据库服务中的每一个识别与被允许访问所述多个数据库服务中的每一个的一个或多个数据库服务消费者相关联的一个或多个数据库服务消费者身份;在所述多个数据库服务器中的每一个中的数据库服务器网络接口,其中每个数据库服务器网络接口被安全地配置为丢弃从所述多个数据库服务消费者接收到的不包括数据库服务消费者身份的所有通信分组;并且其中接收通信分组的每个数据库服务器网络接口被配置为结合包括在通信分组中的数据库服务消费者身份使用所述访问控制列表来防止与数据库消费者身份相关联的数据库消费者对所述多个数据库服务中的数据库服务的访问,除非所述访问控制列表将所述数据库服务消费者识别为被允许访问所述数据库服务。

实施例的方法提供所述通信分组是地址解析协议(arp)请求,并且其中接收arp请求的数据库服务器网络接口被配置为:确定访问控制列表是否将所述数据库服务消费者识别为被授权访问由所述数据库服务器提供的所述多个数据库服务中的任何一个;以及如果访问控制列表没有将所述数据库服务消费者识别为被授权访问由所述数据库服务器提供的所述多个数据库服务中的任何一个,则丢弃arp请求而不传输arp响应。

实施例的方法提供所述通信分组是连接建立请求,并且其中接收连接建立请求的数据库服务器网络接口被配置为:确定访问控制列表是否将所述数据库服务消费者识别为被授权访问由所述数据库服务器提供的所述多个数据库服务中的任何一个;以及如果访问控制列表没有将所述数据库服务消费者识别为被授权访问由所述数据库服务器提供的所述多个数据库服务中的任何一个,则丢弃连接建立请求而不建立连接。

实施例的方法提供所述通信分组是连接建立请求,并且其中接收连接建立请求的数据库服务器网络接口被配置为:确定连接建立请求正在请求对哪个数据库服务进行连接;以及如果访问控制列表没有将所述数据库服务消费者识别为被授权访问所述数据库服务,则防止响应于所述连接建立请求而建立到数据库服务的连接。

实施例的方法提供所述通信分组是连接建立请求,并且其中接收连接建立请求的数据库服务器网络接口被配置为:响应于所述连接建立请求而创建连接;通过所述连接接收旨在由数据库服务消费者通过所述连接访问的数据库服务的标识;以及如果访问控制列表没有将所述数据库服务消费者识别为被授权访问所述数据库服务,则终止所述连接。

实施例的方法提供所述通信分组是通过在数据库服务消费者和数据库服务之间建立的连接接收到的数据分组,并且其中通过连接接收数据分组的数据库服务器网络接口是主机通道适配器,被配置为:将硬件上下文与在数据库服务消费者和数据库服务之间建立的所述连接相关联,其中硬件上下文存储在所述主机通道适配器的存储器中,并且包括数据库服务消费者的数据库服务消费者身份;以及丢弃所述数据分组,除非它包括在与连接相关联并且存储在所述主机通道适配器的存储器中的硬件上下文中包括的数据库服务消费者身份。

实施例的方法提供在所述多个数据库服务器中的每一个中的数据库服务器网络接口被配置为使用存储在所述多个数据库服务器中的每一个上的访问控制列表基于所述访问控制列表来执行地址解析访问控制、连接建立访问控制和数据交换访问控制中的至少一个。

实施例的方法提供所述多个数据库服务器中的每一个包括用于使用存储访问分区与所述多个存储单元通信的另一网络接口,其中另一网络接口被配置为使得它不基于所述访问控制列表执行地址解析访问控制、连接建立访问控制和数据交换访问控制。

实施例的方法提供与所述多个数据库服务器通信的管理栈;其中在所述多个数据库服务器中的每一个中的数据库服务器网络接口被配置为记录对所述多个数据库服务的未授权访问企图和在与所述未授权访问企图相关联的通信分组中包括的数据库服务消费者身份,并且将所述记录提供给管理栈;其中管理栈被配置为阻止由包括在与所述未授权访问企图相关联的通信分组中的所述数据库服务消费者身份所识别的数据库消费者对所述数据库访问分区的访问,从而防止与所述多个数据库服务器的通信并阻止所述未授权的访问企图。

实施例的方法提供一种包括存储在其上的指令的非临时性计算机可读介质,用于在多租户环境中提供网络安全性,多租户环境包括基于连接的交换结构、保持与多个不同租户相关联的数据的多个存储单元、提供多个数据库服务的多个数据库服务器,其中所述多个数据库服务中的每一个使用与保持在所述多个存储单元中的所述多个不同租户相关联的所述数据、以及托管与所述多个不同租户相关联的多个数据库服务消费者的多个应用服务器,当所述指令被执行时,使得所述多租户环境的组件执行以下步骤,包括:将基于连接的交换结构配置为具有可由所述多个数据库服务消费者和所述多个数据库服务器访问的数据库访问分区;将基于连接的交换结构配置为具有可由所述多个数据库服务器和所述多个存储单元访问但不能由所述多个数据库服务消费者访问的存储访问分区;将所述多个应用服务器中的每一个的网络接口控制器安全地配置为将在所述应用服务器上托管的所述多个数据库服务消费者中的每一个与唯一数据库服务消费者身份相关联,使得所述多个数据库服务消费者中的每一个不能修改或伪造与所述多个数据库服务消费者中的所述每一个相关联的唯一数据库服务身份;将所述多个应用服务器中的每一个的网络接口控制器配置为在从所述数据库服务消费者向所述多个数据库服务传输的通信分组中的每一个中包括与在所述应用服务器节点上托管的所述多个数据库服务消费者中的每一个相关联的数据库服务消费者身份;向所述多个数据库服务器中的每一个提供访问控制列表,其中访问控制列表识别所述多个数据库服务并且为所述多个数据库服务中的每一个识别与被允许访问所述多个数据库服务中的所述每一个的一个或多个数据库服务消费者相关联的一个或多个数据库服务消费者身份;使用所述多个数据库服务器中的每一个的网络接口丢弃从所述多个应用服务器接收到的不包括数据库服务消费者身份的所有通信分组;以及结合在所述多个数据库服务器的数据库服务器节点的网络接口处接收到的通信分组中包括的数据库服务消费者身份使用所述访问控制列表来防止与数据库消费者身份相关联的数据库消费者对所述多个数据库服务中的数据库服务的访问,除非所述访问控制列表将所述数据库服务消费者识别为被允许访问所述数据库服务。

实施例的方法提供所述基于连接的交换结构是infiniband结构,并且其中所述方法还包括将所述多个数据库服务器配置为禁止所述多个数据库服务消费者和所述多个数据库服务之间的不是通过使用每个都包括全局路由报头和源全局标识符的infiniband协议分组的数据交换,使得从所述多个数据库服务消费者传输的每个infiniband分组必须包括识别与所述每个分组相关联的数据库服务消费者的源全局标识符。

实施例的系统提供所述基于连接的交换结构是infiniband结构,并且其中所述多个数据库服务器中的每一个中的数据库服务器网络接口被配置为禁止所述多个数据库服务消费者和所述多个数据库服务之间的不是通过使用每个都包括全局路由报头和源全局标识符的infiniband协议分组的数据交换,使得从所述多个数据库服务消费者传输的每个infiniband分组必须包括识别与所述每个分组相关联的数据库服务消费者的源全局标识符。

虽然以上已经描述了本发明的各种实施例,但是应当理解,它们是作为例子而不是限制给出。对于相关领域的技术人员将显而易见,在不脱离本发明的精神和范围的情况下,可以在其中进行各种形式和细节上的改变。

本发明的许多特征可以在硬件、软件、固件或其组合中、使用其或在其的帮助下执行。本发明可以使用一个或多个常规通用或专用数字计算机、计算装置、机器或微处理器(包括一个或多个处理器、存储器和/或根据本公开内容的教导编程的计算机可读存储介质)来方便地实现。本发明的特征还可以使用硬件组件(例如诸如,专用集成电路(asic)和可编程逻辑器件)在硬件中实现。实现硬件状态机以便执行本文所描述的功能对于相关领域的技术人员将显而易见。

本发明的特征可以在用于控制处理系统的硬件和用于使处理系统能够使用本发明的结果与其它机制交互的软件和/或固件中结合。这种软件或固件可以包括但不限于应用代码、装置驱动器、操作系统和执行环境/容器。如对软件领域的技术人员将显而易见的是,基于本公开内容的教导,熟练的程序员可以容易地准备适当的软件编码。

在一些实施例中,本发明包括计算机程序产品,其是具有存储在其上/其中的指令的存储介质或计算机可读介质,其中指令可以用来对计算机进行编程以执行本发明的任何过程。存储介质或计算机可读介质可以包括但不限于,任何类型的盘(包括软盘、光盘、dvd、cd-rom、微驱动器和磁光盘)、rom、ram、eprom、eeprom、dram、vram、闪存装置、磁卡或光卡、纳米系统(包括分子存储器ic)、或适于存储指令和/或数据的任何类型的介质或装置。在实施例中,存储介质或计算机可读介质可以是非临时性的。

为了说明和描述的目的,提供了本发明的前述描述。它并不旨在穷举或将本发明限制为所公开的精确形式。许多修改和变化对于本领域技术人员将是显而易见的。修改和变化包括所公开特征的任何相关组合。选择和描述实施例是为了最好地解释本发明的原理及其实际应用,从而使得本领域的其他技术人员能够理解本发明的各种实施例和具有适于特定使用预期的各种修改。旨在由以下权利要求及其等效物限定本发明的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1