CN107873092A - 控制对命令执行的用户访问 - Google Patents

控制对命令执行的用户访问 Download PDF

Info

Publication number
CN107873092A
CN107873092A CN201680034744.2A CN201680034744A CN107873092A CN 107873092 A CN107873092 A CN 107873092A CN 201680034744 A CN201680034744 A CN 201680034744A CN 107873092 A CN107873092 A CN 107873092A
Authority
CN
China
Prior art keywords
user
order
instruction
execution
shell
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680034744.2A
Other languages
English (en)
Other versions
CN107873092B (zh
Inventor
奥马尔·哈什米
钟怡倩
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 CN107873092A publication Critical patent/CN107873092A/zh
Application granted granted Critical
Publication of CN107873092B publication Critical patent/CN107873092B/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
    • H04L63/102Entity profiles
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

本发明描述了用于向用户提供访问以便在网络可访问计算资源上执行命令的技术。在某些情况下,为用户建立许可以便在由在线服务提供的计算节点上执行命令,例如通过在那些提供的计算节点外部维护各种许可信息,以用于在控制用户访问、使用和/或修改所提供的计算节点的能力。接口组件可以使用此类外部许可信息,以便确定特定用户是否被授权在一个或多个特定计算节点上执行一个或多个特定命令,并且在被授权时启动在所述计算节点上同时并独立地执行所述命令。所述接口组件还可以聚合来自执行所述命令的每个计算节点的结果,之后将所述结果提供给所述用户。

Description

控制对命令执行的用户访问
背景技术
许多公司和其他组织操作计算机网络,这些计算机网络使众多计算系统互连以支持它们的操作,其中计算系统可位于同一位置(例如,作为私有本地局域网络、或“LAN”的一部分),或者相反,位于多个截然不同的地理位置(例如,经由一个或多个其他私有或共享中间网络加以连接)。例如,容纳显著数量互连共同定位计算系统的数据中心已变得司空见惯,如由单一组织运营或代表所述组织运营的私有数据中心,以及由实体作为业务加以运营来向客户提供计算资源的公共数据中心。一些公共数据中心运营商为各种客户所拥有的硬件提供网络访问、电力以及安全安装设施,而其他公共数据中心运营商提供“全方位服务”设施,这些设施也包括可供其客户使用的硬件资源。然而,随着典型数据中心和计算机网络的规模和范围不断扩大,供应、操纵和管理相关联的物理计算资源的任务变得越来越复杂。
商用硬件用虚拟化技术的出现已针对管理大规模计算资源为需求多样化的许多客户提供了一些益处,从而允许在在多个客户之间有效且安全地共享各种计算资源。例如,虚拟化技术(诸如由VMWare、XEN、Linux的KVM(“基于内核的虚拟机”)、或用户模式Linux所提供的虚拟技术)可以通过为每个用户提供由单个物理计算机托管的一个或多个虚拟机,允许所述单个物理计算机在多个用户之间共享,其中每个这样的虚拟机充当不同逻辑计算系统的软件模拟,所述软件模拟使用户幻想他们是给定硬件计算资源的唯一操作员和管理员,同时还在各种虚拟机之间提供了应用程序隔离和安全性。
虽然存在网络可访问服务(其向用户提供对虚拟机和服务所控制的其他计算相关资源的访问),但存在有关这种访问的各种问题。
附图说明
图1是示出示例性环境的网络图,在所述示例性环境中可以使用用于向用户提供访问以便在网络可访问计算资源上执行命令的技术。
图2A-2B示出向用户提供访问以便在网络可访问计算资源上执行命令的实例。
图3是示出示例性计算系统的框图,所述示例性计算系统适合于执行系统的实施方案以用于向用户提供访问以便在网络可访问计算资源上执行命令。
图4示出计算资源服务例程的示例性实施方案的流程图。
图5示出外壳程序聚合器例程的示例性实施方案的流程图。
图6示出许可代理程序例程的示例性实施方案的流程图。
具体实施方式
本发明描述了用于控制网络可访问计算资源的技术,所述计算资源诸如由服务提供商环境向客户和其他用户提供的计算节点和其他计算相关资源。在至少一些实施方案中,服务提供商环境可以提供供此类用户使用的用户命令执行接口组件,诸如以便提供与外壳程序工具类似的接口。用户命令执行接口组件还可以维护用于控制用户访问、使用和/或修改所提供的计算节点和其他计算相关资源的能力的各种许可信息,诸如存储在那些提供的计算节点和其他计算相关资源外部的许可信息。
在至少一些实施方案中,用户命令执行接口组件可以确定用户是否被授权在一个或多个计算节点或其他计算相关资源上执行一个或多个指示的命令。如果确定用户被授权,那么用户命令执行接口组件然后可以在计算相关资源上执行命令或者以其他方式启动命令的执行。例如,当计算相关资源包括执行程序的计算节点时,那么命令可以提供给那些计算节点并由那些计算节点执行,或者,如果计算相关资源包括存储相关资源,那么用户命令执行接口组件可以在那些存储相关资源上执行命令,诸如以使数据得以存储或检索。例如,用户命令执行接口组件的操作可以由向用户命令执行接口组件的外壳程序聚合器模块提供一个或多个命令的客户端装置的用户启动,以便执行有关在其上要执行命令的一个或多个计算相关资源的信息。外壳程序聚合器模块确定用户是否被授权在计算相关资源上执行命令,诸如通过查询用户命令执行接口组件的许可代理程序模块来确定用户是否被授权进行此类动作,或通过另外使用在计算相关资源外部存储的许可信息,此类许可信息可以具有各种形式并且以各种方式使用,如下面更详细描述的。如果用户被授权,那么外壳程序聚合器模块与每个计算相关资源交互,以使计算相关资源执行命令或以其他方式实现针对计算相关资源的命令。在一些实施方案中,外壳程序聚合器模块可以采用外壳程序传输层模块,以便与特定计算相关资源建立安全连接,并且向那些计算相关资源提供命令,以及任选地从这种命令执行获得结果以提供给请求用户。
在至少一些实施方案中,用户命令执行接口组件可以进一步聚合从多个计算节点或其他计算相关资源接收的结果,然后将此类聚合结果提供给请求用户。以此方式,用户命令执行接口组件可以提供用户对多个相关的计算相关资源的有效管理,诸如通过有助于在多个计算节点上同时且独立地执行一个或多个命令。例如,外壳程序聚合器模块可以管理要在多个计算相关资源上执行的一个或多个命令,所述资源包括一组相关计算节点(例如,由服务提供商环境向用户提供的虚拟计算机网络中的多个计算节点;在这种虚拟计算机网络的多个逻辑子网之一中的多个计算节点;已经进行用户标记以共享公共标签的多个计算节点,不管是由请求用户和/或其他用户;在公共地理位置中的多个计算节点,诸如由服务提供商环境支持并对应于与地理位置相关联的一个或多个数据中心的多个地理位置中的一个;等)。在各种实施方案中,外壳程序聚合器模块管理来自这些计算相关资源中的每一个的结果,然后向用户提供所述结果,包括通过聚合来自多个不同计算节点(执行相同的命令)的结果,然后外壳程序聚合器模块向用户提供所述聚合的结果。此外,来自用户的请求可以具有各种形式,例如像指示要在特定计算节点上执行的特定命令。可替代地,请求可以包括外壳程序聚合器模块用来标识多个对应命令的高级指示或其他信息,和/或可以包括已限定组的多个计算节点或其他计算相关资源的指示,或者包括外壳程序聚合器模块用来识别多个此类计算相关资源的信息。
在以下描述的至少一些实施方案中,所描述的技术可以与一个或多个服务提供商环境所提供的针对计算相关资源的命令一起使用。在其他实施方案中,所描述的技术可以与其他类型的计算相关资源一起使用。以下讨论的实施方案是为了说明的目的而提供的,并为简洁起见而加以简化,并且本发明的技术可以用于各种各样的其他情况,其中一些在以下进行讨论。
图1是示出计算资源服务的实例的网络图,所述计算资源服务向用户提供用户可配置的管理计算节点和/或虚拟计算机网络。在一个或多个此类管理计算节点和/或虚拟计算机网络由计算资源服务配置和提供以用于计算资源服务的用户之后,用户可以从一个或多个远程位置与所提供的计算节点和/或虚拟计算机网络进行交互,诸如以便在计算节点上执行程序,从而在使用所提供的虚拟计算机网络和/或所提供的计算节点时动态地进行修改。所描述的用于向用户提供访问以便在网络可访问计算资源上执行命令和相关功能的技术可以在具有这类计算资源服务的一些实施方案中使用,如本文其他地方更详细讨论的,包括相对于图2A-2B的实例以及结合图4-6示出和描述的流程图。
特别地,图1的示例性系统100包括使用一个或多个配置的计算系统(未示出)来实现的计算资源服务107,以便使用用户计算装置132通过一个或多个计算机网络102(例如,通过互联网)向用户(未示出)提供功能性。例如,计算资源服务107可以是由服务提供商实体提供的环境的部分,诸如通过互联网或其他网络可用的网络服务。计算资源服务107使用户能够访问和使用由计算资源服务107向用户提供的计算节点、虚拟计算机网络和/或其他计算资源,不过,在其他实施方案和情况下,特定计算资源服务可以提供这些类型的计算相关资源的子集(例如,计算节点、虚拟计算机网络和其他计算资源中的仅一个)。例如,多个用户通过计算机网络102与计算资源服务107的计算资源系统模块112进行交互,以便创建和配置由计算资源服务107提供的各种已提供的计算节点127和/或虚拟计算机网络122。在此示例性实施方案中,计算资源系统模块112辅助向远程用户提供计算资源服务107的功能性。此外,计算资源服务107包括用户命令执行接口组件114,以便进一步辅助向远程用户提供计算资源服务107的功能性,诸如以便执行所描述的技术中的一些或全部来控制用户对所提供的计算节点127、所提供的虚拟计算机网络112和/或其他提供的计算资源197(例如,数据库、存储卷或其他存储结构)的访问。在其他实施方案中,用户命令执行接口组件可以与一个或多个此类计算资源服务分开操作(例如,由第一运营商实体提供,所述第一运营商实体与提供那些一个或多个计算资源服务的一个或多个其他第二运营商实体不同),诸如用于任选的单独用户命令执行接口组件145,以便如果计算资源服务附属于独立用户命令执行接口组件(例如,用户命令执行接口组件的客户或客户端),那么控制用户对此类计算资源服务的访问,而不管是代替还是补充此类计算资源服务的任何此类用户命令执行接口组件114。
在至少一些实施方案中,计算资源系统模块112和用户命令执行接口组件114可以在计算资源服务107的一个或多个计算系统(未示出)上执行,并且可以提供供计算资源服务107的用户使用的一个或多个接口119,诸如使得远程计算系统能够以编程方式与计算资源服务交互的一个或多个API(应用程序编程接口),以便代表用户访问计算资源服务107的一些或全部功能性(例如,创建、配置和/或启动所提供的计算节点127和/或管理的虚拟计算机网络122的使用)。此外,在至少一些实施方案中,接口119可以包括一个或多个GUI(图形用户接口),用户通过其手动地与计算资源服务107进行交互以便执行一些或全部此类动作。
在所示的实施方案中,当计算装置132的用户使用接口119来发送旨在用于所提供的计算相关资源127、122和197的命令或相关请求时,至少一些此类命令或相关请求被引导到用户命令执行接口组件114,以便确定是否以及如何执行此类命令或相关请求,其中用户命令执行接口组件114然后代表用户适当地与所提供的计算相关资源127、122和197执行后续交互。如别处更详细描述的,此类交互可以包括例如以下中的一个或多个:通过在一个或多个此类计算相关资源127、122和197上执行一个或多个命令来修改或以其他方式更改其操作(例如,通过所提供的计算节点127执行命令,向所提供的虚拟计算机网络112和/或其他计算资源197施加命令等);通过在一个或多个此类计算相关资源127、122和197上执行一个或多个命令从其收集状态信息,并且任选地向请求用户提供命令结果(不管是聚合的还是个体化的);修改计算相关资源127、122和197中用于请求用户的那个,诸如通过终止或停止先前分配给用户并为用户提供的特定计算相关资源的使用,和/或通过为用户添加或以其他方式启动附加提供的与计算相关资源127、122和197的使用;等。在一些实施方案和情况中,旨在用于所提供的计算相关资源127、122和197的一些命令或其他相关请求可以直接发送到那些提供的计算相关资源,而不受用户命令执行接口组件的控制。
例如,计算机网络102可以是链接网络中的公共可访问网络,可能由不同方操作,诸如互联网。类似地,计算资源服务107可以包括一个或多个内网(未示出),以用于将计算资源服务107的计算系统彼此连接,诸如与计算机网络102分开且不同的内网。
所提供的虚拟计算机网络122中的每一个可以由用户以各种方式配置,所述虚拟计算机网络122提供用于所述用户。在一些情况下,至少一些此类虚拟计算机网络可以创建并配置为用户的现有远程私有计算机网络的网络扩展,尽管在所示的实施方案中所提供的虚拟计算机网络122未示为连接到此类其他现有计算机网络。此外,至少一些此类虚拟计算机网络可以各自是只能由创建它的用户访问的私有计算机网络,尽管在其他实施方案中由计算资源服务107为用户提供的至少一些计算机网络可以可是公开访问的。在所示的实例中,所提供的每个计算机网络122包括多个计算节点(未示出),所述计算节点中的至少一些来自由计算资源服务107提供的或者在计算资源服务107控制下的多个计算节点127,而在其他实施方案中,至少一些其他计算系统137可用于为一个或多个所提供的虚拟计算机网络122提供一些或全部计算节点,此类其他计算系统137例如可以由用户提供或控制,使用那些其他计算系统137的虚拟计算机网络122供所述用户使用,或者可以是由第三方提供的计算系统(例如,收费)。例如,在至少一些实施方案中,每个提供的虚拟计算机网络122可以包括专用于用作所提供的计算机网络的部分的客户配置数量的多个此类计算节点。特别地,用户可以与计算资源系统模块112进行交互,以便将一定数量的计算节点配置成最初包括在为用户提供的计算机网络中(例如,通过与计算资源服务107所提供的API的一个或多个程序性交互),并且还可以配置所提供的虚拟计算机网络的网络拓扑(例如,各自包括所提供的计算节点127、虚拟路由器装置和其他虚拟联网装置中的一个或多个的一个或多个逻辑子网、VPN(虚拟专用网络)连接或与其他外部实体的连接的端点等)。
此外,在至少一些实施方案中,计算资源服务107可以提供多种不同类型的计算节点,例如像具有各种性能特征(例如,处理器速度、可用存储器、可用存储器等)或其他能力的计算节点。如果这样,那么在至少一些此类实施方案中,用户可以指定要包括在为客户提供的计算机网络中的计算节点的类型。此外,在至少一些实施方案中,计算节点可以是物理计算系统,或者可以是各自托管在一个或多个物理计算系统或物理计算机器上的虚拟机,并且被处理用于管理虚拟计算机网络的通信可以包括以各种格式的数据传输(例如,消息、分组、帧、流等)。此外,在至少一些情况下,计算资源服务的实施方案可以是程序执行服务(或“PES”)的一部分或以其他方式附属于所述程序执行服务,所述程序执行服务代表服务的多个用户执行多个程序,诸如程序执行服务,其在多个物理网络(例如,一个或多个数据中心内的多个物理计算系统和网络)上使用多个计算系统,任选地在多个地理位置中。因此,在各种实施方案中,可能以各种方式为用户提供计算相关资源127、197和/或122,并且所述计算相关资源127、197和/或122可以配置成在各种实施方案中具有各种类型的功能。
图2A-2B示出提供用户访问以便在网络可访问计算资源上执行命令的实例,诸如可以由图1的计算资源服务提供。如在本文所描述的,计算资源服务提供供计算资源服务的用户使用的计算节点。
图2A示出示例性系统200A,所述示例性系统200A包括用户外壳应用程序模块204、用户命令执行接口组件206和计算资源服务226。例如,用户外壳应用程序模块204a-c可以在用户的客户端装置(未示出)上执行,以便使得用户能够向计算资源服务226的计算节点228提供命令和其他相关请求。
用户命令执行接口组件206向计算资源服务226提供前端接口,其接收用户外壳应用程序模块204为用户提供的命令和其他相关请求。用户命令执行接口组件206提供用于确定用户是否被授权在一个或多个计算节点228上执行一个或多个命令的功能性。如果用户被授权,那么用户命令执行接口组件206执行与那些计算节点228中的至少一个的交互以使那些计算节点执行命令。如果适当,用户命令执行接口组件206还从计算节点228接收执行命令的结果,并且如果这样,可以在一些情况下聚合那些结果,之后将所述结果提供给用户的对应用户外壳应用程序模块204。
在所示的实施方案中,用户命令执行接口组件206包括外壳程序聚合器模块210、许可代理程序模块214和外壳程序传输层模块218。外壳程序聚合器模块210从用户正使用的用户外壳应用程序模块204接收命令和其他相关请求,并且查询许可代理程序模块214以便确定用户是否被授权在一个或多个计算节点228(例如,计算节点228a-c,如果那些计算节点先前被分配给用户并且被提供以供用户使用,或者相反,用于另一个用户,用户可能正在所述另一个用户的许可或引导下作用)上执行一个或多个对应命令。如果用户被授权在计算节点228a-c上执行命令,那么外壳程序聚合器模块210指导外壳程序传输层模块218执行与计算节点228a-c的对应交互,以使计算节点228a-c执行该命令并且接收结果(如果适当)。外壳程序聚合器模块206从外壳程序传输层模块218接收在计算节点228a-c上执行命令的结果(如果由模块218接收),并且任选地聚合结果,之后将所述结果提供给用户外壳应用程序模块204。
许可代理程序模块214访问许可储存库212以获得用户的许可,并且将获得的许可与用户身份、要执行的命令、以及要在其上执行命令的计算节点进行比较。许可储存库212维护一个或多个用户的许可,其中每个用户的许可标识用户被授权(或未被授权)执行哪些命令以及在哪些计算节点上。以此方式,用户命令执行接口组件可以维护和使用计算节点228之外的许可信息,包括确定一个或多个命令是否被授权用于一个或多个特定计算节点而不与那些计算节点进行交互,并且如果用户未被授权在那些计算节点上执行那些命令(或任何命令),那么可以阻止用户与那些计算节点的交互。如以下更详细讨论的,在各种实施方案中,可能以各种方式指定和使用许可信息。
外壳程序传输层模块218与要执行一个或多个命令的每个计算节点228建立连接(例如,安全连接)。在一些实施方案中,外壳程序传输层模块218可以初始化单独的外壳程序会话220a-c,以用于与计算节点228a-c建立安全连接或信道(例如,安全外壳程序或ssh等)。一旦建立了安全连接,外壳程序传输层模块218将命令提供给计算节点228a-c以供执行,诸如提供给在计算节点228a-c上执行的外壳程序(未示出)。在计算节点228a-c上执行命令的结果(如果有)通过安全连接和外壳程序会话220a-c来返回外壳程序传输层模块218。外壳程序传输层模块218然后将结果转发到外壳程序聚合器模块210。应当认识的是,外壳程序传输层模块218可以采用其他机制,以用于在计算节点或其他计算相关资源(例如像Windows PowerShell、MySQL等)上执行命令。
应当理解的是,系统200A可以包括比所示出的那些更多或更少的用户外壳应用程序模块204、外壳程序会话220和计算节点228,并且用户命令执行接口组件的其他实施方案可以具有比所示的那些更多或更少的模块。
图2B示出示例性序列200B,其用于提供用户访问以便根据图2A的示例性系统200A在网络可访问计算资源上执行命令。所示的实例包括由计算资源服务提供的三个计算节点(例如,计算节点228a-c,在此实例中通常被称为节点1、节点2和节点3)。用户通过用户外壳应用程序模块向外壳程序聚合器模块提供请求。在所示的实例中,命令请求识别特定命令和计算节点(例如,节点1、节点2和节点3)以执行命令,尽管在其他情况下可能具有其他形式。外壳程序聚合器模块查询许可代理程序模块,以便确定用户是否被授权在三个计算节点中的每一个上执行命令。许可代理程序模块向外壳程序聚合器模块返回指示用户是被授权(如所示)还是未被授权(未示出)的结果。如果用户被授权,那么外壳程序聚合器模块将命令以及三个计算节点的指示提供给外壳程序传输层模块。然后,外壳程序传输层模块与每个计算节点建立连接,并将命令提供给每个计算节点以供执行。彼此分开且独立的每个计算节点执行命令,并将其执行结果提供回外壳程序传输层模块。应当认识的是,将命令发送到三个节点中的每一个的顺序、或将结果提供回壳程序传输层模块的顺序可能由于许多不同的因素(例如,可用于计算节点以执行命令的计算资源、网络流量等)而与所示出的那些顺序不同。外壳程序传输层将结果转发到外壳程序聚合器模块。然后,外壳程序聚合器模块通过用户外壳应用程序模块将结果提供回用户。在一些实施方案中,外壳程序聚合器模块可以在接收到结果(未示出)时将结果传递给用户外壳应用程序模块,或者在其他实施方案中,外壳程序聚合器模块可能以各种方式中的一种或多种方式将结果聚合在一起(例如,通过顺序列出所有结果;通过结算或组合来自多个计算节点的结果并且提供所得的汇总,诸如结果或各类结果中的多个值中的每一个的计数或积累;通过将结果和提供它们的计算节点进行比较并且提供所得的发现;等),之后将所述结果返回给用户外壳应用程序模块。
如上所述,命令请求可以是或包括要在一个或多个计算节点上执行的命令;然而,在其他实施方案中,命令请求可以包括多个命令、命令组、或对应于多个命令而不具体包括那些多个命令中的任何一个的高级指令或指示等。例如,在一些实施方案中,指令可以是从一个或多个计算节点获取信息的请求(诸如状态请求)、在多个计算节点中执行或修改分布式任务的请求、在多个计算节点中获得关于先前初始化或当前正执行的分布式任务的信息的请求;等。根据此指令,外壳程序聚合器模块210确定要在一个或多个计算节点上执行的一个或多个命令,以便实现与命令请求相关联的指令。在一些实施方案中,外壳程序聚合器模块可以存储指令列表和与每个指令相关联的命令。以此方式,外壳程序聚合器模块可以基于所接收的指令来查找要提供给计算节点的命令。
此外,命令请求可以单独识别一个或多个计算节点(例如,通过计算节点名称、网络地址等)或一个或多个计算节点组以执行命令。例如,命令请求可以是在virtual_computer_network_M中的所有计算节点上执行command_A。在此实例中,外壳程序聚合器模块确定哪些计算节点在virtual_computer_network_M内,诸如通过查询虚拟计算机网络中的一个计算节点,以寻找相同虚拟计算机网络中的其他节点的列表,然后将命令提供给那些计算节点以供执行。在其他实施方案中,命令请求可以标识特定的计算资源服务、计算资源等,而不识别每个单独的计算节点。例如,命令请求可以是“多少附加的存储可供user_Z使用”。然后外壳程序聚合器模块确定哪些计算节点正在向user_Z提供存储,其中user_Z可以是与提供命令请求的用户相同或不同的用户。以此方式,用户可以在多个计算节点上执行命令,而不单独获知命令或直接将命令从用户提供给多个计算节点中的每一个。
如上所述,许可代理程序模块214确定用户是否被授权在一个或多个计算节点上执行一个或多个命令。许可代理程序模块可以在每个命令和每个计算节点(例如,每个命令/计算节点组合)的基础上确定用户是否被授权在每个计算节点上执行每个命令。在一些实施方案中,授权可以是整体确定,使得如果用户对于一个命令/计算节点组合是未被授权的,那么用户对于提供给外壳程序聚合器模块的整体命令请求是未被授权的。在其他实施方案中,授权可以是单独确定,使得向计算节点提供命令并且在计算节点上执行命令,以用于用户被授权的命令/计算节点组合,但不用于用户未被授权的命令/计算节点组合。以此方式,一些请求的命令可以在一些计算节点上执行而不是在其他计算节点上执行,而其他命令可以在其他计算机节点上执行或者根本不执行。在各种实施方案中,建立许可的管理员还可以指示许可代理程序模块为每个用户确定整体授权还是个体化授权。在各种其他实施方案中,用户可以在计算资源服务内部,或者可以在计算资源服务外部,诸如计算资源服务的客户。
尽管本文描述的一些实施方案涉及在计算节点上执行命令,但是可以将命令提供给其他可寻址项或者在其他可寻址项上执行所述命令,所述可寻址项例如像应用程序、虚拟化容器(例如,使应用程序部署自动化的操作系统级虚拟化)等。在一些实施方案中,每个计算节点可以包括一个或多个容器,并且可以采用本文描述的实施方案以便在计算节点上的一个或多个容器上执行一个或多个命令。
应当理解的是,外壳程序聚合器模块210、许可代理程序模块214和外壳程序传输层模块218的功能可以如图所示的被设置为单独模块,或者它可以由一个或多个其他模块提供,并且任选地,许可代理程序模块和/或外壳程序传输层模块的功能被包括作为外壳程序聚合器模块的一部分。类似地,用户外壳应用程序模块204可以是任选的,并且用户可以通过浏览器、API调用或其他接口来提供命令请求。在各种实施方案中,用户命令执行组件206或其任何模块的功能性可以是计算资源服务的另一个模块的子模块或子组件(例如,图1的计算资源系统模块112)。在一些实施方案中,用户命令执行接口组件可以作为计算资源服务的计算资源系统模块的前端进行操作。在其他实施方案中,用户命令执行组件可以是独立模块(例如,如图1所示),使得计算资源服务的计算资源系统模块使用户能够独立于用户命令执行接口组件配置计算节点或者建立其他用户的许可,所述用户命令执行接口组件使用户能够提供要在计算节点上执行命令的请求。
还应当认识的是,接收许可并提供在计算节点上执行命令的请求的用户可以与为其提供计算节点的计算资源服务的用户(例如,所提供的计算节点的接收者用户)相同或不同。例如,可以向一组web开发员提供一组计算节点以便开发用于计算资源服务的网站。用户可以被指定为充当计算节点的管理员,并且可以为其他用户(例如,IT支持技术人员用户)提供许可,以便在提供给web开发员的该组计算节点内的一个或多个特定计算节点上执行特定命令。以此方式,用户命令执行接口组件206维护特定用户在特定计算节点上执行特定命令的许可,其独立于由计算资源服务维护的其他用户访问计算节点的许可。另外,在一些实施方案和情况下,许可可以使得用户能够承担其他用户的角色,以便在计算节点上执行命令。在另外的其他实施方案中,可以基于模板许可(例如,只读策略、用户角色等)为一个或多个用户选择许可。因此,在各种实施方案中,可能以各种方式指定和使用许可信息。例如,在一些实施方案中,用户命令执行接口组件和/或计算资源服务可以使用联合数据库身份模型,和/或可以限定具有相关联的访问许可的各种角色,其中每个用户与零个或多个此类角色相关联。在一些实施方案中,特定用户可以管理或引导一组多个用户,其接收对提供给该特定用户或该组的一个或多个计算节点或其他计算相关资源中的一些或全部的共享访问,使得所有组用户具有相同的访问许可,或者相反,不同组成员相对于特定命令或命令类型和/或相对于特定计算节点或计算相关资源类型被分配不同的许可。可指定的访问许可的非排他性实例包括以下:允许或不允许的用户、命令和/或计算相关资源的组合;访问控制列表、或针对特定计算相关资源和/或命令和/或用户的其他类型的访问许可,诸如以指定读取、写入和/或执行访问许可;匹配被授权或未被授权的命令和/或用户和/或计算相关资源的正则表达式;指定对所有或特定命令和/或计算相关资源的授权多个用户的用户组或类型或其他聚合的识别;指定对所有或特定用户和/或计算相关资源的授权多个命令的命令组或类型或其他聚合的识别;指定对所有或特定用户和/或命令的授权多个计算资源的计算资源组或类型或其他聚合的识别;通过相关联的许可信息以及关于哪些用户被分配哪些用户角色的信息的用户角色识别;一个或多个脚本或其他程序,所述脚本或程序在被执行时提供针对或不针对一个或多个用户、命令和/或计算相关资源的组合的授权的指示;等。当指定多个访问许可时,在一些实施方案中还可以使用优先级或排序,以便确定在特定情况下要使用哪个指定的访问许可信息。在各种实施方案中,许可储存库212可以包括指示用户被授权或未被授权执行哪些命令以及在哪些计算节点上的命令/计算节点组合的允许/拒绝列表。
以下是使用正则表达式以用于限定用户许可并且确定用户是否被授权执行命令的一个实例,不过,将理解的是,在其他实施方案中可能以其他方式指定此类信息,和/或在其他实施方案中可以使用其他类型的访问许可。在此实例中,每个用户的表格可以存储在许可储存库中,其中所述表格包括指定用户是否被授权在与用户相关联的任何计算节点上执行匹配命令的正则表达式的列表。虽然此实例中的信息并不是特定于特别的计算节点,但应当理解的是,在其他实施方案中,此类信息还可以被指定为应用于计算节点的特殊计算节点或组或类型(或者其他类型的计算资源)。当用户向外壳程序聚合器模块提供命令时,许可代理程序可对表格进行搜索,为该用户寻找命令的匹配和存储的正则表达式(例如,如果存在多个匹配表达式,那么寻找第一匹配或最高优先级匹配)。一旦匹配被识别,匹配的正则表达式的对应“允许/拒绝”许可或动作指示用户是否被授权执行该命令。这种存储的表格的一个非限制性实例可以如下:
在以上表格中,“匹配”列可以包括用于与要执行的命令进行比较的正则表达式,并且“动作”列指示用户是被授权(例如,允许)还是未被授权(例如,拒绝)执行与对应正则表达式匹配的命令。在此实例中,‘ls’是列出一些操作系统的目录内容的命令,‘cat’是查看一些操作系统的文件内容的命令,并且‘.*’是匹配零个或多个字符的任意组合的通配符表达式。在一些实施方案和情况下,也可以采用其他更复杂的正则表达式。例如,具有动作“允许”的正则表达式‘ls/home/user-a/’可以授权用户列出特定目录‘/home/user-a/*’的内容,但是具有动作“拒绝”的较后或较低优先级正则表达式‘ls.*’可以禁止用户列出任何其他目录的内容。在以上的示例性表格中,两个前斜线(‘//’)是用于指示斜线之间的内容是正则表达式的语法,尽管也可以采用其他语法。另外,表格中的条目是用于说明性目的并且不限于所示的那些。
在一些实施方案中,可以允许用户在处于多个不同许可级的一个或多个计算节点上执行一个或多个命令。例如,用户的标准登录身份(例如,用户名)可以具有一个或多个相关联的第一许可级,其授权执行一些命令而非其他命令。如果这样,那么在一些实施方案和情况下,如果用户被授权接管与较高第二许可级相关联的角色或其他用户身份等,所描述的技术可以基于对应的指定配置信息(诸如在一次性基础上,暂时地)确定执行用户已经请求的一个或多个命令,所述命令需要比一个或多个相关联的第一许可级更高的第二许可级(例如,管理员特权)。作为一个实例,用户可以提供具有与多个许可级相关联的要执行的多个命令的请求。如果这样,那么外壳程序聚合器模块查询许可代理程序模块以便确定用户是否被授权在一个或多个相关联计算节点上执行每个命令,诸如基于用户的一个或多个相关联的第一许可级-如果这样,那么外壳程序聚合器模块可以使用用户的登录身份及其一个或多个相关联的第一许可级来启动每个命令的执行。
相反,如果许可代理程序模块指示用户被授权执行处于用户的一个或多个相关联第一许可级的请求命令中的一个或多个第一命令,但是未被授权执行处于用户的一个或多个相关联第一许可级执行的请求命令中的一个或多个其他第二命令,那么在各种实施方案和情况下,外壳程序聚合器模块可能以各种方式行进。在一些此类实施方案和情况下,外壳程序聚合器模块可以为用户启动一个或多个第一命令的执行,但并不为用户启动一个或多个第二命令的执行,诸如将对应的错误信息提供给用户。在其他实施方案和情况下,如果所请求的命令中的至少一个未被授权,那么外壳程序聚合器模块可以不启动任何所请求的命令的执行。在另外的其他实施方案中,外壳程序聚合器模块可以使用用户登录身份和一个或多个相关联的第一许可级来为用户启动一个或多个第一命令的执行,但采取进一步的动作来代表用户启动第二命令的执行,但是通过使用一个或多个其他更高的第二许可级,诸如如果用户被授权承担具有较高第二许可级的另一个用户的角色或登录身份,或与用户相关联的配置信息允许在特定情况下这样使用较高的第二许可级。对于每一点,这种功能可以使得技术人员能够通过以下来解决最终用户的问题:首先使用最终用户的许可来执行命令,以及随后使用管理员许可来执行相同的命令,这可用于确定是否存在有关最终用户许可的问题、节点问题等。如在其中在一个或多个计算节点上执行多个命令的其他情况下一样,在某些情况下,处于不同许可级的单独执行的结果可以单独传递给用户,而在其他情况下,它们可以在发送给用户之前被聚合。还应当认识的是,在一些情况下,用户可能请求执行处于多个不同许可级的一个或多个命令,无论随时间推移是在单个请求中还是在多个请求中。
此外,在一些实施方案和情况下,管理员或服务拥有者(无论是暂时的还是永久的)可以覆写对一个或多个用户的指定许可,使得外壳程序聚合器模块和/或许可代理程序模块可以拒绝所有的命令执行请求而不管那些用户;许可。例如,管理员用户可以向用户命令执行接口组件提供指令在暂时基础上锁住所有的命令执行。这一点的一个非限制性实例可能在高峰时间期间发生,使得用户不执行可能影响计算节点对其他用户的可访问性的命令(例如,系统重启、节点升级、计算密集的命令等)。在一些实施方案中,这种锁住可以基于预定时间段是暂时的,或者其可以是暂时的直到管理员移除覆写为止。
应当理解的是,在其他实施方案中可以使用其他存储机制和数据结构,以便存储用户许可以及用户被授权或未被授权执行的命令以及在哪些计算节点上。
图3是示出示例性计算系统的框图,所述示例性计算系统适合于向用户提供访问以便在网络可访问计算资源上执行命令的实施方案。具体地,图3图示示例性系统300,其包括服务器计算机系统305、用户计算机系统350、提供计算节点370和其他计算系统380。
服务器计算系统305适合于执行自动化操作以便提供至少一些所描述的技术,包括操作用户命令执行接口组件342和提供计算资源服务的实施方案的计算资源系统模块340,所描述的技术的至少一部分可以与所述计算资源服务一起使用,不过,在其他实施方案中,所描述的技术可以在不包括计算资源服务的其他环境中使用,或者计算资源服务可以由与提供用户命令执行接口组件的那些服务器计算系统不同的服务器计算系统提供。
在所示实施方案中,服务器计算系统305具有的组件包括以下:一个或多个硬件CPU(“中央处理单元”)计算机处理器307、各种I/O(“输入/输出”)组件310、存储装置320和存储器330。所示出的I/O组件包括显示器311、网络连接312、计算机可读介质驱动器313以及其他I/O装置315(例如,键盘、鼠标、扬声器等)。此外,用户计算机系统350可以各自具有与服务器计算系统305的组件类似的组件,包括一个或多个CPU 351、I/O组件352、存储装置354和存储器357,不过为了简洁起见没有示出计算系统350的一些细节。其他计算系统380也可以各自包括与相对于服务器计算系统305所示的一些或全部组件类似的组件,包括在多个托管虚拟机中划分提供的硬件资源,但是在此实例中为了简洁起见没有示出此类组件。
用户命令执行接口组件342的一个或多个模块(例如,图1的用户命令执行接口组件114或图2的用户命令执行接口组件206)存储在存储器330中,以便控制用户访问以便在本文描述的网络可访问计算资源上执行命令,并且在一些实施方案中各自都包括各种软件指令,所述软件指令在被执行时对一个或多个CPU处理器307进行编程以便提供所描述的功能性。用户命令执行接口组件342包括外壳程序聚合器模块344(例如,图2的外壳程序聚合器模块210),并且可以任选地包括许可代理程序模块346(例如,图2的许可代理程序模块214)和/或外壳程序传输层模块348(例如,图2的外壳程序传输层模块218)。
一个或多个计算资源系统模块340(例如,图1的计算资源系统模块112)存储在存储器330中以便提供计算资源服务的实施方案,并且在一些实施方案中各自都包括各种软件指令,所述软件指令在被执行时对一个或多个CPU处理器307进行编程以便提供所描述的功能性。计算资源系统模块340的模块通过网络390与用户计算系统350和其他计算系统380进行交互(例如,通过计算资源服务内的局域网或私有网络、互联网或万维网、通过私有蜂窝网络等)。
与计算资源系统模块340的功能性相关的各种信息可以存储在存储装置320中并且在操作期间由计算资源系统模块340使用,诸如以下:与特定用户相关的用户数据321(例如,其账户信息、其提供的计算资源的指定配置信息等);提供给用户的与特定虚拟计算机网络有关的用户虚拟网络数据325(例如,由虚拟计算机网络使用的特定计算资源,诸如相对于所提供的计算节点370;虚拟计算机网络的指定网络拓扑和其他指定的配置信息;等);与特定计算资源相关的计算资源数据323(例如,有关提供给用户的其他计算资源的信息,有关可用作此类提供的计算资源的附加计算资源的信息等,诸如相对于提供的计算节点370);与用户许可信息相关的许可储存库327(例如,用户被授权或未被授权在计算节点上执行的特定命令)。
其他计算系统380可以是由计算资源服务使用的计算系统,以便提供虚拟计算机网络和其他计算资源,诸如在一个或多个数据中心(未示出)中,或提供与用户命令执行接口组件342分开的一个或多个计算资源服务的其他功能或服务。
用户计算系统350和其他计算系统380可以执行各种软件作为与计算资源系统模块340的交互的部分。例如,用户计算机系统350可以各自执行存储器357中的软件,以便与计算资源系统模块340和/或用户命令执行接口组件342交互,诸如Web浏览器358或任选的用户外壳应用程序模块359,包括提供命令请求以便在至少一个计算节点上执行至少一个命令,从计算资源服务请求计算资源,以及与此类计算资源进行交互或以其他方式使用此类计算资源。
应当理解的是,计算系统305、350、370和380仅是说明性的并且不旨在限制本发明的范围。计算系统可以代替地各自包括多个交互计算系统或装置,并且计算系统可以连接到未示出的其他装置,包括通过一个或多个网络(诸如互联网)、通过Web、或通过私有网络(例如,移动通信网络等)。更一般地说,计算系统或其他计算节点可包括可交互并且执行所述类型的功能的硬件或软件的任何组合,其包括但不限于台式计算机或其他计算机、数据库服务器、网络存储装置和其他网络装置、PDA、移动电话、无线电话、寻呼机、电子管理器、互联网电器、(例如,使用机顶盒和/或个人/数字视频记录器的)基于电视的系统和包括适当通信能力的各种其他消费品。此外,在一些实施方案中,由计算资源系统模块340和/或用户命令执行接口组件342提供的功能性可以分布在一个或多个模块中,如本文其他地方所述的。
还应当理解的是,尽管各种项被示出为在使用时存储在存储器中或者存储装置上,但是为了存储器管理和数据完整性的目的,可在存储器与其他存储装置之间传递这些项或它们的部分。或者,在其他实施方案中,软件模块和/或系统中的一些或全部可在另一装置上的存储器中执行,并且通过计算机间的通信来与所示出的计算系统通信。因此,在一些实施方案中,所描述的技术中的一些或全部可以由硬件装置执行,所述硬件装置在由一个或多个软件程序(例如,由计算资源系统模块340和/或用户命令执行接口组件342)或数据结构配置时包括一个或多个处理器和/或存储器和/或存储装置,诸如通过执行一个或多个软件程序的软件指令和/或通过存储此类软件指令和/或数据结构。此外,在一些实施方案中,系统或模块中的一些或全部可能以其他方式来实现或提供,诸如通过使用至少部分地或完全地在固件和/或硬件中实现的装置,包括但不仅限于:一个或多个应用专用集成电路(ASIC)、标准集成电路、控制器(例如,通过执行适当的指令并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA),复杂可编程逻辑装置(CPLD)等。模块、系统和数据结构中的一些或全部也可以存储在非暂时性计算机可读存储介质上(例如,作为软件指令或结构化数据),所述存储介质诸如硬盘或闪存驱动器或其他非易失性存储装置、易失性或非易失性存储器(例如,RAM)、网络存储装置、或由适当驱动器或通过适当连接读取的便携式介质物品(例如,DVD盘、CD盘、光盘等)。在一些实施方案中,所述系统、模块和数据结构也可作为所生成的数据信号(例如,作为载波或其他模拟或数字传播信号的一部分)在各种计算机可读传输介质(包括基于无线的介质和基于有线/电缆的介质)上传输,并且可采取多种形式(例如,作为单个模拟信号或多路复用的模拟信号的一部分,或作为多个离散的数字数据包或帧)。在其他实施方案中,这种计算机程序产品也可采取其他形式。因此,本发明可使用其他计算机系统配置来实现。
图4示出计算资源服务例程400的示例性实施方案的流程图。例如,可以通过执行图3的计算资源系统模块340、图1的计算资源系统模块112,或者通过如本文讨论的任何计算资源服务来提供例程400,诸如执行所描述的技术以用于向用户提供用户可配置的管理计算节点或其他计算相关资源,并且用于配置用户访问以便在此类计算相关资源(例如,一个或多个管理的计算节点等)上执行命令。尽管所描述的用于向用户提供访问以便在网络可访问计算资源上执行命令和相关联功能性的技术在本实例中被讨论为至少由计算资源服务支持,但将理解的是,在其他实施方案中这种功能性可以由与计算资源服务不同的系统提供。
在所示的实施方案中,例程400在框405中开始,其中接收指令或其他信息。在一些实施方案中,指令或其他信息可以来自用户、服务所有者(例如,图1的计算资源服务107的管理者、管理员等)等。在一些实施方案中,指令可以是配置信息以便定制提供给一个或多个用户或为所述一个或多个用户分配的计算资源、针对一个或多个用户的在一个或多个计算节点上执行一个或多个命令的许可等。
例程400继续到决策框410,以便确定在框405中接收的指令或其他信息是否是向一个或多个用户提供一个或多个计算节点的请求,并且如果这样,那么例程400继续到框415。
在框415中,例程400从用户接收配置信息并且确定用户是否被授权进行请求(例如,基于提供所需的费用(如果有);基于用户对计算资源服务的先前注册活动等)。如果用户未被授权进行请求,那么拒绝请求并且例程400继续到决策框420,任选地在产生对应错误消息并且提供给用户之后。如果用户被授权,那么例程400使用由计算资源服务提供的计算机器和其他计算资源,为一个或多个用户(其可以包括请求计算资源的用户)选择一个或多个计算节点,并且使所选择的计算节点对于用户是可用的。在一些实施方案中,可以为用户创建包括一个或多个计算节点的虚拟计算机网络。在其他实施方案中,可以在虚拟计算机网络内创建一个或多个子网,使得每个子网包括提供给用户的至少一个计算节点。
在框415之后,或者如果在决策框410确定在框405中没有接收到向一个或多个用户提供计算节点的信息,那么例程400继续到决策框420,以便确定在框405中是否接收到为一个或多个用户创建或以其他方式修改许可以在框415中选择并使其对用户可用的一个或多个计算节点上执行一个或多个命令的信息。如果提供了许可,那么例程400继续到框425。
在框425中,例程400将所接收的许可存储在用于计算资源服务的许可储存库中(例如,图3的许可储存库327、图2A的许可储存库212等),所接收的许可指示哪个(些)用户可以在哪个(些)计算节点上执行哪个(些)命令。与存储的许可及其使用相关的其他细节在本文其他地方描述。
在框425之后,或者如果在决策框420中确定了在框405中没有接收到存储在一个或多个计算节点上执行命令的许可的信息,那么例程400继续到框440。在框440中,例程400适当地执行一个或多个其他指示的操作(如果有)。例如,在一些实施方案中,例程可以接收请求以操纵提供给客户、计算资源服务的一个或多个计算节点的已提供计算资源,并且如果这样,那么可以执行活动以满足此类请求(如果其被授权)。相对于框440执行的其他类型的操作可以包括用于计算资源服务的各种管理操作,例如像执行操作以注册可以使用所提供的计算节点的新用户。
在框440之后,例程400继续到决策框445以确定是否继续例程并且处理附加信息,诸如直到接收明确的终止指示为止。如果确定继续,那么例程400返回到框405,否则例程400结束。
图5示出外壳程序聚合器例程500的示例性实施方案的流程图。例如,可以通过执行以下来提供例程500:图2的用户命令执行接口组件206和/或外壳程序聚合器模块210、图3的用户命令执行接口组件342和/或外壳程序聚合器模块344、和/或图1的用户命令执行接口组件114或145,诸如以便执行所描述的用于提供用户访问以在网络可访问计算资源上执行命令的一些或全部技术。尽管所描述的用于向用户提供访问以便在网络可访问计算资源上执行命令和相关联功能性的技术在本实例中讨论为由计算资源服务提供,但将理解的是,在其他实施方案中这种功能性可以由与计算资源服务(例如,CNS计算资源服务)不同的系统提供。
例程500在框505中开始,其中从用户接收执行命令或其他信息的请求。如本文其他地方所述,命令请求可以包括一个或多个命令、多个命令、一组命令、或者高级指令或指示(而不包括特定的命令)等。
在框505之后,例程500继续到决策框510,以便确定在框405中接收的信息是否是在一个或多个计算节点上执行命令的请求。如果在框505中接收到命令请求,那么例程500从决策框510继续到框520;否则,例程500从决策框510继续到框515。
在框515中,例程500适当地执行一个或多个其他指示的操作。在框5150之后,例程500继续到决策框560。
如果在框505中接收的信息是命令请求,那么例程500从决策框510继续到框520,以便识别与所接收的命令请求相关联的一个或多个命令,并且识别要为其执行所识别的命令的一个或多个计算节点。在一些实施方案中,命令请求可以包括要执行的命令,或者可以基于请求中提供的其他信息来确定命令(例如,使用查找表来确定与高级指令相关联的一个或多个命令等)。类似地,命令请求可以包括为其执行所识别的命令的每个计算节点的标识符,或者可以基于请求中提供的其他信息(例如,一组计算节点的标识符、虚拟计算机网络、计算资源服务等)来确定计算节点。在各种实施方案中,命令请求可以是在所有识别的计算节点上执行所有识别的命令,但是在其他实施方案中,可以在所识别的计算节点的第一子集上执行所识别的命令的第一子集,并且可以在所识别的计算节点的第二子集上执行所识别的命令的第二子集。然而,实施方案不限于此,并且可以在命令请求中提供其他数量的命令和/或计算节点的子集。
在框520之后,例程500继续到框525以便执行图6的许可代理程序例程600,这将在以下更详细地描述。然而,简单地说,许可代理程序例程600返回用户(在方框505中向其提供命令请求的用户)是否被授权在所识别的任何计算节点上执行所识别的任何命令的指示。
在框525之后,例程继续到决策框530,以便基于在框525处接收的信息来确定用户是否被授权在所识别的计算节点上执行所识别的命令。如果用户被授权,那么例程500从决策框530继续到框535;否则,例程500从决策框530继续到框555。
在框555中,向用户提供报告:用户未被授权对在方框520中识别的一个或多个计算节点上执行命令请求的一个或多个命令。在框555之后,例程500继续到决策框560。
如果在决策框530处用户被授权,那么例程500从决策框530继续到框535,以便执行与授权计算节点的交互以使授权计算节点执行授权命令。
在框535之后,例程500继续到框340以执行与授权计算节点的交互,以便在执行授权命令之后从授权计算节点获得结果(如果有)。
在框340之后,例程500继续到任选框545以便聚合来自授权计算节点的结果。在任选框545之后,例程500在框550中继续以便向用户返回结果(例如,通过用户外壳应用程序)。
在框515、550或555之后,例程500继续到决策框560以确定是否继续并处理附加信息,诸如直到接收明确的终止指示为止,或者在与用户提供的指示相关联的每个命令被执行和处理并且确定用户的许可之后。如果确定继续,那么例程500返回到框505,否则例程500结束。
图6示出许可代理程序例程600的示例性实施方案的流程图。例如,可以通过执行以下来提供例程600:图2的用户命令执行接口组件206和/或许可代理程序模块214、图3的用户命令执行接口组件342和/或许可代理程序模块346、和/或图1的用户命令执行接口组件114或145,诸如以便执行所描述的用于提供用户访问以在网络可访问计算资源上执行命令和相关联功能性的一些技术。
例程600在框605中开始,其中接收一个或多个命令、用户身份以及要在其上执行一个或多个命令的一个或多个计算节点的身份。可以在图5中的例程500的框520中识别命令和计算节点。并且用户身份(例如,用户名、用户识别号等)可以在图5中的例程500的框505中与命令的指示一起被接收;否则,例程可以向用户询问用户名、密码或其他识别/授权信息。
在方框605之后,例程600继续到框610,以便获得用户的授权许可以在一个或多个计算节点上执行一个或多个命令。在各种实施方案中,例程可访问计算资源服务的许可储存库以获得用户的许可。
在框610之后,例程600继续到决策框615,以便基于所获得的用户许可来确定用户是否被授权在所识别的计算节点上执行所接收的命令。例程600将获得的许可与每个命令/计算节点组合进行比较。如果用户未被授权在所识别的计算节点中的一个上执行所接收的命令中的一个,那么例程600从决策框615继续到框620;否则,例程600从决策框615继续到框625。
在框620中,例程600返回用户未被授权在所识别的计算节点中的至少一个上执行所接收的命令中的至少一个的指示,诸如以便禁止、拒绝、阻止或以其他方式防止执行此类命令。在框625中,例程600返回用户被授权在所识别的计算节点上执行所接收的命令的指示。在框620或框625之后,例程结束。
可鉴于以下条款对本公开的实施方案进行描述:
1.一种计算机实现的方法,其包括:
通过在一个或多个计算系统上执行的外壳程序聚合器接收来自第一用户的请求,所述请求指示用于供所述第一用户使用的网络可访问服务所提供的一个或多个计算节点要执行的命令;
通过所述外壳程序聚合器并且至少部分地基于存储的许可信息来确定所述第一用户被授权使所述一个或多个计算节点执行所述命令;以及
通过所述外壳程序聚合器并且响应于所述确定,启动由所述一个或多个计算节点执行所述命令。
2.根据条款1所述的计算机实现的方法,其还包括:
通过所述一个或多个计算系统接收来自所述第一用户的第二请求,所述第二请求指示所述一个或多个计算节点要执行的第二命令;
通过所述外壳程序聚合器并且至少部分地基于所存储的许可信息来确定所述第一用户未被授权使所述一个或多个计算节点执行所述第二命令;以及
响应于所述确定,拒绝由所述一个或多个计算节点执行所述第二命令。
3.根据条款1所述的计算机实现的方法,其中确定所述第一用户被授权包括:查询所述一个或多个计算节点外部的许可代理程序,以便获得特定于所述第一用户的存储的许可信息,并且将所获得的存储许可信息与所述命令和所述一个或多个计算节点进行比较以识别匹配。
4.根据条款3所述的计算机实现的方法,其中所获得的存储许可信息与所述命令和所述一个或多个计算节点的比较包括:将所述命令与存储在所获得的存储许可信息中的一个或多个正则表达式匹配。
5.根据条款3所述的计算机实现的方法,其中所获得的存储许可信息与所述命令和所述一个或多个计算节点的比较包括:将所述命令与存储在所获得的存储许可信息中的一个或多个访问控制表达式匹配。
6.根据条款1所述的计算机实现的方法,其中所述请求的接收包括接收一组多个计算节点的指示,并且其中启动所述命令的执行包括启动通过所述组中的每个计算节点执行所述命令。
7.根据条款6所述的计算机实现的方法,其还包括:
通过所述外壳程序聚合器接收所述组的多个计算节点执行所述命令的多个结果;以及
通过所述外壳程序聚合器聚合所接收的多个结果并且向所述第一用户返回所述聚合的结果。
8.根据条款1所述的计算机实现的方法,其还包括,
在启动所述命令的执行之前,通过所述外壳程序聚合器建立通过外壳程序传输层到所述一个或多个计算节点的一个或多个安全连接建立,并且其中启动通过所述一个或多个计算节点执行所述命令包括:通过所述外壳程序聚合器提供所述命令,并且通过所建立的安全连接将所述命令提供给所述一个或多个计算节点。
9.根据条款1所述的计算机实现的方法,其中所述一个或多个计算节点包括多个计算节点,并且其中所述命令的执行使从所述多个计算节点获得当前状态信息并且将所述当前状态信息提供给所述第一用户。
10.根据条款1所述的计算机实现的方法,其中所述一个或多个计算节点包括多个计算节点,并且其中所述命令的执行修改对所述多个计算节点的正在进行的操作。
11.根据条款1所述的计算机实现的方法,其中所述请求的接收包括接收对应于多个命令的高级指示,并且其中所述执行的启动还包括识别所述多个命令、以及通过所述一个或多个计算节点中的每一个启动所述多个命令中的每一个的执行。
12.一种具有存储内容的非暂时性计算机可读介质,所述存储内容使计算系统至少进行以下:
通过所述计算系统接收来自第一用户的信息,所述信息指示要针对从网络可访问服务提供的一个或多个计算相关资源执行的命令;
通过所述计算系统并且至少部分地基于存储在所述一个或多个计算相关资源外部的所述第一用户的许可信息,确定所述第一用户被授权执行针对所述一个或多个计算相关资源的所述命令;以及
通过所述计算系统启动针对所述一个或多个计算相关资源的所述命令的执行。
13.根据条款12所述的非暂时性计算机可读介质,其中所述一个或多个计算相关资源包括多个计算节点,并且其中所述存储内容包括软件指令,所述软件指令在被执行时,进一步使所述计算系统通过以下来执行所述命令执行的所述启动:
使所述多个计算节点中的每一个执行所述命令,并且将来自所述多个计算节点的当前状态信息提供给在所述计算系统上执行的外壳程序聚合器;
通过所述外壳程序聚合器聚合来自所述多个计算节点的所述当前状态信息;以及
将所聚合的当前状态信息提供给所述第一用户。
14.根据条款12所述的非暂时性计算机可读介质,其中所述一个或多个计算相关资源包括多个计算节点,并且其中所述命令执行的启动包括通过使所述多个计算节点各自执行所述命令来更改所述多个计算节点的操作。
15.根据条款12所述的非暂时性计算机可读介质,其中所述信息的所述接收包括接收具有限定角色的不同第二用户的指示,所述第二用户的第二存储许可信息与所述第一用户的第一存储许可信息不同,并且其中确定所述第一用户被授权基于确定允许所述第一用户承担所述不同第二用户的所述限定角色,并且所述限定角色的所述第二存储许可信息允许执行针对所述一个或多个计算相关资源的所述命令。
16.根据条款12所述的非暂时性计算机可读介质,其中在与所述第一用户相关联的第一许可级别下执行针对所述一个或多个计算相关资源的所述命令的所述执行,其中所接收的信息进一步指示要针对所述一个或多个计算相关资源执行的第二命令,并且其中所述存储内容进一步使所述计算系统:
至少部分地基于所存储的许可信息来确定所述第一用户未被授权在所述第一许可级别下执行针对所述一个或多个计算相关资源的所述第二命令;
通过所述计算系统识别第二许可级别,其比所述第一个许可级别更高,并且被授权执行针对所述一个或多个计算相关资源的所述第二命令;以及
在所述第二许可级别下启动针对所述一个或多个计算相关资源的所述第二命令的执行。
17.根据条款12所述的非暂时性计算机可读介质,其中所述存储内容进一步使所述计算系统:
通过所述计算系统接收临时锁定许可的指令,以便禁止执行针对所述一个或多个计算相关资源的命令;
通过所述计算系统接收来自所述第一用户的进一步信息,其指示要针对所述一个或多个计算相关资源执行的第二命令;以及
通过所述计算系统并且基于所述暂时锁定许可来拒绝授权执行针对所述一个或多个计算相关资源的所述第二命令。
18.根据条款12所述的非暂时性计算机可读介质,其中所述一个或多个计算相关资源节点包括第一计算节点和第二计算节点,并且其中所述启动所述命令的所述执行包括:
通过所述第一计算节点并且在没有附加安全验证的情况下,执行针对所述第一用户的所述命令;
通过所述第二计算节点识别,存储在所述第二计算节点上的附加安全信息不允许通过所述第二计算节点执行针对所述第一用户的所述命令;以及
通过所述第二计算节点并且基于所述识别,拒绝通过所述第二计算节点执行针对所述第一用户的所述命令。
19.根据条款12所述的非暂时性计算机可读介质,其中所述存储内容还使所述计算系统在确定所述第一用户被授权之前,接收来自所述第二用户的所述许可信息,其控制包括所述第一用户的一组多个用户对包括所述一个或多个计算相关资源的一组计算相关资源的访问,并且其中所述许可信息包括特定于所述第一用户的一个或多个许可。
20.根据条款19所述的非暂时性计算机可读介质,其中所述组的计算相关资源包括与通过所述网络可访问服务提供给所述第一用户的虚拟计算机网络相关联的多个计算相关资源,包括共享由一个或多个用户指定的公共标签的多个计算相关资源,或者包括在公共地理位置中的多个计算相关资源。
21.一种系统,其包括:
一个或多个计算系统的一个或多个处理器;以及
一个或多个存储器,其存储软件指令,所述软件指令在被所述一个或多个处理器中的至少一个执行时,使所述至少一个处理器通过以下来管理命令的执行:
接收来自第一用户的信息,所述信息指示用于供所述第一用户使用的所提供的一个或多个计算节点要执行的命令;
在不与所述一个或多个计算节点进行交互的情况下,确定所述第一用户被授权使所述一个或多个计算节点执行所述命令;以及
基于所述确定,启动由所述一个或多个计算节点执行所述命令。
22.根据条款21所述的系统,其中所述一个或多个计算系统是网络可访问服务的存储针对所述第一用户的许可信息并且使用所存储的许可信息以用于所述确定的部分,并且其中所述一个或多个计算节点由所述网络可访问服务提供以供所述第一用户暂时使用。
如本文其他地方所述,授权可以针对单独命令/计算节点组合,或者它可以针对整体命令请求。图5和图6所示的例程500和600分别描述了针对整体命令请求确定授权的情况,使得如果用户没有被授权在一个计算节点上执行一个命令,那么例程600向例程500返回:用户未被授权在计算节点上执行命令请求的命令。在各种其他实施方案中,授权可以针对单独命令/计算节点组合,使得例程600向例程500返回用户被授权的每个命令/计算节点组合、和/或用户未被授权的每个命令/计算节点组合。以此方式,例程500中的框535、540、545和550可以用于每个授权的命令/计算节点组合,并且框555可以用于每个未授权的命令/计算节点组合。
还应当理解的是,在一些实施方案中,可能以替代性方式提供以上讨论的例程所提供的功能性,诸如分成更多的例程或合并成更少的例程。类似地,在一些实施方案中,所示出的例程可提供比所描述的更多或更少的功能,诸如当其他所示出的例程替代地分别缺少或包括此类功能时,或当所提供的功能的量更改的情况下。另外,虽然各种操作都可示出为以特定方式(例如,串行或并行)和/或特定次序执行,但本领域的技术人员将理解,在其他实施方案中,这些操作也可以其他次序和其他方式执行。本领域的技术人员还应当理解,以上所论述的数据结构可以不同方式构建,诸如通过使得单个数据结构分成多个数据结构、或通过使得多个数据结构合为单个数据结构。类似地,在一些实施方案中,所示出的数据结构可以存储比所描述的更多或更少的信息,诸如当其他所示出的数据结构替代地分别缺少或包括此类信息时、或当存储的信息的量或类型更改时。
根据上述内容应了解,虽然本文已出于说明目的描述特定实施方案,但可在不背离本发明的精神和范围的情况下进行各种修改。因此,除了所附权利要求及其中所提及的元素之外,本发明不受限制。另外,尽管以下以某些权利要求的形式呈现本发明的某些方面,但本发明的发明人可构想到呈任何可用权利要求形式的本发明的各种方面。例如,虽然仅仅本发明的一些方面当前可表述为在计算机可读介质上实现,但同样也可以如此实现其他方面。

Claims (15)

1.一种计算机实现的方法,其包括:
通过在一个或多个计算系统上执行的外壳程序聚合器接收来自第一用户的请求,所述请求指示用于供所述第一用户使用的网络可访问服务所提供的一个或多个计算节点要执行的命令;
通过所述外壳程序聚合器并且至少部分地基于存储的许可信息来确定所述第一用户被授权使所述一个或多个计算节点执行所述命令;以及
通过所述外壳程序聚合器并且响应于所述确定,启动由所述一个或多个计算节点执行所述命令。
2.根据权利要求1所述的计算机实现的方法,其还包括:
通过所述一个或多个计算系统接收来自所述第一用户的第二请求,所述第二请求指示所述一个或多个计算节点要执行的第二命令;
通过所述外壳程序聚合器并且至少部分地基于所存储的许可信息来确定所述第一用户未被授权使所述一个或多个计算节点执行所述第二命令;以及
响应于所述确定,拒绝由所述一个或多个计算节点执行所述第二命令。
3.根据权利要求1所述的计算机实现的方法,其中确定所述第一用户被授权包括:查询所述一个或多个计算节点外部的许可代理程序,以便获得特定于所述第一用户的存储许可信息,并且将所获得的存储许可信息与所述命令和所述一个或多个计算节点进行比较以识别匹配。
4.根据权利要求3所述的计算机实现的方法,其中所获得的存储许可信息与所述命令和所述一个或多个计算节点的比较包括:将所述命令与存储在所获得的存储许可信息中的一个或多个正则表达式匹配。
5.根据权利要求3所述的计算机实现的方法,其中所获得的存储许可信息与所述命令和所述一个或多个计算节点的比较包括:将所述命令与存储在所获得的存储许可信息中的一个或多个访问控制表达式匹配。
6.根据权利要求1所述的计算机实现的方法,其中所述请求的接收包括接收一组多个计算节点的指示,并且其中启动所述命令的执行包括启动通过所述组中的每个计算节点执行所述命令。
7.根据权利要求6所述的计算机实现的方法,其还包括:
通过所述外壳程序聚合器接收所述组的多个计算节点执行所述命令的多个结果;以及
通过所述外壳程序聚合器聚合所接收的多个结果并且向所述第一用户返回所聚合的结果。
8.根据权利要求1所述的计算机实现的方法,其还包括:在启动所述命令的执行之前,通过所述外壳程序聚合器建立通过外壳程序传输层到所述一个或多个计算节点的一个或多个安全连接,并且其中启动通过所述一个或多个计算节点执行所述命令包括:通过所述外壳程序聚合器提供所述命令,并且通过所建立的安全连接将所述命令提供给所述一个或多个计算节点。
9.一种系统,其包括一个或多个计算机系统,其中所述一个或多个计算机系统包括联接到一个或多个存储器的一个或多个处理器,所述一个或多个存储器包括指令,所述指令在执行时使计算系统至少进行:
通过所述系统接收来自第一用户的信息,所述信息指示从网络可访问服务提供的一个或多个虚拟机内运行的一个或多个操作系统上要执行的命令;
通过所述系统并且至少部分地基于存储在所述一个或多个操作系统外部的所述第一用户的许可信息,确定所述第一用户被授权执行所述命令;以及
通过所述系统启动在所述一个或多个操作系统上执行所述命令。
10.根据权利要求9所述的系统,其中所述一个或多个存储器还包含指令,所述指令在执行时进一步使所述系统至少进行:
接收来自所述一个或多个操作系统的当前状态信息;
聚合所述当前状态信息;以及
将所聚合的当前状态信息提供给所述第一用户。
11.根据权利要求9所述的系统,其中在执行时使所述系统至少确定所述第一用户被授权执行所述命令的所述指令还包括指令,所述指令在执行时使所述系统接收具有限定角色的不同第二用户的指示,所述第二用户的第二存储许可信息与所述第一用户的第一存储许可信息不同,并且使用所述限定角色的第二存储许可来确定所述第一用户被授权执行所述命令。
12.根据权利要求9所述的系统,其中所述指令在执行时进一步使所述系统至少进行:
通过所述系统接收指令以便暂时锁定许可以禁止执行命令;
通过所述系统接收来自所述第一用户的进一步信息,其指示要执行的第二命令;以及
通过所述系统并且基于被暂时锁定的许可来拒绝执行所述第二命令的授权。
13.根据权利要求9所述的系统,其中在执行时进一步使所述系统至少在所述一个或多个操作系统上启动所述命令的执行的所述指令包括指令,所述指令在执行时进一步使所述系统通过外壳程序传输层建立到所述一个或多个操作系统的一个或多个安全连接;并且通过所建立的安全连接提供所述命令。
14.根据权利要求9所述的系统,其中在执行时进一步使所述系统确定所述第一用户被授权执行所述命令的所述指令还包括指令,所述指令在执行时通过将所述命令与存储在所述许可信息中的一个或多个访问控制表达式匹配,进一步使所述系统确定所述第一用户被授权执行所述命令。
15.根据权利要求9所述的系统,其中在执行时进一步使所述系统接收来自所述第一用户的信息的所述指令还包括指令,所述指令在执行时进一步使所述系统接收一组虚拟机的指示,并且其中启动所述命令的执行包括启动通过所述组中的每个虚拟机执行所述命令。
CN201680034744.2A 2015-06-25 2016-06-23 用于控制对命令执行的用户访问的系统和方法 Active CN107873092B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/750,868 2015-06-25
US14/750,868 US10397232B2 (en) 2015-06-25 2015-06-25 Controlling user access to command execution
PCT/US2016/039018 WO2016210131A1 (en) 2015-06-25 2016-06-23 Controlling user access to command execution

Publications (2)

Publication Number Publication Date
CN107873092A true CN107873092A (zh) 2018-04-03
CN107873092B CN107873092B (zh) 2021-10-26

Family

ID=56409170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680034744.2A Active CN107873092B (zh) 2015-06-25 2016-06-23 用于控制对命令执行的用户访问的系统和方法

Country Status (6)

Country Link
US (2) US10397232B2 (zh)
EP (1) EP3314866B1 (zh)
JP (1) JP6559807B2 (zh)
CN (1) CN107873092B (zh)
CA (1) CA2988457C (zh)
WO (1) WO2016210131A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110390184A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 用于在云中执行应用的方法、装置和计算机程序产品
CN111399982A (zh) * 2020-03-17 2020-07-10 中国建设银行股份有限公司 一种支持多环境的命令远程执行装置及方法
CN113765696A (zh) * 2020-06-01 2021-12-07 慧与发展有限责任合伙企业 用于网络中增强型命令管理的方法和系统

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10320922B1 (en) 2016-03-28 2019-06-11 Amazon Technologies, Inc. Inventory manager for distributed systems
US10733238B2 (en) * 2016-05-06 2020-08-04 Amazon Technologies, Inc. Script manager for distributed systems
US10834231B2 (en) * 2016-10-11 2020-11-10 Synergex Group Methods, systems, and media for pairing devices to complete a task using an application request
WO2018187696A1 (en) * 2017-04-06 2018-10-11 Indais Corp. Systems and methods for access control and data management
US11681568B1 (en) 2017-08-02 2023-06-20 Styra, Inc. Method and apparatus to reduce the window for policy violations with minimal consistency assumptions
US10990702B1 (en) 2017-08-02 2021-04-27 Styra, Inc. Method and apparatus for authorizing API calls
US11310008B2 (en) * 2017-10-23 2022-04-19 Kyocera Corporation Data transmission with multiple numerologies for multiple devices with common geographical location dependent control information
US11153346B2 (en) 2017-10-31 2021-10-19 Level 3 Communications, Llc Secure network device management in a telecommunications network
US20190362066A1 (en) * 2018-05-25 2019-11-28 Microsoft Technology Licensing, Llc Accessing secure system resources by low privilege processes
US10719373B1 (en) 2018-08-23 2020-07-21 Styra, Inc. Validating policies and data in API authorization system
US11853463B1 (en) 2018-08-23 2023-12-26 Styra, Inc. Leveraging standard protocols to interface unmodified applications and services
US11080410B1 (en) 2018-08-24 2021-08-03 Styra, Inc. Partial policy evaluation
US11070573B1 (en) 2018-11-30 2021-07-20 Capsule8, Inc. Process tree and tags
US11206249B2 (en) * 2019-07-26 2021-12-21 International Business Machines Corporation Enterprise workspaces
US11228575B2 (en) 2019-07-26 2022-01-18 International Business Machines Corporation Enterprise workspaces
EP4078895A4 (en) * 2019-12-19 2023-08-30 Telefonaktiebolaget LM Ericsson (publ) RESOURCE AUTHORIZATION
US11741410B2 (en) * 2020-01-18 2023-08-29 SkyKick, Inc. Centralized cloud service management
US11763014B2 (en) * 2020-06-30 2023-09-19 Bank Of America Corporation Production protection correlation engine
US11349910B2 (en) * 2020-08-12 2022-05-31 Verizon Patent And Licensing Inc. Pinhole access for elevated containerized process capability
US20230015789A1 (en) * 2021-07-08 2023-01-19 Vmware, Inc. Aggregation of user authorizations from different providers in a hybrid cloud environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1972311A (zh) * 2006-12-08 2007-05-30 华中科技大学 一种基于集群均衡负载的流媒体服务器系统
CN101094097A (zh) * 2006-06-23 2007-12-26 联想(北京)有限公司 一种硬件访问控制系统和方法
US7475419B1 (en) * 2003-09-19 2009-01-06 Hewlett-Packard Development Company, L.P. System and method for controlling access in an interactive grid environment
CN101416195A (zh) * 2005-12-19 2009-04-22 英特尔公司 用于控制对存储设备的访问的机制
CN102591679A (zh) * 2011-11-30 2012-07-18 中国科学院计算机网络信息中心 一种集群系统应用软件快速部署方法
US9009217B1 (en) * 2011-01-06 2015-04-14 Amazon Technologies, Inc. Interaction with a virtual network

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612347A (ja) 1992-06-25 1994-01-21 Hitachi Ltd 分散コンピュータシステム上での遠隔操作コマンド実行制御方式
US5421009A (en) 1993-12-22 1995-05-30 Hewlett-Packard Company Method of remotely installing software directly from a central computer
US7380271B2 (en) * 2001-07-12 2008-05-27 International Business Machines Corporation Grouped access control list actions
US7085853B2 (en) 2002-09-10 2006-08-01 Sun Microsystems, Inc. System and method for a distributed shell in a java environment
JP2004355221A (ja) * 2003-05-28 2004-12-16 Nec Software Chubu Ltd コンソールコマンド再利用制限システム及びその方法及びそのプログラム及びその記憶媒体
US7644153B2 (en) 2003-07-31 2010-01-05 Hewlett-Packard Development Company, L.P. Resource allocation management in interactive grid computing systems
JP4615474B2 (ja) 2006-04-07 2011-01-19 株式会社エヌ・ティ・ティ・ドコモ 通信端末、ユーザデータ移動システム及びユーザデータ移動方法
US20070282964A1 (en) 2006-06-06 2007-12-06 International Business Machines Corporation Method and apparatus for processing remote shell commands
US7453593B1 (en) 2007-11-30 2008-11-18 Red Hat, Inc. Combining UNIX commands with extensible markup language (“XML”)
US8627342B2 (en) 2008-01-31 2014-01-07 Paul Michael Tapper Multi-machine shell
JP2009217497A (ja) 2008-03-10 2009-09-24 Oki Electric Ind Co Ltd 汎用サーバおよびそのコマンドガード方法
US8370493B2 (en) 2008-12-12 2013-02-05 Amazon Technologies, Inc. Saving program execution state
US8296419B1 (en) * 2009-03-31 2012-10-23 Amazon Technologies, Inc. Dynamically modifying a cluster of computing nodes used for distributed execution of a program
KR101651202B1 (ko) * 2009-12-21 2016-08-26 삼성전자주식회사 가상화 장치 및 가상화 장치의 동작 방법
JP2011186775A (ja) 2010-03-09 2011-09-22 Hitachi Ltd アプリケーションサーバの仮想化環境上における運用容易化技術
US9383891B2 (en) * 2012-03-28 2016-07-05 Skytap Methods and systems for an intermediate graphical desktop sharing protocol
US9384056B2 (en) 2012-09-11 2016-07-05 Red Hat Israel, Ltd. Virtual resource allocation and resource and consumption management
US8904388B2 (en) 2013-01-10 2014-12-02 Vce Company, Llc Scripting language executor service for applications
US9654351B2 (en) * 2013-08-22 2017-05-16 Red Hat, Inc. Granular permission assignment
US9578005B2 (en) 2013-10-01 2017-02-21 Robert K Lemaster Authentication server enhancements
KR101732889B1 (ko) 2013-11-04 2017-05-08 한국전자통신연구원 임베디드 시스템에서 쉘 커맨드의 안전 실행 보장 장치 및 방법

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7475419B1 (en) * 2003-09-19 2009-01-06 Hewlett-Packard Development Company, L.P. System and method for controlling access in an interactive grid environment
CN101416195A (zh) * 2005-12-19 2009-04-22 英特尔公司 用于控制对存储设备的访问的机制
CN101416195B (zh) * 2005-12-19 2010-10-27 英特尔公司 能够控制对存储设备的访问的计算机系统
CN101094097A (zh) * 2006-06-23 2007-12-26 联想(北京)有限公司 一种硬件访问控制系统和方法
CN101094097B (zh) * 2006-06-23 2010-08-25 联想(北京)有限公司 一种硬件访问控制系统和方法
CN1972311A (zh) * 2006-12-08 2007-05-30 华中科技大学 一种基于集群均衡负载的流媒体服务器系统
US9009217B1 (en) * 2011-01-06 2015-04-14 Amazon Technologies, Inc. Interaction with a virtual network
CN102591679A (zh) * 2011-11-30 2012-07-18 中国科学院计算机网络信息中心 一种集群系统应用软件快速部署方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110390184A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 用于在云中执行应用的方法、装置和计算机程序产品
CN110390184B (zh) * 2018-04-20 2022-12-20 伊姆西Ip控股有限责任公司 用于在云中执行应用的方法、装置和计算机程序产品
CN111399982A (zh) * 2020-03-17 2020-07-10 中国建设银行股份有限公司 一种支持多环境的命令远程执行装置及方法
CN113765696A (zh) * 2020-06-01 2021-12-07 慧与发展有限责任合伙企业 用于网络中增强型命令管理的方法和系统

Also Published As

Publication number Publication date
US11394714B2 (en) 2022-07-19
US10397232B2 (en) 2019-08-27
EP3314866A1 (en) 2018-05-02
WO2016210131A1 (en) 2016-12-29
CA2988457C (en) 2022-12-13
JP2018521399A (ja) 2018-08-02
US20190379672A1 (en) 2019-12-12
CA2988457A1 (en) 2016-12-29
EP3314866B1 (en) 2019-06-05
JP6559807B2 (ja) 2019-08-14
US20160381032A1 (en) 2016-12-29
CN107873092B (zh) 2021-10-26

Similar Documents

Publication Publication Date Title
CN107873092A (zh) 控制对命令执行的用户访问
CN104050201B (zh) 用于多租户分布式环境中的数据管理的方法和设备
CN106599694B (zh) 安全防护管理方法、计算机系统和计算机可读取存储媒体
US11438421B2 (en) Accessing resources in a remote access or cloud-based network environment
US20200028848A1 (en) Secure access to application instances in a multi-user, multi-tenant computing environment
CN107580083A (zh) 一种容器ip地址分配的方法和系统
CA2990252A1 (en) Systems and methods for blueprint-based cloud management
US9866547B2 (en) Controlling a discovery component, within a virtual environment, that sends authenticated data to a discovery engine outside the virtual environment
CN109478149A (zh) 混合云计算系统中的访问服务
CN107003906A (zh) 云计算技术部件的类型到类型分析
CN107683461A (zh) 在虚拟桌面基础设施中使用多个协议
CN106850324A (zh) 虚拟网络接口对象
US11539678B2 (en) Asymmetric key management for cloud computing services
US20230308368A1 (en) High performance compute infrastructure as a service
US20210075880A1 (en) Delegating network data exchange
CN107026864A (zh) 基于云计算的孵化在线SaaS平台
US11297065B2 (en) Technology for computing resource liaison
US10324771B1 (en) Methods and apparatus for a storage system having storage automation with integrated drivers
WO2022103681A1 (en) Service to service communication and authentication via a central network mesh

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