CN111684418B - 用于在多租户容器平台上运行应用程序的系统和方法 - Google Patents
用于在多租户容器平台上运行应用程序的系统和方法 Download PDFInfo
- Publication number
- CN111684418B CN111684418B CN201980010986.1A CN201980010986A CN111684418B CN 111684418 B CN111684418 B CN 111684418B CN 201980010986 A CN201980010986 A CN 201980010986A CN 111684418 B CN111684418 B CN 111684418B
- Authority
- CN
- China
- Prior art keywords
- container
- application
- requested
- module
- privileged operation
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000000977 initiatory effect Effects 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 abstract description 13
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000002411 adverse Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000009434 installation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229940004975 interceptor Drugs 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了用于在多租户容器平台上运行应用程序的计算机实现的方法,该方法可包括:(1)在容器主机计算设备上的主机管理员服务处并经由主机管理员服务套接字句柄从在非特权容器中运行的应用程序接收对特权操作的请求,(2)基于该应用程序的用户标识来执行与该应用程序相关联的用户的安全检查,(3)当该安全检查导致批准时,将所请求的特权操作的进程标识与所允许的操作的白名单进行比较以确定所请求的特权操作是允许的,以及(4)当所请求的特权操作是允许的时,发起运行所请求的特权操作。本发明还公开了各种其他方法、系统和计算机可读介质。
Description
背景技术
在过去,大型计算项目仅限于拥有具有计算机塔架的大型物理数据中心的个人和企业。现在,分布式计算允许具有资源的任何人购买服务器空间并根据需要运行其优选计算设备的许多实例。已经因应用程序容器的形成引入了进一步的效率改进,该应用程序容器允许管理员在不需要模拟每个虚拟化应用程序的整个虚拟化操作系统所需的资源的情况下运行应用程序。容器可降低每个应用程序的处理要求,从而允许在共享的主机计算设备上运行更多数量的应用程序。容器可用于从持续数分钟的短期操作到持续数周或数月的长期操作的任何操作,并且可被配置为运行各种应用程序以便完成各种计算任务。
共享的主机计算设备可用被称为多重租赁的架构来实现,其中许多不同的不相关客户(即,租户)可在共享的主机计算设备上运行多组相应的应用程序容器。虽然多重租赁有利地提供规模经济,但是当租户的应用程序执行需要共享的主机计算设备的系统管理员能力的动作(诸如需要附加Linux能力(例如,CAP_SYS_ADMIN)和/或需要以特权模式运行以获得对共享的主机计算设备资源的访问的动作)时,可能发生不期望的影响。这些动作可赋予应用程序容器对主机存储、主机联网和主机计算资源的访问权限。因此,一个租户的应用程序容器可获得对其他租户的信息和数据的访问权限,这可能通过改变其他租户的应用程序的行为而不利地影响其他租户的操作。用于防止这些不利影响的方法可包括以非特权模式运行应用程序容器,这不允许应用程序执行需要系统管理员能力和/或需要使用特权模式的动作,继而不利地影响应用程序性能。
因此,本公开识别并解决了对用于在多租户容器平台上运行应用程序的系统和方法的需求。
发明内容
如下面将更详细地描述的,本公开描述了用于通过选择性地介导在多租户容器平台上运行的应用程序的所需特权操作来在该多租户容器平台上运行应用程序的各种系统和方法。
在一个实施方案中,一种用于在多租户容器平台上运行应用程序的方法可包括(1)在容器主机计算设备上的主机管理员服务处并经由主机管理员服务套接字句柄从在非特权容器中运行的应用程序接收对特权操作的请求,(2)基于该应用程序的用户标识来执行与该应用程序相关联的用户的安全检查,(3)当该安全检查导致批准时,将所请求的特权操作的进程标识与所允许的操作的白名单进行比较以确定所请求的特权操作是允许的,以及(4)当所请求的特权操作是允许的时,发起运行所请求的特权操作。
在示例中,该方法可包括在该容器启动时将拦截器、容器管理员程序和主机管理员服务套接字句柄从容器主机管理员服务传递到该容器。在实施方案中,该方法可包括(1)在该拦截器处从该应用程序接收请求,(2)由该拦截器对该请求执行白名单检查,(3)当该白名单检查成功时,由该拦截器调用该容器管理员,(4)当满足用于所请求的操作的条件时,由该容器管理员使用该主机管理员服务套接字句柄来发起该容器管理员与该主机管理员服务之间的连接,以及(5)向该主机管理员服务发送具有所请求的操作的细节的请求。
在一个示例中,执行该安全检查还包括当该用户标识指示根用户时发出该安全检查批准结果。在实施方案中,该方法可包括当所请求的特权操作被成功完成或被拒绝时,向该容器管理员发送相应响应(例如,“成功”或“失败”)。在一些示例中,该方法可包括在该拦截器处接收成功响应,以及向该应用程序发送所请求的特权操作成功完成的通知。在进一步的实施方案中,该方法可包括当所请求的特权操作未能成功执行时在用户显示器上显示错误消息。
在一个示例中,一种用于在多租户容器平台上运行应用程序的系统可包括存储在存储器中的若干模块,该若干模块包括(1)接收模块,该接收模块存储在该存储器中,该接收模块在容器主机计算设备上的主机管理员服务处并经由主机管理员服务套接字句柄从在非特权容器中运行的应用程序接收对特权操作的请求;(2)执行模块,该执行模块存储在该存储器中,该执行模块基于该应用程序的用户标识来执行与该应用程序相关联的用户的安全检查;(3)比较模块,该比较模块存储在该存储器中,当该安全检查导致批准时,该比较模块将所请求的特权操作的进程标识与所允许的操作的白名单进行比较以确定所请求的特权操作是允许的;(4)发起模块,该发起模块存储在该存储器中,当所请求的特权操作是允许的时,该发起模块发起运行所请求的特权操作。该系统还可包括至少一个物理处理器,该至少一个物理处理器执行该接收模块、该执行模块、该比较模块和该发起模块。
在一些示例中,上述方法可被编码为非暂态计算机可读介质上的计算机可读指令。例如,一种计算机可读介质可包括一个或多个计算机可执行指令,该一个或多个计算机可执行指令当由计算设备的至少一个处理器执行时可使该计算设备(1)在容器主机计算设备上的主机管理员服务处并经由主机管理员服务套接字句柄从在非特权容器中运行的应用程序接收对特权操作的请求,(2)基于该应用程序的用户标识来执行与该应用程序相关联的用户的安全检查,(3)当该安全检查导致批准时,将所请求的特权操作的进程标识与所允许的操作的白名单进行比较以确定所请求的特权操作是允许的,以及(4)当所请求的特权操作是允许的时,发起运行所请求的特权操作。
来自任意上述实施方案的特征可根据本文所述的一般原理彼此结合使用。在结合附图和权利要求阅读以下详细描述后,将更全面地理解这些以及其他实施方案、特征和优点。
附图说明
附图示出多个示例性实施方案,并且是说明书的一部分。这些附图与以下描述一起展示并说明本公开的各种原理。
图1是用于在多租户容器平台上运行应用程序的示例性系统的框图。
图2是用于在多租户容器平台上运行应用程序的附加的示例性系统的框图。
图3是用于在多租户容器平台上运行应用程序的示例性方法的流程图。
图4是多租户计算系统的示例的框图。
在整个附图中,相同的参考字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施方案易存在各种修改形式和另选形式,但是附图中以举例的方式示出了具体实施方案,这些实施方案将在本文中详细描述。然而,本文所述的示例性实施方案并非旨在限于所公开的特定形式。相反,本公开涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。
具体实施方式
本公开整体涉及用于在多租户容器平台上运行应用程序的系统和方法。在一些示例中,本文所述的系统和方法可通过添加应用程序专用功能性来向容器实现软件(例如,DOCKER)提供外交官模式(ambassador-pattern)类扩展,该应用程序专用功能性介导应用程序的所需特权操作,诸如安装体积,并降低由特权容器模型引起的安全风险。这种介导可实现安全的多租户应用程序编排。在一些示例中,本文所述的系统和方法可使用两个层级的名称空间虚拟化,其中容器实现软件提供初级(在内核API层级处)并且库介入选择性地处理需要特权和介导的系统调用。这提供了容器与容器实现软件之间的控制点。在实施方案中,可结合容器主机(诸如多租户容器平台)来利用本发明所公开的技术。
通过这样做,本文所述的系统和方法可通过使得应用程序容器能够在没有附加的系统管理员能力的情况下以非特权模式运行并响应于来自应用程序对特权操作的请求而执行系统管理操作来改进计算设备的运作。这使得应用程序能够在多租户容器平台上的非特权容器中全力运行而不获得根等效特权。本文所述的系统和方法还可减轻与特权多租户容器相关联的安全风险。此外,本文所述的系统和方法可通过取消以下要求来改进计算设备的运作:容器必须以特权模式重启以响应于来自应用程序对特权操作的请求而执行系统管理操作。另外,在示例中,应用程序容器主机可提供本发明所公开的的特征,而不需要其他计算设备的干预或动作。在示例中,从应用程序的角度来看,本文所述的系统和方法对于应用程序可看起来是透明的。此外,本文所述的系统和方法可以扩展容器实现软件(诸如DOCKER)的能力,以提供应用程序专用功能。
以下将参考图1至图2和图4提供用于在多租户容器平台上运行应用程序的示例性系统的详细描述。还将结合图3提供对应的计算机实现的方法的详细描述。
图1是用于在多租户容器平台上运行应用程序的示例性系统100的框图。如该图所示,示例性系统100可以包括用于执行一个或多个任务的一个或多个模块102。如将在下文更详细地解释,模块102可包括接收模块104、执行模块106、比较模块108和发起模块110。虽然示出为单独元件,但图1的模块102中的一个或多个可表示单个模块或应用程序的若干部分。
在某些实施方案中,图1中的模块102中的一个或多个可表示一个或多个软件应用程序或程序,其在由计算设备执行时可使计算设备执行一个或多个任务。例如,并且如下文将更详细地描述的,模块102中的一个或多个可以表示被存储并且被配置为在一个或多个计算设备上运行的模块,这些计算设备诸如为图2中所示的设备(例如,服务器206)。图1中的模块102中的一个或多个还可表示被配置为执行一个或多个任务的一个或多个专用计算机的全部或部分。
如图1所示,示例性系统100还可包括一个或多个存储设备,诸如存储设备120。存储设备120通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储设备120可存储、加载和/或维护指示应用程序容器121、应用程序122、容器管理员123、拦截器124、主机管理员服务125、主机管理员服务套接字句柄126、请求127和/或白名单128中的一者或多者的信息。存储设备120的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、光盘驱动器、高速缓存、上述一者或多者的变型或组合和/或任何其他合适的存储器。应用程序容器121通常表示能够托管应用程序的任何类型或形式的虚拟化平台。应用程序122通常表示任何类型或形式的可执行代码。容器管理员123通常表示能够在应用程序容器121内执行系统管理功能的任何类型或形式的管理程序。拦截器124可为容器管理员123的组成部件,并且通常表示能够拦截应用程序122的系统管理操作并向主机管理员服务125发送请求127的任何类型或形式的拦截器库。在示例中,拦截器124可等待客户端(例如,应用程序122)连接和由应用程序122发起的陷阱系统管理操作。主机管理员服务125通常表示能够实现在应用程序122请求时可满足的系统管理操作的白名单128的任何类型或形式的管理程序。示例性操作可包括安装NFS共享和/或安装FUSE文件系统。主机管理员服务125可在容器主机(诸如系统100)上运行,并且满足容器请求(诸如请求127)。在示例中,主机管理员服务125可为基于网络、传输控制协议(TCP)或Unix域套接字(UDS)的。例如,主机管理员服务125可作为UDS服务与主机管理员服务套接字句柄126一起在系统100上运行。主机管理员服务套接字句柄126通常表示指代用于主机管理员服务125的套接字的任何类型或形式的引用。主机管理员服务套接字句柄126在应用程序容器121内可供容器管理员123使用以在主机管理员服务125与容器管理员123之间形成连接,如图1中以虚线所示。请求127通常表示应用程序122对应用程序容器121内的特权和/或系统管理功能(诸如根函数)的任何类型或形式的请求。白名单128包括至少一个所允许的用户、所允许的特权功能和/或所允许的系统管理功能。
如图1所示,示例性系统100还可以包括一个或多个物理处理器,诸如物理处理器130。物理处理器130通常表示能够解译和/或执行计算机可读指令的任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器130可以访问和/或修改存储在存储器140中的模块102中的一个或多个。附加地或另选地,物理处理器130可执行模块102中的一个或多个模块以促进在多租户容器平台上运行应用程序。物理处理器130的示例包括但不限于微处理器、微控制器、中央处理单元(CPU)、实现软核处理器的现场可编程门阵列(FPGA)、专用集成电路(ASIC)、上述一者或多者的若干部分、上述一者或多者的变型或组合,或任何其他合适的物理处理器。
如图1所示,示例性系统100还可以包括一个或多个存储器设备,诸如存储器140。存储器140通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储器140可以存储、加载和/或维护模块102中的一个或多个。存储器140的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、光盘驱动器、高速缓存、上述一者或多者的变体或组合、或任何其他合适的存储器。
如本文所用的术语“应用程序”通常是指能够启动进程的任何可执行代码。在一些实施方案中,应用程序可以是软件。附加地或另选地,应用程序可为脚本。在一些示例中,应用程序可以是独立应用程序。在其他示例中,应用程序可为更大系统的前端,诸如用于网络应用程序的界面。在一些示例中,应用程序可包括相互配合的程序和/或可执行对象的集合。在一个示例中,应用程序可以是备份、存储和/或重复数据删除应用程序。
如本文所用的术语“容器”通常是指不包括整个操作系统但包括足够的计算资源以在由来自主机计算系统的操作系统的计算资源补充时执行至少一个进程和/或应用程序的任何类型的虚拟环境。在一些实施方案中,容器内的资源和/或进程可与容器外部的资源和/或进程隔离。例如,容器可将部署系统的用户空间与部署系统上的其他软件隔离,同时被共享的内核空间与其他软件所服务。
如本文所用的术语“用户空间”通常是指在计算环境中存储器的执行应用软件的部分。在一些实施方案中,用户空间可包括库、图形引擎、用于某些设备的设备驱动程序和/或系统守护进程。
如本文所用的术语“内核空间”通常是指计算环境中存储器的被保留用于执行操作系统内核、内核扩展和设备驱动程序的部分。在一些实施方案中,容器可仅执行单个进程和/或应用程序,而在其他实施方案中,容器可执行多个进程和/或应用程序。在一些实施方案中,容器可为DOCKER容器。
如本文所用的术语“应用程序容器”通常是指存储和/或托管应用程序的容器。在一些示例中,应用程序容器还可以托管用于应用程序的捆绑部件。
图1中的示例性系统100可以以各种方式实现。例如,示例性系统100的全部或一部分可以表示图2中的示例性系统200的部分。如图2所示,系统200可包括计算设备202,其经由网络204与服务器206通信。在一个示例中,模块102的全部或部分功能可以由计算设备202、服务器206和/或任何其他合适的计算系统来执行。如下文将更详细地描述的,当由服务器206的至少一个处理器执行时,来自图1的模块102中的一个或多个模块可使得服务器206能够在多租户容器平台上运行应用程序。
计算设备202通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。在一些示例中,计算设备202可表示运行用户侧软件的计算机。计算设备202的附加的示例包括但不限于膝上型电脑、平板电脑、台式计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、可穿戴设备(例如,智能手表、智能眼镜等)、智能交通工具、物联网设备(例如,智能电器等)、游戏机、上述一者或多者的变型或组合,或任何其他合适的计算设备。
网络204通常表示能够促进通信或数据传送的任何介质或架构。在一个示例中,网络204可促进计算设备202和服务器206之间的通信。在该示例中,网络204可使用无线和/或有线连接促进通信或数据传送。网络204的示例包括但不限于:内联网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信系统(GSM)网络)、上述一者或多者的部分、上述一者或多者的变体或组合、或任何其他合适的网络。
服务器206通常表示能够在多租户容器平台上运行应用程序的任何类型或形式的计算设备。服务器206的附加的示例包括但不限于存储服务器、数据库服务器、应用程序服务器和/或网络服务器,这些服务器被配置为运行某些软件应用程序和/或提供各种存储、数据库和/或网络服务。虽然在图2中被示出为单个实体,但服务器206可包括和/或表示彼此协同工作和/或操作的多个服务器。在示例中,服务器206可提供可促进多重租赁的云计算计算环境。换句话讲,本文所述的模块可配置计算系统(例如,服务器)以促进本文所述的功能中的一种或多种功能的多重租赁。例如,本文所述的模块中的一个或多个模块可对服务器206进行编程以使得两个或更多个客户端(例如,顾客)能够共享正在服务器206上运行的应用程序122。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述的模块中的一个或多个还可为每个顾客分割多租户应用程序的数据和/或配置信息以使得一个顾客不能访问另一个顾客的数据和/或配置信息。参考图4更详细地描述了示例性多租户容器平台。
许多其他设备或子系统可以连接到图1中的系统100和/或图2中的系统200。相反,图1和图2中所示的所有部件和设备不必都存在来实践本文描述和/或示出的实施方案。上文提及的设备和子系统也可以按照与图2所示不同的方式互连。系统100和200也可以采用任何数量的软件配置、固件配置和/或硬件配置。例如,本文所公开的示例性实施方案中的一个或多个可以被编码为计算机可读介质上的计算机程序(也被称为计算机软件、软件应用程序、计算机可读指令和/或计算机控制逻辑)。
如本文所用,术语“计算机可读介质”通常是指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于传输型介质,诸如载波,和非暂态型介质,诸如磁存储介质(例如,硬盘驱动器、磁带驱动器和软盘)、光存储介质(例如,光盘(CD)、数字视频盘(DVD)、BLU-RAY磁盘)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配系统。
图3是用于在多租户容器平台上运行应用程序的示例性计算机实现的方法300的流程图。图3中所示的步骤可以由任何合适的计算机可执行代码和/或计算系统执行,包括图1中的系统100、图2中的系统200和/或以上项中的一者或多者的变型或组合。在一个示例中,图3中示出的每个步骤可以表示其结构包括和/或由多个子步骤表示的算法,其示例将在下文更详细地提供。
在示例中,方法300可包括在容器启动时将拦截器、容器管理员程序和主机管理员服务套接字句柄从容器主机传递到容器。
如图3所示,在步骤302处,本文所述的系统中的一个或多个系统可发起应用程序的特权操作。本文所述的系统可以多种方式执行步骤302。例如,应用程序容器121(例如,非特权容器)中的应用程序122可发起对特权操作的请求127。
如图3所示,在步骤304处,当必须向主机管理员服务发送所请求的特权操作时,本文所述的系统中的一个或多个系统可调用拦截器。本文所述的系统可以多种方式执行步骤304。例如,当必须向主机管理员服务125发送请求127时,可调用拦截器124。
如图3所示,在步骤306处,本文所述的系统中的一个或多个系统可由拦截器调用容器管理员。本文所述的系统可以多种方式执行步骤306。例如,拦截器124可调用容器管理员123。
如图3所示,在步骤308处,本文所述的系统中的一个或多个系统可使用容器内部可用的主机管理员服务套接字句柄发起连接并发送对特权操作的请求。本文所述的系统可以多种方式执行步骤308。例如,容器管理员123可使用应用程序容器121内部可用的主机管理员服务套接字句柄126发起与主机管理员服务125的连接,并发送对特权操作的请求127。
如图3所示,在步骤310处,本文所述的系统中的一个或多个系统可在容器主机计算设备上的主机管理员服务处并经由主机管理员服务套接字句柄从在非特权容器中运行的应用程序接收对特权操作的请求。本文所述的系统可以多种方式执行步骤310。例如,作为图2中的服务器206的一部分,接收模块104可在系统100(容器主机计算设备)上的主机管理员服务125处并经由主机管理员服务套接字句柄126从在应用程序容器121中运行的应用程序122接收对特权操作的请求127。
在附加的示例中,方法300可包括按需将主机管理员服务套接字句柄从容器主机传递到容器。例如,图2中的服务器206可将主机管理员服务套接字句柄126传递到应用程序容器121。
在一些实施方案中,方法300可包括(1)在拦截器处从应用程序接收请求,(2)由拦截器对请求执行白名单检查,(3)当白名单检查成功时,由拦截器调用容器管理员,(4)当满足用于所请求的操作的条件时,由容器管理员使用主机管理员服务套接字句柄发起容器管理员与主机管理员服务之间的连接,以及(5)向该主机管理员服务发送具有所请求的操作的细节的请求。在一些实施方案中,图2中的服务器206可包括:拦截器124,该拦截器从应用程序122接收请求127,并且当白名单检查成功时,对请求127执行白名单检查并调用容器管理员模块123;以及容器管理员模块123,当满足用于所请求的操作的条件时,该容器管理员模块使用主机管理员套接字句柄126发起与主机管理员服务125的连接,并且向主机管理员服务125发送具有操作细节的请求127。在进一步的示例中,拦截器可向其他软件模块(例如,容器管理员)提供预期函数调用的指示,以指示重启操作的点。
如图3所示,在步骤312处,本文所述系统中的一个或多个系统可基于应用程序的用户标识来执行与应用程序相关联的用户的安全检查。本文所述的系统可以多种方式执行步骤312。例如,作为图2中的服务器206的一部分,执行模块106可基于应用程序122的用户标识(UID)来执行与应用程序122相关联的用户的安全检查。在示例中,UDS连接可用于访问所请求的特权操作的UID和进程标识(PID)。
在附加的示例中,执行安全检查还包括当用户标识指示根用户时发出安全检查批准结果。在一些实施方案中,作为图2中的服务器206的一部分,当用户标识指示根用户时,执行模块106可发出安全检查批准结果。在示例中,如果根用户未发起请求127,则执行模块126拒绝请求127,否则继续进行。
如图3所示,在步骤314处,当安全检查导致批准时,本文所述的系统中的一个或多个系统可将所请求的特权操作的进程标识与所允许的操作的白名单进行比较以确定所请求的特权操作是允许的。本文所述的系统可以多种方式执行步骤314。例如,作为图2中的服务器206的一部分,当安全检查导致批准时,比较模块108可将请求127中的所请求的特权操作的PID与所允许的操作的白名单128进行比较以确定请求127中的所请求的特权操作是允许的。在实施方案中,如果请求127中的所请求的特权操作不在白名单128上,则比较模块108拒绝请求127,否则继续进行。此外,可使用PID来识别目标容器。
如图3所示,在步骤316处,当所请求的特权操作是允许的时,本文所述的系统中的一个或多个系统可发起(例如,在共享的主机计算设备上)运行所请求的特权操作。本文所述的系统可以多种方式执行步骤316。例如,作为图2中的服务器206的一部分,当请求127中的所请求的特权操作是允许的时,发起模块110可发起在服务器206上运行所请求的特权操作。例如,发起模块110可发起在应用程序容器121中安装NFS共享。在实施方案中,发起模块110可使用应用程序容器121的nsenter命令作为运行特权操作(例如,nsenter-m-u-i-n-p-t“${container_pid}”${client_operation})的目标。
在附加的示例中,方法300可包括当所请求的特权操作成功或被拒绝时向容器管理员发送相应响应(例如,“成功”或“失败”)。在一些实施方案中,当请求127中的所请求的特权操作被成功完成或被拒绝时,发起模块110向容器管理员模块123发送相应响应。
如图3所示,在步骤318处,本文所述系统中的一个或多个系统可从主机管理员向容器管理员,从容器管理员向拦截器,以及从拦截器向应用程序发送响应(指示成功或失败)。在一些实施方案中,方法300可包括在容器管理员处接收成功响应或拒绝响应,并且经由拦截器向应用程序发送所请求的特权操作被成功完成或被拒绝的对应通知。本文所述的系统可以多种方式执行步骤318。例如,作为图2中的服务器206的一部分,容器管理员123可接收成功响应,并且经由拦截器124向应用程序122发送所请求的特权操作被成功完成的通知。在另一个示例中,作为图2中的服务器206的一部分,容器管理员123可接收失败响应,并且经由拦截器124向应用程序122发送所请求的特权操作被拒绝的通知。在示例中,从应用程序122的角度来看,方法300对于应用程序122看起来是透明的。
在附加的实施方案中,方法300可包括当所请求的特权操作未能成功执行时在用户显示器上显示错误消息。例如,作为图2中的服务器206的一部分,当所请求的特权操作未能成功执行时,发起模块110可发起在用户显示器上显示错误消息。
如上所详述,图3中的方法300中概述的步骤可通过添加应用程序专用功能性来向容器实现软件提供外交官模式类扩展,该应用程序专用功能性介导应用程序的所需特权操作并降低由特权容器模型引起的安全风险。通过这样做,本文所述的系统和方法可以实现安全的多租户应用程序编排,该多租户应用程序编排使得应用程序能够在多租户容器平台上的非特权容器中全力运行而不获得根等效特权。
图4是多租户计算系统400的示例的框图。如图4所示,多租户计算系统400可包括提供非特权应用程序容器404的容器主机计算设备402。在一个示例中,模块102的功能性的全部或一部分可由容器主机计算设备402执行。容器主机计算设备402通常表示能够在多租户容器平台上运行应用程序(诸如一号应用程序406和二号应用程序408)的任何类型或形式的计算设备。容器主机计算设备402的附加的示例包括但不限于存储服务器、数据库服务器、应用程序服务器和/或网络服务器,这些服务器被配置为运行某些软件应用程序和/或提供各种存储、数据库和/或网络服务。虽然在图4中被示出为单个实体,但是容器主机计算设备402可包括和/或表示彼此协同工作和/或操作的多个服务器。在示例中,容器主机计算设备402可提供可促进多重租赁的云计算计算环境。本文所述的模块中的一个或多个还可为每个顾客分割多租户应用程序的数据和/或配置信息以使得一个顾客不能访问另一个顾客的数据和/或配置信息。例如,容器主机计算设备402可以使得一号用户410和二号用户412能够共享二号应用程序408,同时仅使得一号用户410能够使用一号应用程序406。在一些实施方案中,本文所述的模块中的一个或多个模块可对容器主机计算设备402进行编程,以使得二号应用程序408能够在非特权应用程序容器404中执行系统管理操作,而不会不利地影响一号应用程序406。这使得一号应用程序406和二号应用程序408能够在容器主机计算设备402上的非特权容器404中全力运行而不获得根等效特权。
虽然上述公开使用特定框图、流程图和示例阐述了各种实施方案,但每个框图部件、流程图步骤、操作和/或本文描述和/或示出的部件可使用多种硬件、软件或固件(或它们的任意组合)配置单独和/或共同地实施。此外,包含在其他部件内的部件的任何公开应当被视为在本质上是示例的,因为可实施许多其他架构来实现相同的功能性。
在一些示例中,图1中的示例性系统100的全部或一部分可以表示基于云计算或网络的环境的部分。云计算环境可经由互联网提供各种服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等)可通过网页浏览器或其它远程接口访问。本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。
在各种实施方案中,图1中的示例性系统100的全部或一部分可促进基于云的计算环境内的多重租赁。换句话讲,本文所述的模块可配置计算系统(例如,服务器)以促进本文所述的功能中的一种或多种的多重租赁。例如,本文所述的模块中的一个或多个可对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述的模块中的一个或多个还可为每个顾客分割多租户应用程序的数据和/或配置信息以使得一个顾客不能访问另一个顾客的数据和/或配置信息。
根据各种实施方案,图1中的示例性系统100的全部或一部分可以在虚拟环境内实现。例如,本文所述的模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,术语“虚拟机”通常是指由虚拟机管理器(例如,超级管理程序)从计算硬件中提取出来的任何操作系统环境。
在一些示例中,图1中的示例性系统100的全部或一部分可以表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实施,所述移动计算设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等)、上述一者或多者的变体或组合、或任何其他合适的移动计算设备。在一些示例中,移动计算环境可具有一个或多个显著特征,包括例如依赖电池供电、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位系统、陀螺仪、加速计等提供的)位置和移动数据、用于限制对系统级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、用于限制应用程序的安装(例如,仅限于安装来源于经批准的应用程序商店的应用程序)的控件,等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。
本文描述和/或示出的进程参数和步骤序列仅以举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不必以示出或讨论的顺序来执行。本文描述和/或示出的各种示例方法也可省略本文描述或示出的步骤中的一个或多个,或除了所公开的那些步骤之外还包括另外的步骤。
虽然本文已经在全功能计算系统的上下文中描述和/或示出了各种实施方案,但是这些示例性实施方案中的一个或多个可以作为各种形式的程序产品来分配,而不考虑用于实际进行分配的计算机可读介质的特定类型。本文所公开的实施方案还可以使用执行某些任务的模块来实现。这些模块可以包括脚本文件、批文件或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施方案中,这些模块可以将计算系统配置为执行本文所公开的示例性实施方案中的一个或多个。
前文的描述旨在使本领域的其他技术人员能够最好地利用本文所公开的示例实施方案的各个方面。该示例性描述并非旨在是详尽的或限于所公开的任何确切形式。在不脱离本公开的实质和范围的前提下,可进行许多修改和变化。本文所公开的实施方案在所有方面均应被视为示例性的而非限制性的。应参考所附权利要求及其等同形式来确定本公开的范围。
除非另有说明,否则本说明书和权利要求中所用的术语“连接到”和“联接到”(以及它们的衍生形式)应被理解为既允许直接的连接,又允许间接(即,经由其他元件或部件)的连接。此外,本说明书和权利要求中所用的术语“一”或“一个”应被理解为意指“至少一个......”。最后,为了便于使用,本说明书和权利要求中所用的术语“包括”和“具有”(以及它们的衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。
Claims (12)
1.一种用于在多租户容器平台上运行应用程序的计算机实现的方法,所述方法的至少一部分由包括至少一个处理器的容器主机计算设备执行,所述方法包括:
在所述容器主机计算设备上的容器主机管理员服务处并且经由主机管理员服务套接字句柄从在非特权容器中运行的应用程序接收对特权操作的请求;
执行与所述应用程序相关联的用户的安全检查;
当所述安全检查导致批准时,将所请求的特权操作与所允许的操作的白名单进行比较以确定所请求的特权操作是允许的;以及
当所请求的特权操作是允许的时,发起运行所请求的特权操作,
其中,所述方法还包括:
在拦截器处从所述应用程序接收所述请求;
由所述拦截器对所述请求执行白名单检查;
当所述白名单检查成功时,由所述拦截器调用容器管理员;
当满足用于所请求的操作的条件时,由所述容器管理员使用所述主机管理员服务套接字句柄发起所述容器管理员与所述容器主机管理员服务之间的连接;以及
向所述容器主机管理员服务发送具有所请求的操作的细节的所述请求。
2.根据权利要求1所述的计算机实现的方法,还包括:
将所述主机管理员服务套接字句柄从所述容器主机管理员服务传递到所述容器。
3.根据权利要求1所述的计算机实现的方法,其中执行所述安全检查还包括当用户标识指示根用户时发出所述安全检查批准结果。
4.根据权利要求1所述的计算机实现的方法,还包括:
当所请求的特权操作被成功完成或被拒绝时,向容器管理员发送相应响应。
5.根据权利要求1所述的计算机实现的方法,还包括:
在拦截器处接收成功响应;以及
向所述应用程序发送所请求的特权操作成功的通知。
6.根据权利要求1所述的计算机实现的方法,还包括:
当所请求的特权操作未能成功执行时,在用户显示器上显示错误消息。
7.一种用于在多租户容器平台上运行应用程序的系统,所述系统包括:
接收模块,所述接收模块存储在存储器中,所述接收模块在容器主机计算设备上的容器主机管理员服务处并且经由主机管理员服务套接字句柄从在非特权容器中运行的应用程序接收对特权操作的请求;
执行模块,所述执行模块存储在所述存储器中,所述执行模块执行与所述应用程序相关联的用户的安全检查;
比较模块,所述比较模块存储在所述存储器中,当所述安全检查导致批准时,所述比较模块将所请求的特权操作与所允许的操作的白名单进行比较以确定所请求的特权操作是允许的;
发起模块,所述发起模块存储在所述存储器中,当所请求的特权操作是允许的时,所述发起模块发起运行所请求的特权操作;和
至少一个物理处理器,所述至少一个物理处理器执行所述接收模块、所述执行模块、所述比较模块和所述发起模块,
其中,所述系统还包括拦截模块和容器管理模块,其中,
所述拦截模块:
从所述应用程序接收所述请求;
对所述请求执行白名单检查;以及
当所述白名单检查成功时,调用容器管理模块;并且
所述容器管理模块:
当满足用于所请求的操作的条件时,使用所述主机管理员服务套接字句柄发起所述容器管理模块与所述容器主机管理员服务之间的连接;以及
向所述容器主机管理员服务发送具有所请求的操作的细节的所述请求。
8.根据权利要求7所述的系统,其中所述容器主机管理员服务将所述主机管理员服务套接字句柄传递到所述容器。
9.根据权利要求7所述的系统,其中执行所述安全检查还包括当用户标识指示根用户时发出所述安全检查批准结果。
10.根据权利要求7所述的系统,其中当所请求的特权操作被成功完成或被拒绝时,所述发起模块向容器管理模块发送相应响应。
11.根据权利要求7所述的系统,还包括拦截模块,其用于:
接收成功响应;以及
向所述应用程序发送所请求的特权操作成功的通知。
12.根据权利要求7所述的系统,其中当所请求的特权操作未能成功执行时,所述发起模块在用户显示器上显示错误消息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/908854 | 2018-03-01 | ||
US15/908,854 US11683311B2 (en) | 2018-03-01 | 2018-03-01 | Systems and methods for running applications on a multi-tenant container platform |
PCT/US2019/019798 WO2019168957A1 (en) | 2018-03-01 | 2019-02-27 | Systems and methods for running applications on a multi-tenant container platform |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111684418A CN111684418A (zh) | 2020-09-18 |
CN111684418B true CN111684418B (zh) | 2023-11-14 |
Family
ID=65763819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980010986.1A Active CN111684418B (zh) | 2018-03-01 | 2019-02-27 | 用于在多租户容器平台上运行应用程序的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11683311B2 (zh) |
EP (1) | EP3759597A1 (zh) |
JP (1) | JP7016964B2 (zh) |
CN (1) | CN111684418B (zh) |
WO (1) | WO2019168957A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11683311B2 (en) | 2018-03-01 | 2023-06-20 | Veritas Technologies Llc | Systems and methods for running applications on a multi-tenant container platform |
JP7238632B2 (ja) * | 2019-06-26 | 2023-03-14 | オムロン株式会社 | 制御システム、制御装置、および管理方法 |
CN111078367A (zh) * | 2019-12-23 | 2020-04-28 | 北京云联万维技术有限公司 | 一种请求处理方法、装置、电子设备和存储介质 |
CN113765871B (zh) * | 2020-09-09 | 2023-08-04 | 北京沃东天骏信息技术有限公司 | 堡垒机管理的方法和装置 |
US20220327196A1 (en) * | 2021-03-30 | 2022-10-13 | Security Enhancement Systems, Llc | Wireless shared omnibus access control method and system |
CN113221103B (zh) * | 2021-05-08 | 2022-09-20 | 山东英信计算机技术有限公司 | 一种容器安全防护方法、系统及介质 |
US11928528B2 (en) * | 2022-01-12 | 2024-03-12 | Dell Products L.P. | Container in container method to confine privileged mode execution during host data exchange in a containerized environment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104838630A (zh) * | 2012-10-10 | 2015-08-12 | 思杰系统有限公司 | 基于策略的应用程序管理 |
CN104982005A (zh) * | 2013-01-22 | 2015-10-14 | 亚马逊技术有限公司 | 虚拟化环境中的特权加密服务 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2518008A1 (en) | 2004-10-01 | 2006-04-01 | Microsoft Corporation | System and method for determining target failback and target priority for a distributed file system |
US8850041B2 (en) | 2009-05-26 | 2014-09-30 | Microsoft Corporation | Role based delegated administration model |
US10348767B1 (en) * | 2013-02-26 | 2019-07-09 | Zentera Systems, Inc. | Cloud over IP session layer network |
US9985953B2 (en) * | 2014-11-10 | 2018-05-29 | Amazon Technologies, Inc. | Desktop application fulfillment platform with multiple authentication mechanisms |
US10303879B1 (en) * | 2014-11-06 | 2019-05-28 | Amazon Technologies, Inc. | Multi-tenant trusted platform modules |
US9729579B1 (en) * | 2015-04-27 | 2017-08-08 | Symantec Corporation | Systems and methods for increasing security on computing systems that launch application containers |
US10305747B2 (en) * | 2016-06-23 | 2019-05-28 | Sap Se | Container-based multi-tenant computing infrastructure |
US20180025152A1 (en) * | 2016-07-19 | 2018-01-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Securing multi-tenancy in a datacenter using nanoservices |
US11232223B2 (en) * | 2016-09-13 | 2022-01-25 | Salesforce.Com, Inc. | Providing web application components within remote systems |
US10373284B2 (en) * | 2016-12-12 | 2019-08-06 | Amazon Technologies, Inc. | Capacity reservation for virtualized graphics processing |
US11683311B2 (en) | 2018-03-01 | 2023-06-20 | Veritas Technologies Llc | Systems and methods for running applications on a multi-tenant container platform |
-
2018
- 2018-03-01 US US15/908,854 patent/US11683311B2/en active Active
-
2019
- 2019-02-27 JP JP2020543381A patent/JP7016964B2/ja active Active
- 2019-02-27 EP EP19710896.2A patent/EP3759597A1/en active Pending
- 2019-02-27 CN CN201980010986.1A patent/CN111684418B/zh active Active
- 2019-02-27 WO PCT/US2019/019798 patent/WO2019168957A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104838630A (zh) * | 2012-10-10 | 2015-08-12 | 思杰系统有限公司 | 基于策略的应用程序管理 |
CN104982005A (zh) * | 2013-01-22 | 2015-10-14 | 亚马逊技术有限公司 | 虚拟化环境中的特权加密服务 |
Also Published As
Publication number | Publication date |
---|---|
CN111684418A (zh) | 2020-09-18 |
EP3759597A1 (en) | 2021-01-06 |
WO2019168957A1 (en) | 2019-09-06 |
US11683311B2 (en) | 2023-06-20 |
JP7016964B2 (ja) | 2022-02-07 |
US20190273744A1 (en) | 2019-09-05 |
JP2021513710A (ja) | 2021-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111684418B (zh) | 用于在多租户容器平台上运行应用程序的系统和方法 | |
CN111492347B (zh) | 用于更新容器的系统和方法 | |
US10726518B2 (en) | Capacity reservation for virtualized graphics processing | |
US10169068B2 (en) | Live migration for virtual computing resources utilizing network-based storage | |
US9407664B1 (en) | Systems and methods for enforcing enterprise data access control policies in cloud computing environments | |
US20180329647A1 (en) | Distributed storage system virtual and storage data migration | |
US11093148B1 (en) | Accelerated volumes | |
US10606646B1 (en) | Systems and methods for creating a data volume from within a software container and initializing the data volume with data | |
US9509697B1 (en) | Systems and methods for authorizing attempts to access shared libraries | |
US9836327B1 (en) | Network-based storage access control for migrating live storage clients | |
EP3022647B1 (en) | Systems and methods for instantly restoring virtual machines in high input/output load environments | |
US11194913B2 (en) | Unsecure to secure transition of mutable core root of trust | |
US10298681B1 (en) | Systems and methods for rerouting data sent between application containers and storage containers | |
US10684895B1 (en) | Systems and methods for managing containerized applications in a flexible appliance platform | |
CN110692043B (zh) | 用于对备份数据进行负载平衡的系统和方法 | |
US20200167188A1 (en) | Off-the-shelf software component reuse in a cloud computing environment | |
US10909136B1 (en) | Systems and methods for automatically linking data analytics to storage | |
US10740021B1 (en) | Systems and methods for recovery of computing environments via a replication solution | |
US10831394B2 (en) | Live upgrade of storage device driver using shim application | |
US11853585B2 (en) | Performing a point-in-time snapshot copy operation within a data consistency application | |
US11150890B2 (en) | File system synchronization-based updating | |
US11698755B1 (en) | Physical hardware controller for provisioning dynamic storage services on processing devices | |
US20230115045A1 (en) | Dynamically throttling snapshot capture rates | |
US11216297B2 (en) | Associating virtual network interfaces with a virtual machine during provisioning in a cloud system | |
US11775395B2 (en) | Withdrawing a point-in-time snapshot copy operation within a data consistency application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |