CN108292349B - 在分布式计算环境中提供虚拟机实例的细粒度访问远程命令执行 - Google Patents
在分布式计算环境中提供虚拟机实例的细粒度访问远程命令执行 Download PDFInfo
- Publication number
- CN108292349B CN108292349B CN201680062070.7A CN201680062070A CN108292349B CN 108292349 B CN108292349 B CN 108292349B CN 201680062070 A CN201680062070 A CN 201680062070A CN 108292349 B CN108292349 B CN 108292349B
- Authority
- CN
- China
- Prior art keywords
- command
- document
- resource
- user
- virtual machine
- 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
Images
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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/28—Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
-
- 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/105—Multiple levels of security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
接收包括命令和参数的文档的选择,并且致使用户与授予执行所述文档的许可的策略相关联。从请求者接收请求以执行所述文档,所述请求包括参数值,并且所述请求者被确定为与所述策略相关联的所述用户。所述用户被验证有权访问由所述参数值指示的资源,并且致使所述命令针对所述资源执行。
Description
相关申请的交叉引用
本申请要求2015年12月18日提交的标题为“PROVIDING FINE-GRAINED ACCESSREMOTE COMMAND EXECUTION FOR VIRTUAL MACHINE INSTANCES IN A DISTRIBUTEDCOMPUTING ENVIRONMENT”的申请号为14/975,376的美国专利申请以及2015年10月26日提交的标题为“PROVIDING FINE-GRAINED ACCESS REMOTE COMMAND EXECUTION FOR VIRTUALMACHINE INSTANCES IN A DISTRIBUTED COMPUTING ENVIRONMENT”的申请号为62/246,537的美国临时申请的优先权,所述申请中每一者的内容均以引用方式整体并入本文。
背景技术
寻求减少与维护其自己的计算资源相关联的费用和开销的公司和个人已转而购买由计算资源服务提供商向客户提供的远程计算服务,诸如对多个虚拟机实例的远程程序执行和远程数据存储。这种远程计算服务通常是可配置的和可扩展的以满足计算资源服务提供商的客户的各种计算需求。然而,此类客户可能会对他们的虚拟机实例进行频繁的更改和更新,且特别是对于运行大量虚拟机实例且信息技术人员有限的企业而言,客户在每个服务器实例上发布更改和运行一次性命令可能是很有挑战性的。此外,难以对虚拟机实例的各种用户能够执行的操作施加细粒度控制。
附图说明
将参考附图对各种技术进行描述,在附图中:
图1是根据实施方案的运行命令服务的示例;
图2示出根据实施方案的运行命令服务架构的示例;
图3示出根据实施方案的控制台实例列表的示例;
图4示出根据实施方案的填写域加入字段的示例;
图5示出根据实施方案的执行远程命令的示例;
图6示出根据实施方案的指示一部分实例不处于接受命令的状态的显示的示例;
图7示出根据实施方案的改变滤波器的示例;
图8示出根据实施方案的插件输出的示例;
图9示出根据实施方案的文档描述命令的结果的示例;
图10示出根据实施方案的具有扩展属性参数选项的文档描述命令的结果的示例;
图11示出根据实施方案的查看用于启用Windows自动更新的命令状态的示例;
图12示出根据实施方案的使用命令文档使虚拟机配置降级为较旧版本的示例;
图13示出根据实施方案的命令响应的示例;
图14是示出根据实施方案的向选定用户分配策略的示例的框图;
图15是示出根据实施方案的访问验证的示例的流程图;以及
图16是示出根据实施方案的命令文档执行的示例的流程图;以及
图17示出可以实现各种实施方案的环境。
具体实施方式
在一个示例中,通过计算资源服务提供商的系统来接收命令文档的选择。命令文档可以是用于在指定资源上或对指定资源执行一个或多个操作的一个或多个命令的脚本或集合。命令文档可包括可以被指定的参数集,其中所述参数集中的至少一个参数指示指定的资源。命令文档的选择可以是由具有计算资源服务提供商的账户的管理员或者与账户相关联的其它授权实体做出的对预定义命令文档的选择,或者可以是命令文档本身的内容。
命令文档的选择可以对应于授予指定实体(诸如与所述账户相关联的用户)根据指定安全策略执行命令文档的许可的请求。因此,作为接收命令文档的选择以及指定用户的身份的结果,本公开的系统可以将指定的实体与授予执行命令文档的许可的指定安全策略相关联。
在另一个示例中,系统可以从请求实体接收执行请求,用于针对一个或多个指定资源执行命令文档。所述请求可包括与所述命令文档的所述参数集对应的一组参数值。作为接收到执行请求的结果,系统可以验证请求实体是否与授予执行命令文档的许可的第一策略相关联。验证指示请求实体没有足够许可来执行命令文档,执行请求可能会被拒绝。
同样,作为接收到执行请求的结果,系统可以验证请求实体是否与第二策略相关联,所述第二策略向请求实体授予针对一个或多个指定资源执行命令文档的一个或多个操作的访问。如果验证指示请求实体没有足够许可来针对一个或多个指定资源执行一个或多个操作,则可以拒绝执行请求。作为成功验证请求实体具有执行命令文档的许可并且请求实体具有针对一个或多个指定资源执行命令文档的一个或多个操作的许可的结果,本公开的系统可以致使针对指定资源执行命令文档的一个或多个命令。在一些实施方案中,系统可以致使通过将一个或多个命令发送到软件代理来执行一个或多个命令,所述软件代理在托管指定资源的计算设备上执行。
在前面和后面的描述中,描述了各种技术。出于解释的目的,阐述了具体的配置和细节,以便提供对可能的实现所述技术的方式的透彻理解。然而,还应明了,下面所描述的技术可以在没有具体细节的情况以不同的配置来实践。此外,为了避免使所描述的技术变得模糊,可能会省略或简化众所周知的特征。
本公开中描述和建议的技术通过允许系统管理员将定制管理任务委托给负责特定职责的用户(代表)并且由代表审核执行定制管理任务来改进计算领域,尤其是系统管理领域。另外,本公开中描述和建议的技术通过允许针对多个计算设备异步地执行管理任务来提高管理大型计算机群的效率。此外,本公开中描述和建议的技术必须根植于计算机技术中,以克服与用户无意中被授予执行超出用户职责范围的操作的许可的风险相关联的问题以及与管理特殊化基于每个用户的许可相关联的问题。
图1示出可以实践实施方案的环境100的方面。如图1所示,环境100可包括可以向策略管理服务106提交命令文档104的管理员102,所述命令文档指定要执行的一个或多个操作或命令文档104的选择。管理员102可使策略110与一个或多个用户108相关联,所述策略授予一个或多个用户108执行命令文档104的许可。一个或多个用户108中的个人用户可向本公开的运行命令服务112发出执行请求以执行命令文档104。如图1所示,在验证了策略110允许履行执行请求之后,运行命令服务112可致使针对一个或多个资源116A-16N执行由命令文档104指定的一个或多个操作。
管理员的角色可以提供对账户的所有资源116A-16N的完全访问,并且管理员102可能是拥有管理员角色的帐户的一个或多个用户中的一者。在一些示例中,“帐户”可以指代由提供一个或多个资源116A-16N的计算资源服务提供商管理的多个客户帐户中的客户帐户
策略110可以是定义对一个或多个用户108、应用和其它实体的许可和约束以访问一个或多个资源116A-16N的信息,例如可以在访问控制语言(例如,可扩展访问控制标记语言等)文档中定义。策略管理服务106可以是配置为代表所述帐户的管理员102管理例如策略110的策略的系统。策略管理服务106可包括接口,所述接口使管理员102能够提交与策略管理相关的请求。此类请求可以是例如添加、删除或修改用于账户或用于其它管理动作(例如查看现有策略的库存)的策略的请求。
一个或多个用户108可以是被授权访问与一个或多个资源116-16N相关联的账户的个人、计算系统、应用、服务、资源或其它实体中的一个或多个。每个用户可以在账户内具有唯一的名称(例如,用户名),并且可以例如通过输入密码、访问密钥和/或数字签名来呈现或以其它方式证明拥有安全凭证,以获得对账户的计算资源的访问。在一些情况下,仅一个用户可拥有账户(例如,管理员102);然而,可根据需要向帐户中添加额外用户或从账户中移除额外用户。
运行命令服务112可以是计算资源服务提供商的服务,所述服务与计算资源服务提供商的虚拟计算机系统服务集成或互补。运行命令服务112可以允许管理员102将针对一个或多个资源116A-16N执行特定命令的许可委托给授权用户,例如一个或多个用户108。一个或多个资源可以是虚拟机实例,并且运行命令服务可以是为用户提供针对多个虚拟机实例远程执行在命令文档104中指定的命令的能力的服务。用这种方式,而不是用户108必须远程连接到一个或多个资源116A-16N中的每一个以执行服务器管理,或使用自定义可执行代码来管理这些管理任务,运行命令服务112可以通过允许客户对其实例安全地且在机群上大规模地运行预先创建的脚本或命令来简化管理,从而减少执行这些管理任务所花费的时间量以及潜在的人为错误。
通过提供委托管理,运行命令服务112使管理员102能够设置已定义执行某些动作的许可的角色。管理员102可以给予一个或多个用户108中的特定用户访问权限并限制他们可以做的事情。例如,管理员102可授予执行重置一个或多个资源116A-16N上的用户密码的命令文档的许可来帮助一个或多个用户108的服务台工作人员而不必授予服务台工作人员全部的管理控制权。以这种方式,管理员102可以一致和安全的方式将特定的管理职责委托给特定的用户。此外,运行命令服务112可能允许一些自我管理任务。例如,命令文档104可以被写入以在执行时在用户有权访问的一个或多个指定的虚拟机实例上为用户重置密码;通过授予用户执行命令文档104的许可,如果用户忘记他/她的密码,则用户可以执行命令文档104重置他/她的密码而不必联系管理员102或服务台工作人员。
通过使一个或多个用户108或管理员102能够通过命令文档104针对一个或多个资源116A-16N执行命令,一个或多个用户108和管理员102可以按比例执行命令,而不必单独连接到一个或多个资源116A-16N中的每一个。
管理员102和一个或多个用户108可以通过网络(例如互联网、局域网、广域网等)、经由用户界面或应用程序设计接口利用运行命令服务112。管理员102和一个或多个用户108通过用户界面或作为对应用程序设计接口调用的响应还可以查看执行命令文档104的结果。
命令文档104(也称为“运行命令”文档或“简单系统管理器(SSM)”文档)可以是用于执行一个或多个操作的一个或多个命令的集合。在一些示例中,术语“命令”可以指代对/针对资源执行操作的指令。可以在命令文档104中指定的操作示例包括在指定实例上重置用户或管理员密码。在一些实施方案中,运行命令服务112可跟踪一个或多个用户108已经针对一个或多个资源116A-16N运行了哪些命令。然而,注意,在本公开中,术语“命令”通常在具有命令ID的上下文中也可以指执行命令文档,而不是在命令文档内指定的特定命令。
在一些情况下,命令文档104可以是如由提供运行命令服务112的计算资源服务提供商确定的预定义的一组示例性命令。预定义命令文档的示例可包括WebServices-RunPowerShellScript(用于执行Windows PowerShell脚本)、WebServices-InstallApplication(用于将应用安装到机器实例)、WebServices-ConfigureTelemetryService(用于为客户帐户配置计算资源服务提供商的遥测服务)和WebServices-JoinDirectoryServiceDomain(用于加入目录服务域)。
另外或替代地,命令文档104可能是管理员102提供的含有一组定制的命令的文档。命令文档104可包括一个或多个用户108将能够在一个或多个资源116A-16N上本地执行的一些或任何命令。也就是说,如果一个或多个资源116A-16N是运行Windows操作系统的虚拟机实例,则运行命令服务112可能支持根据命令文档104致使可以通过WindowsPowerShell运行的一些或任何命令以及其它预定义的命令在虚拟机实例上执行。例如,如果用户通常将登录到实例中以在命令窗口中重置Web服务器,则使用含有用于重置Web服务器的命令的命令文档,用户现在可以针对实例执行所述命令文档。
以这种方式,运行命令服务112可用于针对一个或多个资源116A-16N快速执行远程命令,从而使得一个或多个用户108和/或管理员102能够快速且容易地针对一个或多个资源116A-16N执行远程命令或脚本。运行命令服务112还消除了必须手动连接到资源116A-16N中的每一个以对资源执行常见的管理任务(例如,安装软件或重置管理员密码)。
运行命令服务112执行命令文档104中指定的命令。当命令文档104被执行时,运行命令服务112致使针对指定的资源执行使命令文档内的命令。可以在命令文档中指定的操作的示例可包括用于将虚拟机实例加入目录服务目录、安装/卸载或修复软件安装、运行Windows PowerShell和/或配置遥测服务日志以监视应用和系统的命令。
命令文档104可以是以结构化数据格式表示的“配置”文档,例如JavaScript对象表示法(JSON)、可扩展标记语言(XML)或其它类似的数据交换格式。提供运行命令服务112的计算资源服务提供商可以向管理员102提供用于常见操作的一个或多个这样的预定义命令文档。然而,如果管理员102需要执行非常专业的或自定义的操作,则另外或替代地运行命令服务112可以是管理员102创作/创建命令文档,使其成为开放式或根据管理员102打算非常具体的。一旦管理员创建命令文档104,则管理员102可以致使运行命令服务112使命令文档104执行与一个或多个资源116A-16N中的许多资源一样多次或多于所述资源的次数,这要根据管理员102的期望。
如上所述,命令文档104可能是JSON文件。下面是运行命令文档的JSON模式的示例:
有效的参数类型可以是字符串、数字、对象、数组和布尔值。文档作者可以任选地提供参数的默认值。以‘{{‘开始和以‘}}’结束的字符串可以被视为命令文档表达式。命令文档表达式可以是函数或参数。函数可将多个表达式作为变元。用户定义的参数可以在命令文档的“参数”属性中声明。参数名称可为字母数字字符串(例如,[a-zA-Z0-9]+),并且计算资源服务提供商可以提供供文档作者使用的任选的预定义参数列表。运行命令服务112可以提供一组函数来提供更灵活的参数使用,例如:
fn:concate(args...)#合并变元并返回字符串
使用JSON的命令文档“Example_Document”的示例可如下所示:
下面显示了如何调用上述命令文档的示例:
PS C:\>$runShellCommand=Send-SSMCommand-InstanceId$instanceid-DocumentName Example_Document-Comment'A demo'
要从命令行界面运行命令或脚本,用户可以打开命令行界面并执行受支持的应用程序设计接口,这是通过传递以执行命令或启动脚本所需要的所需或任选参数指定命令文档104(根据特定的命令文档)来完成。命令文档104可包括用于允许用户针对单个资源或多个资源执行命令的参数。支持的应用程序设计接口还可包括用于检查执行命令的状态的应用程序设计接口,和用于返回在资源上执行此类命令的历史的应用程序设计接口。
管理员102可以通过给一个或多个用户108分配(或创建和分配)授予执行命令文档104的许可的策略110,来设置允许用户执行命令文档104的许可。例如,对于第一命令文档(具有开放式和高度特权的命令),管理员可以仅向第一用户分配授予执行第一文档的许可的第一策略。然而,对于第二文档(具有有限特权的非常受限的命令),管理员102可以让所有其他用户访问以执行第二文档。
因此,管理员104对可在一个或多个资源116A-16N上执行的操作以及哪些用户有许可以致使执行操作进行细粒度控制,从而避免用户一旦连接到资源就能够执行超出其授权范围的操作的问题。如上所述,在一些实施方案中,运行命令服务可以跟踪/记录执行(或尝试执行)的操作和/或命令文档,以及在哪个实体的指导下,并且在这样的实施方案中,管理员102可以在审核日志中查看该信息。例如,管理员102创建用于删除文件的命令文档104并将其命名为“DeleteFiles”。管理员102可以为某些用户分配许可以执行“DeleteFiles”命令文档104。此后,如果文件删除出现问题,则管理员102可以复查审核日志以将问题追溯回到命令文档104、执行命令文档104的用户、执行了什么操作以及什么时候执行的。
命令文档104可能非常具体。例如,管理员102可以创建“DeleteFiles”命令文档(例如“example.exe”等)。替代地,命令文档104可能更开放。例如,管理员可以编写命令文档104以删除作为参数由用户传递给命令文档104的任何文件。命令文档104本身可以被计算资源服务提供商的服务视为资源,并且对命令文档104的访问控制可以由计算资源服务提供商的认证服务来管理。例如,管理员102可以授予第一用户对DeleteSpecificFile命令文档的访问,并且管理员可以授予第二用户对DeleteAnyFile命令文档的访问。
同样,管理员102可能想要给予第一用户子集执行第一组操作的许可以及第二用户子集执行第二组操作的许可。管理员102将为每组操作创建单独的命令文档。例如,第一命令文档可以是“RebootMachine”,而第二命令文档可以是“CollectLogs”。管理员102可以授予第一用户子集对RebootMachine的访问,以及第二用户子集对CollectLogs的访问。同样,管理员102可能会拒绝第二用户子集访问执行注册表项更新的第三命令文档。
命令文档104可以被创建来接收各种参数。例如,调用实体可以通过将实例标识符(ID)的列表作为参数传递给命令文档104来指定应执行命令文档中的命令的虚拟机实例。在一些实施方案中,虚拟机资源标记可以由运行命令服务112支持。在一些示例中,“标记”可以指与一个或多个实例相关联的标签,用于指定具有共同特性的实例的目的,可以通过共同特性过滤或分组实例。例如,可以用标签“web服务器”来创建第一标记,并且被配置为向用户提供网页的实例可以与第一标记相关联。作为另一个示例,可以用标签“数据服务器”来创建第二标记,并且被配置为永久地存储和检索数据的实例可以与第二标记相关联。标记可能重叠;例如,实例可能被标记为“web服务器”和“数据服务器”两者。
这样,用户可以在执行命令文档104时通过将标记值作为参数进行传递来指定标记,且因此,命令文档104可能会针对具有指定标记的一群虚拟机实例中的所有实例异步执行。例如,要针对标记为“WebServer”的一个或多个资源116A-16N的所有资源运行已被配置为由于“Planned hotfix install”的原因而关闭虚拟机实例的命令文档104,用户可以从命令行界面执行命令,诸如:
>>Invoke-SSMCommand-Tag‘WebServer’–DocumentName
‘webservices:RunScript’–Parameters@{Script=’shutdown/g[p]/d 2:17’}
如上所述,当用户执行命令文档时,用户可以指定应执行命令文档的目标(例如机器实例)。运行命令服务可以做出授权决定以确定用户是否有许可针对指定的目标运行命令文档(例如,用户是否有权访问命令文档,用户是否有权访问指定的目标等)。也就是说,响应于用户尝试执行文档(例如,“在这些指定的实例上执行DeleteSpecificFile命令文档”),运行命令服务112可以首先验证执行命令文档的用户已经被授予对指定文档的访问,并且接下来可以验证执行命令文档的用户有权访问指定的实例。如果任一验证的答案是错误的,则所述请求将被拒绝。如果两个验证的答案都是真的,那么运行命令服务112可能会致使在指定的实例上执行操作。因此,用户有权访问像“DeleteFiles”这样的命令文档,但无法定位用户无权访问的资源或管理员已经拒绝用户删除许可的资源。关于运行命令服务的更多细节可见图2。
作为另一示例,管理员102授予第一用户对命令文档的访问,其仅允许第一用户检查一个或多个资源116A-16N中的三个特定资源的日志。对于第二用户,管理员102将许可授予命令文档,允许第二用户执行特权操作,例如重新启动某些机器。管理员102此后可以执行审核以复查第一用户和第二用户执行的命令。
外部调度工具或服务(如Windows Task Scheduler)可用于计划何时运行具有指定的参数的命令文档104。在一些实施方案中,如果命令文档104的命令处于待处理或执行状态,则管理员102或一个或多个用户108可以尝试终止命令文档104的执行;在这种情况下,运行命令服务112将尝试终止活动的命令文档。在一些实施方案中,如果命令文档针对无响应或者处于某种状态(由此资源暂时不能执行命令文档104的命令)的资源运行,则运行命令服务112将为所述资源使命令文档104排队以在资源能够执行命令文档104的命令时执行。例如,运行命令服务112可以使命令文档104排队,并在中止前每小时尝试执行它,长达31天。在一些实施方案中,可以调节队列;也就是说,队列中的命令文档的数量可能受到限制。在这些实施方案中的一些中,命令文档的数量可以基于一个或多个资源116A-16N分配给的账户的类型。例如,允许计算资源服务提供商的客户拥有多达100个虚拟机的帐户可能会限制队列仅容纳15个命令文档。另一方面,最多有1000个虚拟机的帐户可能有最多可容纳200个命令文档的队列。
运行命令服务112可以利用健康检查过程来识别特定机器实例是否响应。例如,返回机器实例的最后一次已知的心跳(例如,从机器实例发送的指示正常操作的周期性信号),以及指示机器实例是否未初始化(机器实例从未响应,或者没有心跳记录)、活动的(机器实例最近似乎在积极寻求请求)、过期(机器实例是响应的,但是一段时间内没有收到心跳,并且因此实例可能无法接收消息)的状态。执行健康检查的多种方式可包括反应性状态检查(即,实体可以请求机器实例的状态)和前摄的(即,可以在预期用户选择时获得机器实例的状态检查)。
在示例情况中,资源116A-16N包括执行各种任务(例如,一些机器是文件服务器并且一些是web服务器)的一定数量(例如20、50、1,000等)的虚拟或其它机器实例。运行命令服务112允许管理员102执行命令文档104从而执行管理以将命令应用于执行各种任务的虚拟或其它机器实例。例如,如果管理员102需要收集50个机器实例的日志报告,则管理员102可以通过运行命令服务112的用户界面执行带有收集日志报告的指令的命令文档,传递标识50个机器实例的参数,并且运行命令服务112将以异步方式跨50个实例执行收集日志报告命令。在一些情况下,在命令文档完成了跨50个实例运行之后时,运行命令服务112将合并结果发送回到用户界面,于是管理员102可以具有执行的全局视图的选项和/或具有挖掘并查看每个机器实例在执行期间正在做什么或者作为对机器实例执行命令文档的结果而收集什么日志的选项。同样,如果管理员102需要在50个机器实例上执行某一常规管理任务(例如,重置机器实例,删除机器实例上的特定文件等),则管理员102可以利用用于执行特定管理任务的指令来执行命令文档(例如,经由用户界面或在命令行),并且针对这50个机器实例执行命令文档。
以这种方式,策略和访问决定可以在机器实例外部而不是由机器实例本身决定;也就是说,可以由运行命令服务112与认证服务一起来做出策略决定。因此,策略决定可以独立于机器实例上运行的操作系统进行;例如,机器实例可能在Windows、Linux或某一其它环境下运行,而不会影响命令文档的操作,因为策略决定将在机器实例之外进行。换句话说,决定允许还是不允许执行命令文档104的操作是在操作命令到达机器实例之前已经进行。
对应用程序设计接口的调用可以通过超文本传输协议安全(HTTPS)端点进行,且安全性可以由认证服务强制执行(例如,未经授权的用户被阻止履行请求)。运行在机器实例上的代理可以使用由计算资源服务提供商或由管理员102提供的凭证,从而确保代理的帐户级别认证和授权。
如上所述,由管理员102创建的命令文档104可以被计算资源服务提供商的服务认为是标准资源的另一种变体(例如,类似于数据存储资源或虚拟机实例)。一旦管理员102已经编写了命令文档104(即,定义了命令文档104可以进行什么),管理员102就可以通过认证服务为命令文档104指定策略,就像管理员102一样可能对任一其它标准资源所做的那样。例如,管理员102可以授予一个或多个用户108对以下资源的访问:<DocumentName>(命令文档104)。
在命令文档104已经以这种方式设置了诸如“Run this Command Now”、“Cancelthis Command Now”或“Give Me the Result of this Command”的一组选项之后,用于运行命令服务112的界面可以被呈现给管理员102和/或一个或多个用户108。以这种方式,当用户选择或调用(例如,通过应用程序设计接口)“Run this Command Now”时,用户将指示他/她有兴趣执行的命令文档104,并指定他/她有兴趣执行命令文档104的实例。由于运行命令服务112接收到调用/请求,运行命令服务112可以获得命令文档104,验证许可和策略允许调用实体执行命令文档104,确定命令文档104操作的目标,并验证调用实体有权访问指定的目标。成功验证后,运行命令服务112可能会致使命令文档104在指定目标上执行或针对指定目标执行。
在一些实现方式中,运行命令服务112可通过向指定目标提供命令文档104,致使在指定目标上或针对指定目标执行操作。指定的目标可能会检查命令文档104以确定要执行的操作、执行操作且然后将结果发送回运行命令服务112。在其它实现方式中,运行命令服务112可通过向指定目标提供在命令文档104中指定的单独操作,致使在指定目标上或针对指定目标执行操作。指定的目标可以执行每个单独的操作并将结果发送回运行命令服务112。
由运行命令服务112从指定的目标(或目标,如果命令文档104针对多个目标执行)接收的结果可以被收集/记录。以这种方式,管理员102可以复查所执行的操作的结果。运行命令服务112基于所收集的结果,可以显示针对所有指定目标的操作的总体状态,或运行命令服务112可以显示指定目标的结果。例如,如果指定的50个虚拟机中的一个虚拟机未能完全执行命令文档104,则管理员102可以使用运行命令服务112的界面,挖掘收集的结果,以查看当机器那时无法运行请求时的机器状态。
在一些实施方案中,管理员102甚至可以委托给指定用户“创建文档”许可,这将允许指定的用户创建他们自己的命令文档。替代地,由计算资源服务提供商提供的特定客户账户的管理员102可以指定不允许与客户账户相关联的其他用户创建命令文档。这种情况的效果是所述帐户的所有其他用户只能执行管理员102已授予他们执行许可的现有文档。在另一种情况下,管理员102可以授予特定用户(例如高特权用户)创建命令文档的许可。在一些实现方式中,管理员102可能会限制此类其他用户能够创建的文档的类型。例如,管理员102可以授予用户创建命令文档的许可,但是指定创建的命令文档只能包括由管理员102指定的某些类型的操作。
命令文档可以包括多个命令,并且在执行时,运行命令服务112可以处理每个命令的排队、执行和报告。例如,要使命令文档运行特定位置中存在的脚本文件,可以使用以下命令配置命令文档:
在一些实施方案中,运行命令服务112可以允许管理员102和/或授权用户使用应用程序设计接口来检索返回特定时间段(例如,90天)的命令历史。在实施方案中,命令文档的执行不需要在执行另一个命令文档之前完成。例如,运行命令服务112可以从一个或多个用户108接收多个顺序以执行命令文档104,并且命令文档可以按照它们由运行命令服务112接收的顺序执行。然而,在一些实现方式中,可能存在节流限制由此来允许针对特定实例排队不超过预定数量的命令。在一些实现方式中,节流限制可基于实例的类型(例如,具有较大量存储器和/或处理能力的实例可具有比具有较少存储器和较少处理能力的实例更高的节流限制)或客户账户的类型(例如,计算资源服务提供商的客户可能为更高的节流限制支付额外费用)而变化。
可以通过调用Status()应用程序设计接口并通过命令行或通过用户界面(例如从在执行的软件应用)以编程方式传递与运行命令文档相关联的“命令ID”,来检查运行命令文档的执行状态(例如,每个实例在进程中的位置)。在一些实现方式中,运行命令服务112还可以被配置为与计算资源服务提供商的其它服务集成,诸如从计算资源服务提供商的遥测服务接收遥测度量作为参数的能力。
环境100可以配置有各种安全措施。例如,运行命令服务112可以验证运行命令文档104的用户有权访问命令文档104而无需通过纯文本在网络上发送凭证。如前所述,运行命令服务112可以提供可被跟踪的历史,从而允许管理员1022审核针对任何资源运行的命令。在一些实现方式中,它们已经针对实例执行的命令的日志可以由在实例上执行的软件代理生成,并且软件代理可以向运行命令服务周期性地、按需地或者响应于某一其它事件而提供日志。这样,管理员102可能能够查看所有命令的历史以及针对每个实例的这些命令的支持细节。
在各种实施方案和实现方式中,一个或多个资源116A-16N可以是托管在计算资源服务提供商的物理主机上的虚拟机实例。在一些示例中,“虚拟机”可以指物理计算机系统的软件和/或硬件中的仿真,使得在虚拟机环境中执行的软件表现得好像虚拟机是物理计算机一样。然而,由于可以设想,本公开的实施方案也可以针对非虚拟计算设备来实现,如本文所使用的,“机器实例”可以指代虚拟和非虚拟计算设备。尽管本公开在许多实施方案中涉及“实例”,但是也设想资源116A-16N可包括除虚拟和非虚拟机之外的其它资源,包括网络、数据库以及虚拟和非虚拟存储设备。
运行命令服务112可能会提供暴露常用管理性动作和管理动作的一组命令。定义命令文档104并使得一个或多个用户108能够执行如重置用户密码和执行各种其它管理任务等动作的能力,使管理员102能够通过委托管理来管理一个或多个资源116A-16N。
用于命令文档创建和管理的示例性文档应用程序设计接口的列表可包括CreateDocument()、GetDocument()、DeleteDocument()、DescribeDocument()以及ListDocument()(返回所有文档的列表;如果指定了-公用,则仅可返回公用文档)。
调用DescribeDocument()的示例响应可为:
用于管理命令文档和资源之间关联的示例文档应用程序设计接口的列表可包括CreateAssociation()、CreateAssociationBatch()、DeleteAssociation()、DescribeAssociation()、DescribeCommand()(获取命令文档名称和给定命令ID的参数以及目标实例ID/标记)、GetCommandStatus()(获取针对命令文档发送到的每个实例的执行命令文档的状态和响应)、ListAssociations()和UpdateAssociationStatus()。用于管理文档和资源(例如,虚拟机实例)之间的交互的示例应用程序设计接口的列表可包括SendCommand()(执行指定的命令文档并返回命令ID)、ListCommands()(请求的命令文档的列表)、ListCommandInvocations()(命令调用列表)、ListRecentCommands()(获取实例或帐户的最近调用的命令文档列表)和CancelCommand()(尝试针对命令文档的命令发送到的一个资源或所有资源取消指定命令ID的执行命令文档)。
SendCommand()应用程序设计接口将指定的命令文档发送到一个或多个机器实例。此调用是异步的,并返回可用于查询命令文档状态的命令ID。SendCommand()的参数可包括:
调用SendCommand()的示例响应可为:
DescribeCommand()的参数可包括:
Command ID | 执行命令文档来描述的ID。 |
调用DescribeCommand()的示例响应可为:
GetCommandStatus()参数可包括:
Command ID | 命令文档的ID。 |
Filters | 使用户过滤命令文档状态和实例ID的键值对。 |
MaxResults | 结果的最大页面大小。 |
NextToken | 获取下一页的令牌。 |
对调用GetCommandStatus的响应可包括:对每个实例ID的响应,其中可能含有实例ID、状态(例如,“待处理”,“无效请求”,“进程中”,“完成”,“失败”,“取消请求”,“取消”等);以及来自调用的命令文档中的每个插件的响应。来自插件的响应可包括插件名称(插件的名称)、响应代码(由插件报告的响应代码)、响应时间(响应的时间)、响应状态(例如,“待处理”,“进程中”,“完成”,“失败”等)、响应输出(将由插件确定的内容)和输出链接(可以找到扩展输出日志的链接。插件可以是提供给运行命令服务112的用户和管理员以执行专门的操作的软件部件。运行命令服务112可能支持的插件示例包括遥测数据收集插件、用于加入域的插件、Windows PowerShell插件、用于执行脚本文件的各种插件、消息处理器插件等。
调用ListCommands()的示例响应可为:
List<Command>
ListCommands()的参数可能包括CommandId和InstanceId。调用ListCommandInvocations()的示例响应可包括:
ListCommandInvocations()的参数可包括CommandId和InstanceId.Details、CommandId和InstanceId。CancelCommand()的参数可包括CommandId和InstanceId(应取消与命令ID对应的执行命令文档的实例的ID)。ListRecentCommands的参数可包括:
InstanceID | 从中获取历史的实例。 |
Filters | 使用户过滤命令调用时间和执行命令文档的状态的键值对。 |
MaxResults | 结果的最大页面大小。 |
NextToken | 获取下一页的令牌。 |
对调用ListRecentCommands()的响应可包括按时间顺序(最近调用第一)的最近调用的命令ID列表。
示例代理管理应用程序设计接口的列表可包括DescribeInstanceInformation()(返回已经向运行命令服务112注册的机器实例的实例信息(例如,上次心跳))和UpdateInstanceInformation()(由代理用于更新机器实例信息和ping状态)。调用DescribeInstanceInformation()的示例响应可包括:
DescribeInstanceInformation()的参数可包括:
UpdateInstanceInformation()的示例参数可包括:
运行命令服务112可以为命令文档提供预定义的模板。管理员102可以通过应用程序设计接口或用户界面,基于预定义的模板设计他/她自己的命令文档,以包括他们希望在命令文档104中执行的特定命令。
通过允许管理员指定哪些用户可以访问命令资源以及用户可以通过访问管理许可和策略对客户实例执行哪些动作,运行命令服务提供了委托管理。运行命令服务收集用户针对其机器实例运行的命令的详细历史,包括对命令输出的审核,从而提供审核和报告命令文档使用的能力。运行命令代理可以在托管机器实例的远程主机上执行,其中代理负责在远程实例上执行命令。运行命令代理可以是在机器实例内执行的指令集,其解释实例配置并执行诸如命令文档中指定的操作之类的操作,以响应来自运行命令服务的请求。
如果执行命令文档时目标资源没有运行或没有响应,则运行命令服务可能会使命令文档排队以在资源再次响应后的某个时间运行。运行命令服务可以将命令文档排队并尝试在最初被放入队列中之后运行它达到阈值时间量(例如,31天)。用户可以同时执行多个命令文档,并且运行命令服务将处理每个命令文档的排队、执行和报告。在一些实施方案中,节流限制可以限制可以在给定时间范围内执行的命令文档的数量,例如每个实例每分钟执行不超过60个命令文档等)。如果命令文档处于待处理或执行状态,则用户可尝试终止或中止命令文档,并且服务将尝试使命令文档停止执行。例如,如果命令文档的命令已经发送给在一个或多个资源116A-16N上执行的一个或多个代理以执行,则运行命令服务112可以尝试通过向所述一个或多个代理发送取消命令的执行的请求来停止执行命令文档。依据来自一个或多个代理的所述一个或多个代理是否能够终止(或回滚)命令执行的响应,可以将命令文档的状态更新为“已取消”或“未能取消”。作为另一个示例,在命令文档的状态为“待处理”的情况下(例如,命令尚未发送给一个或多个代理以执行),运行命令服务112可以从排队命令列表中移除命令文档或命令(或者忽略命令文档或命令以响应它们从队列中释放)并且将命令文档的状态更新为“已取消”。
在一些实施方案中,运行命令服务112可以使用清扫机。清扫机可以是服务或应用,所述服务或应用定期运行以清除旧的(即,超过阈值年限)命令文档执行和来自永久性存储设备的响应历史(例如,删除和压缩图2的数据库服务248处的记录)。如上所述,提供运行命令服务的计算系统服务提供商可以向用户提供预定义的命令文档。用户可能能够经由命令行界面处产生的命令获得可用命令文档的列表,例如:
>Get-SSMDocumentList-Public
作为响应,用户可能会接收到如下信息:
WebServices Provided Command document Templates
----------------------------------------------
WebServices:DomainJoin
WebServices:PowerShellScript
关于个别命令文档的更多信息可以通过命令行界面上产生的命令来获得,例如:
>Get-SSMDocumentDescription-Name
“WebServices:PowerShellScript”
作为响应,用户可能会接收到如下信息:
为了使用户执行命令文档,用户可以通过名称指定命令文档并指示参数值。例如:
>Invoke-SSMCommand-InstanceId“i-12345678”-Name
“WebServices:PowerShell”-Parameters@{Script=‘ipconfig/all’}
创建命令文档、分配许可和执行文档可以通过用户界面来执行,例如图3所示的用户界面。
图2示出可以实践实施方案的环境200的方面。具体来说,环境200描绘了异步命令文档执行流程。在环境200中,用户208经由接口254通过网络262A向运行命令服务212的控制平面252提交请求。用户208可能是实体,诸如图1的管理员102或一个或多个用户108,并且运行命令服务212可能类似于图1的运行命令服务112。运行命令服务212的控制平面252是运行命令服务的部件,它将应用程序设计接口暴露给接口254。接口254可以是允许诸如用户、管理员和软件应用等实体与运行命令服务212进行通信的接口。接口254的示例包括命令行界面或控制台、基于web或其它。
网络262A-62B可表示至少两个实体之间(例如,用户208和运行命令服务212之间、代理264和消息传递服务250之间等)的通信路径。网络的示例包括互联网、局域网、广域网和Wi-Fi。提交的命令可能会记录在数据库服务248中与一组指定的实例216相关联。数据库服务248可以是计算资源服务提供商的服务,其向计算资源服务提供商的客户或者计算资源服务提供商的其它资源或服务提供诸如表格、查询、报告、视图和其它对象的有组织的数据集合。用户208提供的命令文档内的命令可以作为一组消息存储在队列246内。
队列246可以是计算资源的集合,其被配置为操作作为消息存储区,允许计算资源服务提供商的各种计算资源存储要由计算资源服务提供商的其它计算资源读取的一个或多个消息。队列246可以由诸如RabbitMQ、Java消息服务和Microsoft消息队列的队列服务提供。这种队列服务可以是利用高级消息队列协议(AMQP)的队列服务。在其它实现方式中,队列246可以是数据库表、一个或多个阵列、一个或多个循环缓冲区、一个或多个链接列表、一个或多个堆栈或一个或多个类似数据结构中的一个或多个记录。提供给队列246的每个消息都可包括文本的任何变体,诸如编程代码、用于数据对象的统一资源标识符以及其它语句。在一些实施方案中,队列246被实现为“未处理的工作”队列,其中表示未处理的命令文档的消息可以被保存达到一段时间(例如,31天)。
然后,可以在运行命令服务212处从队列246接收第一消息。运行命令服务212可以通过借助数据库服务248参考数据条目来验证,命令的状态指示命令文档尚未被发送到该组指定的实例216以用于执行(例如,未“发送”)。运行命令服务212可以更新数据库服务中的状态以指示命令的执行正在开始(例如,“正在进行中”)。运行命令服务212可以获得一组实例ID(例如,由用户208指定的实例ID,与用户208指定的标记对应的实例的ID,其可以经由针对与指定标记相关联的实例的实例ID对计算资源服务提供商的虚拟计算系统服务的请求来获得等)。随着针对该组指定实例中的个别实例的执行的完成,那些已处理的实例ID可能会从该组实例ID中移除,从而仅剩下仍在处理的实例的ID。
消息传递服务250可能是计算系统(例如,计算机设备,或分布式计算设备的集合),其响应于来自另一实体(例如,运行命令服务212、该组指定实例216等)的请求,将消息发布给一个或多个其它实体(例如,队列246等)。消息传递服务可以使用可用于从消息服务向另一实体传送信息的一种或多种技术来传送消息。消息传递服务控制平面258可用于用于将命令和/或命令文档发送到该组指定实例216。控制平面252可以是消息传递服务250的部件,其向在该组指定实例216上运行的代理264发送命令并且从代理264接收针对该组指定实例216执行命令的响应/结果。该组指定实例216可以是一组一个或多个虚拟机实例或者关于图1的一个或多个资源116A-16N描述的资源类型。
对于该组指定实例216的每个实例,用户208针对实例执行命令文档的授权可能会被验证。验证后,运行命令服务212可以将从队列246接收到的命令发送到消息传递服务250,以发送给代理以针对实例执行。代理264可以是在实例内本地运行或在托管实例的物理主机本地的软件应用。代理264可充当外部实体与实例之间(例如,在消息传递服务250与实例之间)的中间媒介(例如,代理)。在完成或终止在其相应的实例处执行命令后,代理264可以将命令执行的结果(例如,“已完成”,“错误”,“已取消”等)发送回消息传递服务250。消息传递服务250可以将结果作为消息推送到队列246。运行命令服务212可以从队列246接收结果并致使命令的状态在数据库服务248处更新。
结合将消息发送到消息传递服务250,运行命令服务212可以用数据库服务248将该特定实例的命令文档的状态更新为“已发送”,并使第一条消息从队列246移除。当消息从队列246移除时,运行命令服务212可能会致使命令的状态在数据库服务248处更新(例如“已完成”)。用户208可以使用接口254来经由运行命令服务212从数据库服务248检索命令的状态以进行查看。
图3示出本公开的实施方案的用户界面300的示例。用户界面300可包括对运行命令文档的资源列表,例如实例窗格316中的实例列表。实例窗格316中的实例列表可基于用户界面调用具有DescribeInstanceInformation()应用程序设计接口调用的运行命令服务的结果,所述应用程序设计接口调用可包括与计算资源服务提供商的客户账户相关联的一组实例标识符。作为响应,用户界面可以接收指示哪个或哪些实例能够运行命令的信息。
为了执行命令文档,用户例如图1的一个或多个用户108或管理员102可以通过从实例列表中选择一组一个或多个机器实例来开始。如在用户界面300中可以看到,以这种方式选择了“Webserver 02”。在选择一个或多个机器实例之后,用户可以从上下文菜单318中选择“运行命令”。作为选择“运行命令”的结果,用户界面可以通过打开窗口(例如图4的弹出对话框420和图6的窗口620)进行响应,所述窗口允许用户输入命令文档或脚本来运行。响应于用户在输入要运行的命令文档或脚本之后单击提交按钮,可以针对选定的一组实例执行命令文档或脚本。执行命令文档的输出可能在状态窗格(诸如图8的输出窗格822)中可用。
说明窗格336可以显示选定实例的当前状态。点击“命令历史”可以向用户呈现详细描述已经针对实例运行的命令文档的屏幕,包括它们运行的时间、执行结果等等。点击命令链接366可以向用户呈现列出了在账户下执行的或正在执行的所有命令文档的屏幕(未示出),包括诸如命令ID、状态(例如,“完成”,“待处理”,“失败”等等)、机器实例ID和/或注释的数据。如果用户不希望查看执行的或正在执行的所有命令文档,则所述屏幕可以提供按各种准则过滤列表的能力,例如仅显示完成的任务、在特定时间范围内执行的命令文档等等。在一些实现方式中,命令历史可以将列表中的命令保持有限的时间量(例如,90天)。
图4示出了本公开的实施方案的用户界面400的另一个示例。用户界面400可包括弹出对话框420,它被呈现以允许用户选择命令文档来开始命令工作流程。帮手文本和描述性字段/标签424(例如工具提示)可在可能的情况下可用于帮助指导用户并给出每个字段的上下文,并且可以在视觉上指定所需的和任选的字段。“目标实例”可以反映从图3的实例窗格316选择的一组实例。命令下拉菜单428可能含有预定义的发布的命令文档和/或加上用户生成的文档。可以添加“了解更多”链接以获得更多帮助和/或更新什么字段做什么。
可从弹出对话框420中选择的命令文档的示例可包括用于加入目录服务域的命令文档(如图所示)、用于安装应用的命令文档(未示出)、安装Windows PowerShell模块(未示出)等等。
基于选择的命令文档和与命令文档相关联的特定参数,弹出对话框420可能会自行更新以含有与参数相关联的表单字段430。例如,用户界面400描绘了如将适合用于加入目录服务域的命令文档的一组表单字段。如果选定的命令文档替代地是用于安装应用的文档,则可以向用户呈现不同的一组表单字段,例如应用路径、标志等等。表单字段430可以预先填入默认值。当用户对命令文档和参数值的选择感到满意时,用户可以点击运行按钮432以根据指定的参数执行选定的命令文档。
应注意,上图和下图中的表单元素仅用于说明性目的,并且所使用的特定表单元素可能依据实现方式而有所不同。例如,命令下拉菜单428可以是文本框或多选框,所示的按钮可以替代地是图形图标等等。用户界面中使用的表单元素可以是适用于其实现目的的任何已知表单元素,包括复选框、图像地图单选按钮等等。点击命令下拉菜单428可以产生可用的命令文档的名称列表以及每个命令文档的相关联描述。命令文档名称和描述可以设置为创建命令文档的一部分。
图5示出本公开的实施方案的用户界面500的另一个示例。用户界面500可包括:窗口520,其向用户呈现指示命令文档正在执行的消息(例如,指示命令文档的执行成功的成功消息);以及一个或多个实例状态链接532,其用于查看针对实例执行的命令文档的状态;和/或命令状态链接534,其用于查看执行的命令文档的总体状态。点击实例状态链接可以为用户呈现所述实例的命令历史选项卡。相反,如果命令文档或命令文档中的一个或多个命令的执行失败,则窗口520可包括命令执行流程的适当的失败/错误消息,如可以在图6中看到的。
图6示出本公开的实施方案的用户界面600的另一示例。如果命令文档或命令文档中的一个或多个命令的执行失败,或者如果选定的实例的一部分未处于接受命令的状态(例如,未响应于互联网控制消息协议回声(即,ping)请求,则可能会显示错误消息646(例如,“下列实例无法运行命令。您可以跳过这些实例并通过单击“继续”来继续针对其它实例运行,或者您可以通过单击“取消”来取消所述过程;以这种方式,用户能够决定中止命令文档的所有执行或继续执行非失败的实例”)。
选择命令状态链接534可以向用户呈现屏幕,诸如图7中所示的屏幕以用于查看正执行或已执行的命令文档的状态。图7示出了本公开的实施方案的用户界面700的另一个示例。用户界面700可包括具有一个或多个选项卡的命令输出窗格722,例如用户界面700中描述的细节选项卡和输出选项卡。细节选项卡可能含有有关所选特定实例的命令历史的细节,例如实例ID、状态、命令文档名称、任何插件的名称、执行命令文档的开始时间、执行命令文档的结束时间和他的响应代码和/或响应输出。
从用户界面700可以看出,可能存在对特定实例的每个命令调用的状态(例如,如果对10个实例调用了一个命令文档,则将总共将有10个状态)。命令状态(也称为执行状态)以及有关针对特定实例执行命令的各种尝试的细节可以在用户界面700的命令状态窗格760中查看,或者可以通过使用GetCommandStatus()应用程序设计接口来提取,所述接口将命令ID作为输入,并作为响应返回命令状态的页。以这种方式,查看用户界面的管理员或其它用户不仅可以找出每次执行尝试的结果,而且可以找到实际尝试的命令/操作,以及诸如执行的开始和/或停止时间之类的信息。例如,如果“用户A”尝试运行命令来格式化分区或从目标实例的驱动器中删除文件,则响应于管理员查看实例的执行日志的请求,日志视图将会显示命令是否成功、提交执行请求的实体的身份(例如,“用户A”)以及选择执行什么命令文档(例如,“用户A拒绝尝试删除文件‘ABC.’”)。每个命令状态可以表示对特定实例的命令文档的调用。命令状态窗格760可以含有诸如实例ID、状态(“待处理”、“无效请求”、“排队”、“执行”、“完成”、“失败”、“取消请求”、“取消”等)的信息、响应(来自调用的命令文档中的每个插件的响应。相应机器实例上的代理可负责提供调用的状态以及插件响应。
选择输出选项卡可将命令输出窗格722切换到输出窗格822,以用于查看正执行或已执行的命令文档的输出,如图8中所示。图8示出本公开的实施方案的用户界面800的另一个示例。用户界面800的输出窗格822可包括的对应于从上面任务840中选择的特定任务的可扩展/可折叠子窗格,并且每个命令输出可以显示在可扩展/可折叠子窗格内。动作按钮870可以被用来致使针对选定的任务执行特定的动作。例如,如果一些任务处于“失败”状态,则用户可以从任务840中选择这些任务并从动作下拉菜单中选择“重新运行命令”选项。动作下拉菜单中的另一个可能的动作可包括“取消待处理”,用于取消处于“待处理”状态的任务。选择动作下拉菜单中的“重新运行命令”选项可能会再次调用运行命令特征,其可能会使用户返回到类似于图4的用户界面400的界面且允许用户在运行命令文档之前改变参数值。
下面显示了管理员可以用来授予用户对执行命令文档的访问的一些策略示例:
通过运行命令服务,用户可以在用户可以从实例本地执行的远程机器实例上执行任何命令文档或脚本。用户可以发出命令或到本地脚本的路径的类型来执行命令。
调用Get-SSMDocumentDescription可返回指定命令文档及其可用参数的说明。图9示出从发出以下来自命令行界面900的命令返回的说明:
Get-SSMDocumentDescription-Name
"WebServices-RunPowerShellScript"
用户可以通过使用–ExpandProperty参数选项来查看关于每个参数的细节,包括默认值和参数类型。图10示出从发出以下来自命令行界面900的具有–ExpandProperty参数选项的命令返回的说明:
Get-SSMDocumentDescription-Name
"WebServices-RunPowerShellScript"|select-ExpandProperty
Parameters
用户可以获得具有针对实例的响应数据的命令信息。
图12示出在执行以下命令以通过命令行界面1200将虚拟机配置降级到较旧版本之后返回的细节:
Send-SSMCommand-InstanceId i-bacadb68-DocumentName
"WebServices-UpdateVMConfig"-Parameter@{'version'='3.8.354';
'allowDowngrade'='true'}
图11示出从命令行界面1100启用Windows自动更新的命令的命令状态:
Get-SSMCommandInvocation-Details$true-CommandId
$configureWindowsUpdateCommand.CommandId|select
-ExpandProperty CommandPlugins
图13示出本公开的实施方案的命令文档的执行流程1300。如图13所示,针对一个或多个实例1316A-16N执行命令文档的命令1304。作为一个或多个实例1316A-16N中的每一个的执行结果,软件代理可以输出执行的状态1342。图7、图8、图11和图12中可以看到各状态的示例。。如果运行任何插件,则每个正在运行的插件都可提供额外的响应1344A-44N。图11示出插件响应。
图14是示出根据各种实施方案的用于分配向用户授予执行命令文档的许可的过程1400的示例的框图。过程1400的一些或全部(或所描述的任何其它过程,或者这些过程的变型和/或组合)可以在配置有可执行指令和/或其它数据的一个或多个计算机系统的控制下执行,并且可以被实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其它数据可以被存储在非暂时性计算机可读存储介质(例如,永久地存储在磁性、光学或闪存介质上的计算机程序)上。
例如,过程1400的一些或全部可以由结合图17所描述的环境1700的各种部件(诸如web服务器1706或应用服务器1708,由计算资源服务提供商的分布式系统中的多个计算设备,或由诸如电子客户端设备1702的任何电子客户端设备)通过诸如数据中心中的服务器的任何合适的系统来执行。过程1400包括一系列操作,其中执行过程1400的系统接收指示命令文档的请求、获得授予执行文档的许可的策略、接收与策略相关联的用户选择并将策略分配给选定的用户。
在1402中,执行过程1400的系统从请求实体接收指示命令文档的请求。请求实体可以是管理员,例如图1的管理员102,或授权管理命令文档的某一其它实体。如上所述,命令文档可包括命令集和一组需要的和任选的参数,用于针对与由计算资源服务提供商提供的账户相关联的资源实施那些命令。指示命令文档的上下文包括向系统识别命令文档的命令集和参数集的任何方式,诸如通过提供命令文档本身的内容;通过命令行、通过控制台界面或以编程方式提供对预定义命令文档的选择;提供与现有命令文档相关联的标识符;从一组命令文档中选择命令文档等等。应注意,一个以上命令文档可能被1402的请求指示。
在1404中,执行过程1400的系统可以获得授予执行命令文档的许可的策略。所述策略可以由系统即时生成,或者可以由客户账户的管理员或某个其它授权实体在1402的操作之前、之后或与其结合的时间创建。所述策略可能特定于1402的所指示的命令文档,或者可能以适用于一个以上命令文档的方式起草。所述策略可以被存储和维持在计算资源服务提供商的策略管理服务处。应注意,如果多个请求由1402的请求指示,则可在1404中获得多个策略。
在1406中,执行过程1400的系统可以接收授予访问1402的命令文档的策略应该应用于的一组用户的选择。该组用户的选择可以由账户的管理员或被授权将用户与授予执行命令文档的许可的策略相关联的某个其它实体通过命令行或控制台界面从编程式选择(例如,通过执行的软件应用)或者选择来获得。所述选择可包括与该组用户中的每个用户唯一相关联的标识符,可包括该组用户所属的群组的标识符,可包括与该组用户相关联的角色的选择,或者某一其它用于识别所选用户的方式。
最后,在1408中,执行所述过程1400的系统可以分配1404的一个或多个策略,所述一个或多个策略授予在1406中选择的该组用户执行1402的一个或多个命令文档的许可。系统可以通过向计算资源服务提供商的策略管理服务提交用于将一个或多个策略与选定的一组用户相关联的请求来分配策略,且因此,策略管理服务可以致使一个或多个策略与选定的一组用户相关联,从而授予选定的一组用户执行1402的一个或多个命令文档的许可。应注意,在1402-08中执行的操作中的一个或多个可以各种顺序和组合来执行,包括并行执行。
图15是示出根据各种实施方案的用于执行命令文档的过程1500的示例的流程图。过程1500的一些或全部(或所描述的任何其它过程,或者这些过程的变型和/或组合)可以在配置有可执行指令和/或其它数据的一个或多个计算机系统的控制下执行,并且可以被实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其它数据可以被存储在非暂时性计算机可读存储介质(例如,永久地存储在磁性、光学或闪存介质上的计算机程序)上。
例如,过程1500的一些或全部可以由结合图17所描述的环境1700的各种部件(诸如web服务器1706或应用服务器1708,由计算资源服务提供商的分布式系统中的多个计算设备,或由诸如电子客户端设备1702的任何电子客户端设备)通过诸如数据中心中的服务器的任何合适的系统来执行。过程1500包括一系列操作,其中接收到针对资源执行命令文档的请求,验证请求者的访问许可,并且命令文档的命令被发送以针对资源执行。
在1502中,执行过程1500的系统接收到执行命令文档的请求。所述请求应包括应执行哪个命令文档的指示,并且还可包括应执行命令文档的命令的一组资源的选择。所述请求可被部分地接收到;也就是说,可以首先接收执行命令文档的请求,然后接收指示该组资源的请求,或反之亦然。如上所述,资源可以是如可由计算资源服务提供商向其客户提供的任何合适类型的物理或虚拟计算资源,包括虚拟机实例、数据存储资源、网络资源等等。
在1504中,执行过程1500的系统可以确定请求者是否具有足够的许可来使命令文档被执行。例如,系统可以查询提供本公开的运行命令服务的计算资源服务提供商的策略管理服务,以确定请求者是否与策略(例如图14的1404的策略)相关联,所述策略授予请求者执行策略的许可。如果系统无法验证请求者有足够许可来致使执行命令文档,则系统可以进行到1506,于是请求被拒绝。在一些情况下,拒绝请求可能包括响应于请求而提供的错误消息。
否则,如果执行过程1500的系统确认请求者具有足够许可代表他/她/它执行命令文档,则系统可以进行到1508,于是系统可以确定请求者是否具有对选定的一组资源的访问许可。在一些实现方式中,如果请求者具有对选定的一组资源中的一些资源的访问许可而不具有对选定的一组资源中的其它资源的访问许可,则系统可省略资源,请求者缺乏对来自要执行命令文档的选定的一组资源中的所述资源的访问。在其它实现方式中,如果请求者缺乏对选定的一组资源中的任一者的访问,则系统可以拒绝所述请求并且不允许针对选定的一组资源中的任一者执行所述命令文档。
在一些实现方式中,系统可以查询计算资源服务提供商的策略管理服务以确定请求者是否具有访问选定的一组资源的任何类型的许可。例如,对选择的一组资源具有读取访问可能足以确定请求者有权访问选定的一组资源;然而,当命令文档的命令针对需要除了“读取”之外的许可的特定资源执行时,可以在请求者的授权下尝试执行,并因此所述执行失败,因为请求者没有足够许可执行操作。在其它实现方式中,系统可以(例如,经由策略管理服务)确定对于在命令文档中指定的每个命令,请求者是否具有足够许可来执行指定的命令。在仍然其它实现方式中,系统可以另外确定请求者是否具有足够许可来使用指定的参数来执行指定的命令(例如,请求者仅具有对资源的一些“删除”许可可能是不够的,而是必须具有请求者尝试删除的资源文件的“删除”许可)。如果请求者对指定的一组资源没有足够的访问特权,则系统可以进行到1506来拒绝请求。否则,如果请求者对指定的一组资源具有足够的访问特权,则在1510中,系统可能会致使命令文档的命令针对指定的一组资源执行。有关1510的操作的更多细节可以在图16的过程1600的描述中找到。
应注意,在1502-10中执行的操作中的一个或多个可以各种顺序和组合执行,包括并行执行。作为另一个示例,1508的操作可以在1504的操作之前或与其并行执行。还应注意,在描述所公开的实施方案的上下文中,除非另外指明,否则关于执行“指令”通常不独立执行的操作(例如,数据传输,计算等)的可执行指令(也称为代码、应用、代理等)的表述的使用表示指令由机器执行,从而使机器执行指定的操作。
图16是示出根据各种实施方案的用于执行命令文档的过程1600的示例的流程图。过程1600的一些或全部(或所描述的任何其它过程,或者这些过程的变型和/或组合)可以在配置有可执行指令和/或其它数据的一个或多个计算机系统的控制下执行,并且可以被实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其它数据可以被存储在非暂时性计算机可读存储介质(例如,永久地存储在磁性、光学或闪存介质上的计算机程序)上。
例如,过程1600的一些或全部可以由结合图17所描述的环境1700的各种部件(诸如web服务器1706或应用服务器1708,由计算资源服务提供商的分布式系统中的多个计算设备,或由诸如电子客户端设备1702的任何电子客户端设备)通过诸如数据中心中的服务器的任何合适的系统来执行。过程1600包括一系列操作,其中系统可以迭代一组指定实例和命令文档的命令,使命令文档的命令针对实例执行,并记录结果。
在1602中,运行命令服务可以开始处理图15的1502的请求中指示的命令文档。在1604中,可以选择选定的一组资源中的第一资源子集。在一些情况下,可以通过从诸如图2的队列246的消息队列接收消息来完成对该组资源的选择,由此所述消息指示子集资源和要针对所述子集执行的命令文档。应注意,在一些情况下,命令文档的执行可能高度并行;也就是说,不是对于选定的一组资源中的每个资源重复1604-14的操作,而是可以在并行运行的单独线程中单独执行1602-16的操作(省略1614的操作,因此每个资源只运行一次)。在其它情况下,过程1600的操作可以并行地针对各批次(即,子集)的资源运行。也就是说,选定的一组资源可以被分成子集(例如,第一子集、第二子集、第三子集等),并且命令文档可以针对子集的每个资源并行执行。当一个子集的每个资源的命令文档执行结束时,过程1600可以针对下一个子集重复,等等。同样,在一些情况下,操作可能会串行地执行;也就是说,对于选定集合中的每个资源,可以重复1602-14的操作,直到命令文档已经针对所选集合的所有资源执行(或尝试执行)。
在1606中,执行过程1600的系统可以确定选定的子集的资源是响应的还是以其它方式可接受的,以接收和执行命令文档的命令。在一些实现方式中,这可以通过从资源获得最后接收到的心跳的时间并基于心跳确定资源是否无响应(例如,当前时间与最后接收到的心跳的时间之间的差是否超过阈值)来确定。在其它实现方式中,这可以通过向资源发送互联网控制消息协议回声(即,ping)请求来确定,并且如果没有接收到回复或者回声请求以其它方式超时,则可以确定资源无响应。在仍然其它实现方式中,可以将消息发送到驻留在资源处的一个或多个代理,并且代理可以回复这样的效果:在资源响应时,它们当前处于繁忙状态或以其它方式处于不可接受以执行命令文档的命令的状态。在执行过程1600的系统确定资源没有响应或以其它方式不可接受的情况下,系统可以进行到1608,于是系统可以确定是否在所述实例上重试执行。
也就是说,在1608中,执行过程1600的系统可以确定1604-10的迭代数量是否已超过重试阈值或者资源是否在阈值时间量无响应或不可接受。如果不是,则系统可进行到1610,于是实例和命令ID可以放置在消息队列末尾的消息中,并且刚好在已经过一段时间之后到达。在一些实现方式中,这可以是与提供1604的选定的一组资源的消息队列相同的消息队列。在其它实现方式中,重试队列可以是用于无响应和不可接受的资源的单独队列。资源可能与计数器相关联,并且计数器可能在1608中被用来确定是否已超过无响应/不可接受资源的阈值重试次数。在其它实现方式中,资源可以与时间戳相关联,所述时间戳可在1608中用于确定是否已超过了超时阈值。
在确定不会进一步尝试确定实例是否响应或以其它方式确定实例是否接受命令的情况下,则在1612中,可以进行输入,例如利用图2的数据库服务248,更新实例的状态以指示命令不能在特定实例上执行(例如,“超时”状态,指示所述命令已被取消并且不会进行进一步的尝试),并且执行过程1600的系统可以进行到1614。所述命令可以从队列中移除或不返回到队列中,以便取消进一步尝试执行命令或确定实例是否可以接受。在1614中,系统可以确定指定的一组实例的任何实例是否仍然没有完成所指示的命令文档的执行。如果已经针对命令文档处理了指定的一组实例的所有实例,则系统可以进行到1616并且过程1600结束。否则,如果指定的一组实例的其它实例仍有待处理,则执行过程1600的系统可返回到1604以开始处理指定的一组实例的下一个未处理实例(例如,从消息队列中获取下一条消息)。
然而,如果在1606中,资源被确定为响应的并且可接受处理命令文档的命令,则执行处理1600的系统可以进行到1618,于是系统可以使命令文档的命令被发送给实例处的代理供处理,例如图2的代理264。代理可以就执行状态(例如,“正在运行”、“已完成”、“错误”等)作出响应,所述状态可以由系统在1620中接收。
作为接收到响应的结果,执行所述过程的系统在1622中可以使状态存储在事务日志中和/或在诸如图2的数据库服务268处的数据库中更新,于是系统可以进行到1614以确定是否还有任何实例要被发送命令以供处理。应注意,如果接收到的状态是除了指示正在执行命令文档以外的状态,则系统可继续从代理接收状态更新,并且可继续记录状态更新或更新数据库中的状态,直到代理指示命令处理已完成。应注意,在1602-22中执行的操作中的一个或多个可以各种顺序和组合执行,包括并行执行。例如,执行过程1600的系统可以在允许请求者指定一组资源之前首先确定哪些资源是响应的,并且在这种情况下,1606-12的操作可被省略。
图17示出根据各种实施方案的用于实现各个方面的示例环境1700的各个方面。如应了解,尽管出于说明的目的使用基于web的环境,但在适合时可使用不同的环境来实现各种实施方案。环境包括电子客户端设备1702,其可包括可操作以通过适当的网络1704发送和/或接收请求、消息或信息的任何适当的设备,并且在一些实施方案中将信息传送回设备的用户。此类客户端设备的示例包括个人计算机、手机、手持式消息传递设备、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器及类似者。网络1704可包括任何适当的网络,包括内联网、互联网、蜂窝网络、局域网、卫星网络或任何其它网络和/或其组合。此类系统所用的部件可以至少部分取决于所选择的网络和/或环境的类型。用于通过这种网络进行通信的许多协议和部件是众所周知的,并且将不再详细论述。网络1704上的通信可通过有线或无线连接及其组合来实现。在这个示例中,网络1704包括互联网和/或其它可公开寻址的通信网络,因为环境包括用于接收请求并且响应于所述请求而提供内容的web服务器1706,但对于其它网络来说,可使用提供类似目的的替代设备,如本领域技术人员所明白的。
说明性环境包括应用服务器1708和数据存储区1710。应当理解,可以存在可以链接起来或以其它方式配置的若干应用服务器、层或其它元件、过程或部件,上述各项可交互来执行诸如从适合的数据存储区获取数据的任务。如所使用的服务器可以各种方式诸如硬件设备或虚拟计算机系统来实现。在一些上下文中,服务器可以是指在计算机系统上执行的编程模块。如所使用的,除非另有说明或从上下文中清楚,术语“数据存储区”是指能够存储、访问和检索数据的任何设备或设备组合,在任何标准的、分布式、虚拟或集群环境中,其可包括数据服务器、数据库、数据存储设备和数据存储介质的任何组合和任何数量。应用服务器1708可包括任何适当的硬件、软件和固件用于根据需要与数据存储区1710进行集成以执行用于电子客户端设备1702的一个或多个应用的各个方面、处理应用的一些或全部数据访问和业务逻辑。应用服务器1708可以与数据存储区1710协作来提供访问控制服务,并且能够生成包括可用于提供给用户的文本、图形、音频、视频和/或其它内容的内容,其可以是由web服务器1706以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、级联样式表(“CSS”)、JavaScript对象表示法(JSON)和/或其它适当的客户端侧结构化语言的形式向用户提供服务。传送到客户端设备的内容可以由电子客户端设备1702处理,以按一种或多种形式提供内容,包括用户可听见、可看见和/或通过其它感觉可感知的形式。所有请求和响应的处置以及电子客户端设备1702与应用服务器1708之间的内容递送可由web服务器1706使用以下各项来处置:PHP:超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML、JSON和/或在此示例中的另一适合的服务器侧结构化语言。另外,除非另外从上下文清楚,否则描述为通过单一设备执行的操作可通过多个设备共同地执行,所述多个设备可形成分布式和/或虚拟系统。
数据存储区1710可包括若干单独的数据表、数据库、数据文档、动态数据存储方案和/或其它数据存储机制以及用于存储涉及本公开的特定方面的数据的介质。例如,数据存储区1710可包括用于存储生产数据1712和用户信息1716的机构,所述生产数据和用户信息可用于为生产侧提供内容。数据存储区1710还被示出为包括用于存储日志数据1714的机构,所述日志数据可用于报告、分析或其它目的。应理解,可能存在可需要存储在数据存储区1710中的许多其它方面,诸如页图像信息和访问权信息,所述方面可视情况存储在上文列出的机构中的任何机构中或存储在数据存储区1710中的额外机构中。数据存储区1710可通过与其相关联的逻辑来操作,以便从应用服务器1708接收指令,并且响应于所述指令而获取、更新或以其它方式处理数据。应用服务器1708可响应于所接收指令而提供静态数据、动态数据或静态数据和动态数据的组合。动态数据(诸如web日志(博客)、购物应用、新闻服务以及其它应用中使用的数据)可由如所描述的服务器侧结构化语言生成,或者可由在应用服务器1708上操作或在其控制下的内容管理系统(“CMS”)提供。在一个示例中,用户通过由用户操作的设备可以提交针对特定类型的项目的搜索请求。在这种情况下,数据存储区1710可以访问用户信息1716以验证用户的身份,并且可以访问目录详细信息以获得关于所述类型的项目的信息。接着可将信息以诸如网页上的结果列表的形式返回给用户,用户能够通过电子客户端设备1702上的浏览器来查看所述网页。可在浏览器的专用页或窗口中查看到感兴趣的特定项目的信息。然而,应当注意,本公开的实施方案不必受限于网页的上下文,而是可能更通常适用于处理一般的请求,其中所述请求在内容上不是必需的请求。
每个服务器通常将包括提供用于所述服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行(即,由于执行)时允许服务器执行其预期的功能。
在一个实施方案中,环境是利用使用一个或多个计算机网络或直接连接通过通信链路互连的几个计算机系统和部件的分布式和/或虚拟计算环境。然而,本领域普通技术人员应理解,这种系统可在具有比图17所示的部件更少或更多部件的系统中同样顺利地操作。因此,图17中的示例性环境1700的描绘应被视为本质上是说明性的并且不限制本公开的范围。
另外,本公开的实施方案可鉴于以下条款来描述:
1.一种计算机实现的方法,其包括:
在执行指令的一个或多个计算机系统的控制下,
从由计算资源服务提供商提供的账户的管理员接收命令文档的第一选择,所述第一选择通过第一应用程序设计接口接收,所述命令文档包括:
用于对由所述计算资源服务提供商提供的虚拟机实例执行一个或多个操作的命令集;以及
参数集,所述参数集包括指定将执行所述一个或多个操作的虚拟机实例的参数;获得授予执行所述命令文档中包括的所述命令集的许可的策略;
作为从所述管理员接收将实体与所述策略相关联的请求的结果,致使所述计算资源服务提供商的策略管理服务将所述实体与所述策略相关联;
通过第二应用程序设计接口从所述实体接收所述命令文档的第二选择,所述第二选择指定所述参数集的至少一个值,所述至少一个值包括所述虚拟机实例的身份;
作为验证所述虚拟机实例能够根据所述策略代表所述实体执行所述命令集的结果,通过将所述命令集提供给在所述虚拟机实例上运行的软件代理来致使所述命令集在所述虚拟机实例处被执行;
接收来自所述软件代理的响应,所述响应指示所述命令集的执行状态;以及
向所述实体的接口提供所述状态。
2.如条款1所述的计算机实现的方法,其中验证所述虚拟机实例能够根据所述策略代表所述实体执行所述命令集包括:
利用所述策略管理服务验证所述实体与所述策略相关联;
利用所述策略管理服务验证所述实体有权访问由所述身份指示的所述虚拟机实例;以及
验证所述虚拟机实例是响应的。
3.如条款1或2所述的计算机实现的方法,其中:
所述计算机实现的方法还包括:作为确定所述虚拟机实例是无响应虚拟机实例的结果,以排队的命令集的形式将所述命令集存储在队列中;
验证所述虚拟机实例能够执行所述命令集包括确定所述无响应虚拟机实例已变得响应;以及
致使所述命令集被执行包括:
从所述队列中获得所述排队的命令集;以及
致使所述排队的命令集在所述虚拟机实例处执行。
4.如条款1-3中任一项所述的计算机实现的方法,其包括:
至少部分基于所述执行状态来更新所述虚拟机实例在数据库中的执行尝试日志;
从所述管理员接收第二请求以查看所述虚拟机实例的所述执行尝试日志;以及
响应于所述第二请求,向所述管理员的接口提供所述执行尝试日志,包括所述执行状态和尝试在所述虚拟机实例处执行命令的细节。
5.一种系统,其包括:
一个或多个处理器;
包括指令的存储器,作为由所述一个或多个处理器执行的结果,所述指令致使所述系统:
接收命令文档的选择,所述命令文档指定一个或多个操作和参数集,所述参数集指定至少一个资源;
将用户与授予所述用户执行所述命令文档的许可的策略相关联;
接收来自所述用户的执行请求,所述执行请求指示所述命令文档和与所述参数集相关联的一组参数值;
验证所述至少一个资源能够代表所述用户执行所述一个或多个操作;以及
致使尝试根据所述参数集对所述至少一个资源执行所述命令文档的所述一个或多个操作。
6.如条款5所述的系统,其中所述指令还包括致使所述系统进行以下操作的指令:
接收终止请求,其中所述终止请求指定所述命令文档;
确定所述一个或多个操作的执行状态是否指示所述命令文档正在对所述至少一个资源执行;
至少部分取决于所述确定,向所述至少一个资源的至少一个软件代理提交取消请求;以及
更新所述一个或多个操作的所述执行状态。
7.如条款5或6所述的系统,其中致使所述系统验证所述至少一个资源能够执行所述一个或多个操作的所述指令包括致使所述系统进行以下操作的指令:
验证所述至少一个资源是响应的;以及
验证所述用户有权访问以对所述至少一个资源执行所述一个或多个操作。
8.如条款5-7中任一项所述的系统,其中所述指令还包括致使所述系统进行以下操作的指令:
将所述一个或多个操作的执行状态存储在针对所述至少一个资源的永久性存储设备中的执行尝试日志中;
从请求者接收请求以查看针对所述至少一个资源的所述执行尝试日志;以及
响应于所述请求,向所述请求者的接口提供所述执行尝试日志,包括所述执行状态和尝试对所述至少一个资源执行操作的细节。
9.如条款8所述的系统,其中所述指令还包括致使所述系统启动清扫机应用的指令,所述清扫机应用从所述永久性存储设备移除超过阈值年限的执行状态。
10.一种上面存储有可执行指令的非暂时性计算机可读存储介质,作为通过计算机系统的一个或多个处理器执行的结果,所述指令致使所述计算机系统至少:
接收文档的选择,所述文档包括命令和参数;
致使用户与授予执行所述文档的许可的策略相关联;
从请求者接收请求以执行所述文档,所述请求包括参数值;
确定所述请求者是与所述策略相关联的所述用户;
验证所述用户有权访问由所述参数值指示的资源;以及
致使针对所述资源执行所述命令。
11.如条款10所述的非暂时性计算机可读存储介质,其中致使针对所述资源执行所述命令的所述可执行指令包括致使所述计算机系统进行以下操作的指令:
将所述命令提供给在所述资源处运行的软件代理;以及
从所述软件代理接收指示执行所述命令的状态的响应。
12.如条款10或11所述的非暂时性计算机可读存储介质,其中:
所述可执行指令还包括以下可执行指令:作为确定所述资源是无响应资源的结果,致使所述计算机系统以排队命令的形式将所述命令存储在队列中;以及
致使针对所述资源执行所述命令的所述可执行指令包括以下可执行指令:作为确定所述无响应资源已变得响应的结果,致使所述计算机系统:
从所述队列中获得所述排队的命令;以及
致使针对所述资源执行所述排队的命令。
13.如条款12所述的非暂时性计算机可读存储介质,其中致使所述计算机系统确定所述资源是无响应资源的所述可执行指令包括致使所述计算机系统执行以下操作的可执行指令:
对照超时阈值,比较自所述排队命令最初被排队以来的持续时间;以及
至少部分取决于所述持续时间是否达到相对于所述超时阈值的值:
从所述队列中清除所述排队的命令;以及
更新所述排队的命令的状态以指示所述排队的命令被取消。
14.如条款12所述的非暂时性计算机可读存储介质,其中致使所述计算机系统将所述命令存储在队列中的所述可执行指令还包括以下可执行指令:致使所述计算机系统至少部分取决于确定所述队列中的命令的数量不超过预定限制而将所述命令存储在所述队列中。
15.如条款14所述的非暂时性计算机可读存储介质,其中:
所述资源与由计算资源服务提供商提供给客户的账户相关联;以及
所述预定限制取决于由所述计算资源服务提供商提供的所述账户的类型。
各种实施方案可进一步在广泛范围的操作环境中实现,在一些情况下,所述环境可包括可用于操作多个应用中的任一个的一个或多个用户计算机、计算设备或处理设备。用户或客户端设备可包括多个计算机中的任一个,诸如运行标准操作系统的台式计算机、膝上型计算机或平板计算机,以及运行移动软件并且能够支持多个网络连接协议和消息传递协议的蜂窝式设备、无线设备和手持设备。这种系统还可包括多个工作站,所述工作站运行各种可商购得的操作系统以及用于诸如开发和数据库管理等目的的其它已知应用中的任一个。这些设备还可包括其它电子设备,诸如虚拟终端、瘦客户端、游戏系统和能够通过网络通信的其它设备。这些设备还可包括虚拟设备,诸如虚拟机、管理程序以及能够通过网络通信的其它虚拟设备。
本公开的各种实施方案利用本领域技术人员熟悉的用于支持使用各种可商购得协议中的任何一种通信的网络,所述协议诸如传输控制协议/互联网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各个层中操作的协议、文件传输协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公共互联网文件系统(“CIFS”)和AppleTalk。所述网络1704可以是例如局域网、广域网、虚拟专用网、互联网、内联网、外联网、公共交换电话网、红外网络、无线网络、卫星网络及其任何组合。在一些实施方案中,面向连接的协议可以用于在网络端点之间进行通信。面向连接的协议(有时称为基于连接的协议)能够以有序流的形式传输数据。面向连接的协议可以是可靠的或不可靠的。例如,TCP协议是可靠的面向连接的协议。异步传输模式(“ATM”)和帧中继是不可靠的面向连接的协议。面向连接的协议与面向分组的协议(诸如UDP)不同,UDP在没有保证排序的情况下传输分组。
在利用web服务器的实施方案中,web服务器可以运行各种服务器或中间层应用中的任何一种,包括超文本传输协议(“HTTP”)服务器、FTP服务器、公共网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器和商业应用服务器。所述服务器还可以能够响应于来自用户设备的请求而执行程序或脚本,诸如通过执行可实现为以任何编程语言(诸如C、C#或C++)或任何脚本语言(诸如Ruby、PHP、Perl、Python或TCL)及其组合撰写的一个或多个脚本或程序的一个或多个web应用。服务器还可包括数据库服务器,包括可商购自及的服务器,以及开源服务器,诸如MySQL、Postgres、SQLite、MongoDB,以及能够存储、检索以及访问结构化或非结构化数据的任何其它服务器。数据库服务器可包括基于表的服务器、基于文档的服务器、非结构化服务器、关系服务器、非关系服务器或者这些和/或其它数据库服务器的组合。
所述环境可包括各种数据存储区和其它存储器和存储介质,如上文所论述。这些可驻留在各种位置中,诸如在一个或多个计算机本地(和/或驻留在一个或多个计算机中)的存储介质上,或远离网络1704上的计算机中的任何或所有计算机的存储介质上。在一组特定实施方案中,信息可以驻留在本领域技术人员熟悉的存储区域网络(“SAN”)中。类似地,视情况,用于执行归因于计算机、服务器或其它网络设备的功能的任何必要文件可以在本地和/或远程存储。在系统包括计算机化设备的情况下,每一个这种设备可包括可通过总线电耦合的硬件元件,所述元件包括例如中央处理单元(“CPU”或“处理器”)、输入设备(例如,鼠标、键盘、控制器、触摸屏或小键盘)和输出设备(例如,显示设备、打印机或扬声器)。这样的系统还可包括一个或多个存储设备,诸如磁盘驱动器、光存储设备和固态存储设备诸如随机存取存储器(“RAM”)或只读存储器(“ROM”),以及可移除介质设备、存储卡、闪存卡等。
这些设备还可包括计算机可读存储介质读取器、通信设备(例如,调制解调器、网卡(无线或有线)、红外线通信设备等等)和如上所述的工作存储器。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置来接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移除存储设备以及用于临时和/或更永久地含有、存储、传输和检索计算机可读信息的存储介质。系统和各种设备通常还将包括位于工作存储器设备内的多个软件应用、模块、服务或其它元件,包括操作系统和应用程序,诸如客户端应用或web浏览器。另外,也可使用定制硬件,和/或特定元件可以在硬件、软件(包括可移植软件,诸如小应用)或此两者中实现。此外,可以采用与如网络输入/输出设备的其它计算设备的连接。
用于含有代码或代码部分的存储介质和计算机可读介质可包括本领域已知或使用的任何适当介质,包括存储介质和通信介质,诸如以用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术所实现的易失性和非易失性、可移除和不可移除的介质,包括RAM、ROM、电可擦可编程只读存储器(“EEPROM”)、闪存存储器或其它存储器技术、只读光盘存储器(“CD-ROM”)、数字通用光盘(DVD)或其它光学存储设备、磁盒、磁带、磁盘存储设备或其它磁性存储设备,或可用于存储所需信息且可由系统设备访问的任何其它介质。基于所提供的公开内容和教示,本技术领域普通技术人员将了解实现各个实施方案的其它方式和/或方法。
因此,说明书和附图被认为是说明性的而不是限制性的意义。然而,很明显的是,在不脱离如在权利要求书中阐述的本发明的较宽泛的精神和范围的情况下可对其做出各种修改和改变。
其它变化在本公开的精神内。因此,虽然所述技术可容许各种修改和替代性构造,但在附图中已示出并且已在上文中详细描述了所示的其特定实施方案。然而,应理解,并非意图将本发明限于所公开的一种或多种具体形式,相反,本发明将涵盖落在如在随附权利要求书中定义的本发明精神和范围内的所有修改、替代性构造和等效物。
在描述实施方案(特别是在所附权利要求书的上下文中)的上下文中使用术语“一(a/an)”和“所述”以及类似的指示物应被解释为涵盖单数和复数两者,除非另有说明或与上下文明显矛盾。术语“包括(comprising/including)”、“具有”和“含有”应解释为开放式术语(即,意味着“包括但不限于”),除非另有注解。术语“连接”在未经修改且涉及物理连接的情况下,即使存在某些介入,也应被解释为部分或全部含有在内、附接或连接在一起。对值范围的描述仅旨在用作单独地指代落在所述范围内的每个单独值的速记方法,除非本文另有说明,并且将每个单独的值都并入本说明书中,如同在本文中单独列举一样。除非另有说明或与上下文相矛盾,否则术语“集”(例如,“项目集”)或“子集”的使用应被解释为包括一个或多个成员的非空集合。此外,除非另有说明或上下文相矛盾,否则对应集的术语“子集”不一定表示对应集的真子集,而是所述子集和对应集可能是相等的。
连接性语言,例如形式为“A、B和C中的至少一个”或“A、B和C中的至少一个”的短语,除非另有明确说明或以其它方式明确与上下文相矛盾,否则可以理解为一般用于的上下文以呈现项目、项等可以是A或B或C,或者A和B和C的集的任何非空子集。例如,在具有三个成员的集的说明性示例中,连接性短语“A、B和C中的至少一个”和“A、B和C中的至少一个”是指以下集中的任一个:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,此类连接性语言一般并非意在暗示某些实施方案需要A中的至少一个、B中的至少一个以及C中的至少一个每个存在。
所描述过程的操作可以任何合适的顺序执行,除非另有说明或者与上下文明显矛盾。所描述过程(或其变体和/或其组合)可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实现为在一个或多个处理器上共同地执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、通过硬件或它们的组合实现。代码可以例如以包括可由一个或多个处理器执行的指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质可以是非暂时性的。在一些实施方案中,代码被存储在其上存储有可执行指令的一个或多个非暂时性计算机可读存储介质的集合上,所述可执行指令在被计算机系统的一个或多个处理器执行时(即,作为被执行的结果)致使计算机系统执行本文所述的操作。非暂时性计算机可读存储介质的集合可包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的个别非暂时性存储介质中的一个或多个可以缺少所有代码而多个非暂时性计算机可读存储介质共同地存储所有代码。此外,在一些示例中,可执行指令被执行以使得不同的指令由不同的处理器执行。作为说明性示例,非暂时性计算机可读存储介质可以存储指令。主CPU可以执行指令中的一些,并且图形处理器单元可以执行指令中的其它指令。通常,计算机系统的不同部件可以具有单独的处理器,并且不同的处理器可以执行指令的不同子集。
因此,在一些示例中,计算机系统被配置为实现单个地或共同地执行本文所述过程的操作的一个或多个服务。这样的计算机系统可以例如配置有能够执行操作的适用硬件和/或软件。此外,在一些示例中,实现本公开的各种实施方案的计算机系统可以是单个设备,并且在其它示例中,所述计算机系统是包括多个设备的分布式计算机系统,所述多个设备以不同方式操作,使得分布式计算机系统执行所描述的操作并且使得单个设备可能无法执行所有操作。
所提供的任何示例或示例性语言(例如,“如”)的使用仅意在更好地说明本发明的实施方案,并且除非另外要求,否则不会对本发明的范围施加限制。本说明书中的语言不应解释为将任何非要求的要素指示为实践本发明所必需的。
描述了本公开的实施方案,包括发明人已知的用于实施本发明的最佳模式。在阅读前面的描述后,所属领域普通技术人员可明了那些实施方案的变化。本发明人期望本领域技术人员视情况采用这样的变化,并且发明人旨在以不同于具体描述的方式实施本公开的实施方案。因此,本公开的范围包括如适用法律所允许的在随附权利要求书中叙述的主题的所有修改和等效物。此外,除非本文另外指示或以其它形式明显地与上下文矛盾,否则本公开的范围涵盖其全部可能变化形式中的上述元素的任何组合。
所引用的包括公布、专利申请和专利的所有参考文献借此均以引用方式并入,如同每份参考文献单独地且明确地指示为以引用方式并入且其全部内容都被陈述。
Claims (15)
1.一种计算机实现的方法,其包括:
在执行指令的一个或多个计算机系统的控制下,
从由计算资源服务提供商提供的账户的管理员接收命令文档的第一选择,所述第一选择通过第一应用程序设计接口接收,所述命令文档包括:
用于对由所述计算资源服务提供商提供的虚拟机实例执行一个或多个操作的命令集;以及
参数集,所述参数集包括指定将执行所述一个或多个操作的虚拟机实例的参数;
获得授予执行所述命令文档中包括的所述命令集的许可的策略;
作为从所述管理员接收将实体与所述策略相关联的请求的结果,致使所述计算资源服务提供商的策略管理服务将所述实体与所述策略相关联;
通过第二应用程序设计接口从所述实体接收所述命令文档的第二选择,所述第二选择指定所述参数集的至少一个值,所述至少一个值包括所述虚拟机实例的身份;
作为验证所述虚拟机实例能够根据所述策略代表所述实体执行所述命令集的结果,通过将所述命令集提供给在所述虚拟机实例上运行的软件代理来致使所述命令集在所述虚拟机实例处被执行;
接收来自所述软件代理的响应,所述响应指示所述命令集的执行状态;以及
向所述实体的接口提供所述状态。
2.根据权利要求1所述的计算机实现的方法,其中验证所述虚拟机实例能够根据所述策略代表所述实体执行所述命令集包括:
利用所述策略管理服务验证所述实体与所述策略相关联;
利用所述策略管理服务验证所述实体有权访问由所述身份指示的所述虚拟机实例;以及
验证所述虚拟机实例是响应的。
3.根据权利要求1所述的计算机实现的方法,其中:
所述计算机实现的方法还包括:作为确定所述虚拟机实例是无响应虚拟机实例的结果,以排队的命令集的形式将所述命令集存储在队列中;
验证所述虚拟机实例能够执行所述命令集包括确定所述无响应虚拟机实例已变得响应;以及
致使所述命令集被执行包括:
从所述队列中获得所述排队的命令集;以及
致使所述排队的命令集在所述虚拟机实例处执行。
4.根据权利要求1所述的计算机实现的方法,其还包括:
至少部分基于所述执行状态来更新所述虚拟机实例在数据库中的执行尝试日志;
从所述管理员接收第二请求以查看所述虚拟机实例的所述执行尝试日志;以及
响应于所述第二请求,向所述管理员的接口提供所述执行尝试日志,包括所述执行状态和尝试在所述虚拟机实例处执行命令的细节。
5.一种计算机系统,其包括:
一个或多个处理器;
包括指令的存储器,作为由所述一个或多个处理器执行的结果,所述指令致使所述计算机系统:
接收命令文档的选择,所述命令文档指定一个或多个操作和参数集,所述参数集指定至少一个资源;
将用户与授予所述用户执行所述命令文档的许可的策略相关联;
接收来自所述用户的执行请求,所述执行请求指示所述命令文档和与所述参数集相关联的一组参数值;
验证所述至少一个资源能够代表所述用户执行所述一个或多个操作;以及
致使尝试根据所述参数集对所述至少一个资源执行所述命令文档的所述一个或多个操作。
6.根据权利要求5所述的计算机系统,其中所述指令还包括致使所述计算机系统进行以下操作的指令:
接收终止请求,其中所述终止请求指定所述命令文档;
确定所述一个或多个操作的执行状态是否指示所述命令文档正在对所述至少一个资源执行;
至少部分取决于所述确定,向所述至少一个资源的至少一个软件代理提交取消请求;以及
更新所述一个或多个操作的所述执行状态。
7.根据权利要求5所述的计算机系统,其中致使所述计算机系统验证所述至少一个资源能够执行所述一个或多个操作的所述指令包括致使所述计算机系统进行以下操作的指令:
验证所述至少一个资源是响应的;以及
验证所述用户有权访问以对所述至少一个资源执行所述一个或多个操作。
8.根据权利要求5所述的计算机系统,其中所述指令还包括致使所述计算机系统进行以下操作的指令:
将所述一个或多个操作的执行状态存储在针对所述至少一个资源的永久性存储设备中的执行尝试日志中;
从请求者接收请求以查看针对所述至少一个资源的所述执行尝试日志;以及
响应于所述请求,向所述请求者的接口提供所述执行尝试日志,包括所述执行状态和尝试对所述至少一个资源执行操作的细节。
9.根据权利要求8所述的计算机系统,其中所述指令还包括致使所述计算机系统启动清扫机应用的指令,所述清扫机应用从所述永久性存储设备中移除超过阈值年限的执行状态。
10.一种上面存储有可执行指令的非暂时性计算机可读存储介质,作为通过计算机系统的一个或多个处理器执行的结果,所述指令致使所述计算机系统至少:
接收文档的选择,所述文档包括命令和参数;
致使用户与授予执行所述文档的许可的策略相关联;
从请求者接收请求以执行所述文档,所述请求包括参数值;
确定所述请求者是与所述策略相关联的所述用户;
验证所述用户有权访问由所述参数值指示的资源;以及
致使针对所述资源执行所述命令。
11.根据权利要求10所述的非暂时性计算机可读存储介质,其中致使所述命令针对所述资源被执行的所述可执行指令包括致使所述计算机系统进行以下操作的指令:
将所述命令提供给在所述资源处运行的软件代理;以及
从所述软件代理接收指示执行所述命令的状态的响应。
12.根据权利要求10所述的非暂时性计算机可读存储介质,其中:
所述可执行指令还包括以下可执行指令:作为确定所述资源是无响应资源的结果,致使所述计算机系统以排队命令的形式将所述命令存储在队列中;以及
致使针对所述资源执行所述命令的所述可执行指令包括以下可执行指令:作为确定所述无响应资源已变得响应的结果,致使所述计算机系统:
从所述队列中获得所述排队的命令;以及
致使针对所述资源执行所述排队的命令。
13.根据权利要求12所述的非暂时性计算机可读存储介质,其中致使所述计算机系统确定所述资源是无响应资源的所述可执行指令包括致使所述计算机系统进行以下操作的可执行指令:
对照超时阈值,比较自所述排队命令最初被排队以来的持续时间;以及
至少部分取决于所述持续时间是否达到相对于所述超时阈值的值:
从所述队列中清除所述排队的命令;以及
更新所述排队的命令的状态以指示所述排队的命令被取消。
14.根据权利要求12所述的非暂时性计算机可读存储介质,其中致使所述计算机系统将所述命令存储在队列中的所述可执行指令还包括以下可执行指令:致使所述计算机系统至少部分取决于确定所述队列中的命令的数量不超过预定限制而将所述命令存储在所述队列中。
15.根据权利要求14所述的非暂时性计算机可读存储介质,其中:
所述资源与由计算资源服务提供商提供给客户的账户相关联;以及
所述预定限制取决于由所述计算资源服务提供商提供的所述账户的类型。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562246537P | 2015-10-26 | 2015-10-26 | |
US62/246,537 | 2015-10-26 | ||
US14/975,376 US9794292B2 (en) | 2015-10-26 | 2015-12-18 | Providing fine-grained access remote command execution for virtual machine instances in a distributed computing environment |
US14/975,376 | 2015-12-18 | ||
PCT/US2016/058860 WO2017075051A1 (en) | 2015-10-26 | 2016-10-26 | Providing fine-grained access remote command execution for virtual machine instances in a distributed computing environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108292349A CN108292349A (zh) | 2018-07-17 |
CN108292349B true CN108292349B (zh) | 2021-10-08 |
Family
ID=58562144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680062070.7A Active CN108292349B (zh) | 2015-10-26 | 2016-10-26 | 在分布式计算环境中提供虚拟机实例的细粒度访问远程命令执行 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9794292B2 (zh) |
CN (1) | CN108292349B (zh) |
DE (1) | DE112016004896T5 (zh) |
WO (1) | WO2017075051A1 (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7840653B1 (en) * | 2007-10-25 | 2010-11-23 | United Services Automobile Association (Usaa) | Enhanced throttle management system |
US10200501B1 (en) * | 2015-12-16 | 2019-02-05 | Amazon Technologies, Inc. | Program code allocation based on processor features |
US10691501B1 (en) * | 2016-10-25 | 2020-06-23 | Amazon Technologies, Inc. | Command invocations for target computing resources |
US10996997B2 (en) * | 2017-01-23 | 2021-05-04 | International Business Machines Corporation | API-based service command invocation |
US10699003B2 (en) | 2017-01-23 | 2020-06-30 | Hysolate Ltd. | Virtual air-gapped endpoint, and methods thereof |
US11153322B2 (en) | 2017-01-23 | 2021-10-19 | Hysolate Ltd. | Techniques for seamlessly launching applications in appropriate virtual machines |
US11150936B2 (en) * | 2017-01-23 | 2021-10-19 | Hysolate Ltd. | Techniques for binding user identities to appropriate virtual machines with single sign-on |
US11010352B2 (en) | 2017-01-23 | 2021-05-18 | Hysolate Ltd. | Unified file system on air-gapped endpoints |
US10728181B2 (en) * | 2017-03-27 | 2020-07-28 | Dell Products, L.P. | Advanced message queuing protocol (AMQP) message broker and messaging client interactions via dynamic programming commands using message properties |
US10678574B1 (en) * | 2017-11-01 | 2020-06-09 | Amazon Technologies, Inc. | Reconfiguration rate-control |
US10701000B1 (en) | 2017-11-30 | 2020-06-30 | Open Invention Network Llc | VNFM assisted fault handling in virtual network function components |
CN108306941A (zh) * | 2018-01-05 | 2018-07-20 | 上海你我贷互联网金融信息服务有限公司 | 一种分布式消息系统 |
CN108270668B (zh) * | 2018-01-31 | 2021-02-02 | 北京工业大学 | 一种基于消息队列的iSIGHT模型文件管理系统 |
US10785291B2 (en) | 2018-05-09 | 2020-09-22 | Bank Of America Corporation | Executing ad-hoc commands on-demand in a public cloud environment absent use of a command line interface |
WO2020005764A1 (en) * | 2018-06-25 | 2020-01-02 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US11102214B2 (en) * | 2018-08-27 | 2021-08-24 | Amazon Technologies, Inc. | Directory access sharing across web services accounts |
CN109639761A (zh) * | 2018-11-02 | 2019-04-16 | 深圳竹云科技有限公司 | 一种通过安全协议远程管理Windows的方法 |
JP6951375B2 (ja) * | 2019-03-11 | 2021-10-20 | 株式会社東芝 | 情報処理装置、情報処理方法及びプログラム |
JP7063844B2 (ja) * | 2019-04-26 | 2022-05-09 | ファナック株式会社 | ロボット教示装置 |
CN110971480B (zh) * | 2019-10-18 | 2022-08-19 | 平安科技(深圳)有限公司 | 计算机网络状况监控方法、装置、计算机设备及存储介质 |
US11354402B2 (en) * | 2019-11-01 | 2022-06-07 | Microsoft Technology Licensing, Llc | Virtual environment type validation for policy enforcement |
CN111399982A (zh) * | 2020-03-17 | 2020-07-10 | 中国建设银行股份有限公司 | 一种支持多环境的命令远程执行装置及方法 |
CN111628915B (zh) * | 2020-07-16 | 2022-03-25 | 安徽华速达电子科技有限公司 | 网关设备的网络连接状态实时监控管理方法及系统 |
CN112083997A (zh) * | 2020-09-25 | 2020-12-15 | 中国建设银行股份有限公司 | 服务通道的启停控制方法、管理方法及装置 |
WO2022068796A1 (zh) * | 2020-09-30 | 2022-04-07 | 华为云计算技术有限公司 | 云平台及基于云平台的程序代码处理方法 |
US11693703B2 (en) | 2020-12-09 | 2023-07-04 | Dell Products L.P. | Monitoring resource utilization via intercepting bare metal communications between resources |
US11928515B2 (en) | 2020-12-09 | 2024-03-12 | Dell Products L.P. | System and method for managing resource allocations in composed systems |
US11675665B2 (en) | 2020-12-09 | 2023-06-13 | Dell Products L.P. | System and method for backup generation using composed systems |
US11604595B2 (en) | 2020-12-09 | 2023-03-14 | Dell Products L.P. | Data mirroring and data migration between storage volumes using system control processors |
US11435814B2 (en) | 2020-12-09 | 2022-09-06 | Dell Produts L.P. | System and method for identifying resources of a composed system |
US11809911B2 (en) | 2020-12-09 | 2023-11-07 | Dell Products L.P. | Resuming workload execution in composed information handling system |
US11675625B2 (en) | 2020-12-09 | 2023-06-13 | Dell Products L.P. | Thin provisioning of resources using SCPS and a bidding system |
US11704159B2 (en) | 2020-12-09 | 2023-07-18 | Dell Products L.P. | System and method for unified infrastructure architecture |
US11853782B2 (en) | 2020-12-09 | 2023-12-26 | Dell Products L.P. | Method and system for composing systems using resource sets |
US11809912B2 (en) | 2020-12-09 | 2023-11-07 | Dell Products L.P. | System and method for allocating resources to perform workloads |
US11698821B2 (en) | 2020-12-09 | 2023-07-11 | Dell Products L.P. | Composable information handling systems in an open network using access control managers |
US11934875B2 (en) | 2020-12-09 | 2024-03-19 | Dell Products L.P. | Method and system for maintaining composed systems |
US11768612B2 (en) | 2021-01-28 | 2023-09-26 | Dell Products L.P. | System and method for distributed deduplication in a composed system |
US11675916B2 (en) | 2021-01-28 | 2023-06-13 | Dell Products L.P. | Method and system for limiting data accessibility in composed systems |
US11797341B2 (en) | 2021-01-28 | 2023-10-24 | Dell Products L.P. | System and method for performing remediation action during operation analysis |
US11687280B2 (en) | 2021-01-28 | 2023-06-27 | Dell Products L.P. | Method and system for efficient servicing of storage access requests |
US11947697B2 (en) | 2021-07-22 | 2024-04-02 | Dell Products L.P. | Method and system to place resources in a known state to be used in a composed information handling system |
US12026557B2 (en) | 2021-07-22 | 2024-07-02 | Dell Products L.P. | Method and system for a utilizing a proxy service to generate a composed information handling system |
US12013768B2 (en) | 2021-07-22 | 2024-06-18 | Dell Products L.P. | Method and system for automated healing of hardware resources in a composed information handling system |
US12008412B2 (en) | 2021-07-28 | 2024-06-11 | Dell Products | Resource selection for complex solutions |
US11928506B2 (en) | 2021-07-28 | 2024-03-12 | Dell Products L.P. | Managing composition service entities with complex networks |
US11876875B2 (en) * | 2021-10-08 | 2024-01-16 | Oracle International Corporation | Scalable fine-grained resource count metrics for cloud-based data catalog service |
US20230153031A1 (en) * | 2021-11-16 | 2023-05-18 | Samsung Electronics Co., Ltd. | Storage device supporting multi-host and operation method thereof |
US11625339B1 (en) | 2022-01-21 | 2023-04-11 | Rapid7, Inc. | Large scale responsive and generic endpoint command invocation mechanism |
CN117435201A (zh) * | 2022-07-13 | 2024-01-23 | 华为云计算技术有限公司 | 分布式服务生成方法、系统、计算设备及存储介质 |
CN117290257B (zh) * | 2023-11-27 | 2024-02-02 | 天津丈八网络安全科技有限公司 | 一种基于插件调用的软件生命周期规范化管理方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8862517B2 (en) * | 2001-05-31 | 2014-10-14 | Contentguard Holdings, Inc. | Digital rights management of content when content is a future live event |
CN105760773A (zh) * | 2015-07-06 | 2016-07-13 | 卡巴斯基实验室股份制公司 | 通过易受攻击的应用控制打开文件的系统和方法 |
CN105830389A (zh) * | 2013-11-11 | 2016-08-03 | 亚马逊技术有限公司 | 用于访问多个计算资源服务的单组证书 |
CN108702393A (zh) * | 2015-12-30 | 2018-10-23 | 亚马逊科技有限公司 | 服务授权握手 |
US20200293514A1 (en) * | 2019-03-12 | 2020-09-17 | International Business Machines Corporation | Managing access by third parties to data in a network |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620984B2 (en) * | 2004-10-06 | 2009-11-17 | Hewlett-Packard Development Company, L.P. | Method of managing computer system |
US9274821B2 (en) * | 2010-01-27 | 2016-03-01 | Vmware, Inc. | Independent access to virtual machine desktop content |
US8892580B2 (en) * | 2010-11-03 | 2014-11-18 | Microsoft Corporation | Transformation of regular expressions |
US20120151209A1 (en) * | 2010-12-09 | 2012-06-14 | Bae Systems National Security Solutions Inc. | Multilevel security server framework |
US9141410B2 (en) * | 2011-03-08 | 2015-09-22 | Rackspace Us, Inc. | Pluggable allocation in a cloud computing system |
US8769519B2 (en) * | 2011-12-08 | 2014-07-01 | Microsoft Corporation | Personal and pooled virtual machine update |
US9563480B2 (en) * | 2012-08-21 | 2017-02-07 | Rackspace Us, Inc. | Multi-level cloud computing system |
US10063380B2 (en) * | 2013-01-22 | 2018-08-28 | Amazon Technologies, Inc. | Secure interface for invoking privileged operations |
US9313188B2 (en) * | 2013-06-14 | 2016-04-12 | Microsoft Technology Licensing, Llc | Providing domain-joined remote applications in a cloud environment |
US9124569B2 (en) * | 2013-06-14 | 2015-09-01 | Microsoft Technology Licensing, Llc | User authentication in a cloud environment |
US9516028B1 (en) * | 2014-08-06 | 2016-12-06 | Amazon Technologies, Inc. | Hierarchical policy-based shared resource access control |
US20160344671A1 (en) * | 2015-05-19 | 2016-11-24 | Amazon Technologies, Inc. | Executing commands on virtual machine instances in a distributed computing environment |
-
2015
- 2015-12-18 US US14/975,376 patent/US9794292B2/en active Active
-
2016
- 2016-10-26 WO PCT/US2016/058860 patent/WO2017075051A1/en active Application Filing
- 2016-10-26 CN CN201680062070.7A patent/CN108292349B/zh active Active
- 2016-10-26 DE DE112016004896.3T patent/DE112016004896T5/de active Pending
-
2017
- 2017-10-16 US US15/785,314 patent/US10609080B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8862517B2 (en) * | 2001-05-31 | 2014-10-14 | Contentguard Holdings, Inc. | Digital rights management of content when content is a future live event |
CN105830389A (zh) * | 2013-11-11 | 2016-08-03 | 亚马逊技术有限公司 | 用于访问多个计算资源服务的单组证书 |
CN105760773A (zh) * | 2015-07-06 | 2016-07-13 | 卡巴斯基实验室股份制公司 | 通过易受攻击的应用控制打开文件的系统和方法 |
CN108702393A (zh) * | 2015-12-30 | 2018-10-23 | 亚马逊科技有限公司 | 服务授权握手 |
US20200293514A1 (en) * | 2019-03-12 | 2020-09-17 | International Business Machines Corporation | Managing access by third parties to data in a network |
Also Published As
Publication number | Publication date |
---|---|
US9794292B2 (en) | 2017-10-17 |
DE112016004896T5 (de) | 2018-07-12 |
US10609080B2 (en) | 2020-03-31 |
WO2017075051A1 (en) | 2017-05-04 |
US20170118247A1 (en) | 2017-04-27 |
CN108292349A (zh) | 2018-07-17 |
US20180103066A1 (en) | 2018-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292349B (zh) | 在分布式计算环境中提供虚拟机实例的细粒度访问远程命令执行 | |
US11075913B1 (en) | Enforceable launch configurations | |
US10382449B2 (en) | Permissions decisions in a service provider environment | |
US10454975B1 (en) | Conditional comptuing resource policies | |
US11159554B2 (en) | Correlating threat information across sources of distributed computing systems | |
US20190245862A1 (en) | Provisional computing resource policy evaluation | |
US10375177B1 (en) | Identity mapping for federated user authentication | |
US20160219081A1 (en) | Policy approval layer | |
US12028461B2 (en) | Contribution signatures for tagging | |
US20220294788A1 (en) | Customizing authentication and handling pre and post authentication in identity cloud service | |
US9582776B2 (en) | Methods and systems for providing a comprehensive view of it assets as self service inquiry/update transactions | |
US10178119B1 (en) | Correlating threat information across multiple levels of distributed computing systems | |
US10523716B1 (en) | Immutable accounts | |
US9778952B1 (en) | Migration of computer system images through a customer interface | |
US10778664B1 (en) | Software asset management of computer systems and virtual instances for reporting and optimization | |
US10715507B1 (en) | Privilege revocation for client devices | |
US11693678B1 (en) | Reconfiguration rate-control | |
US9313208B1 (en) | Managing restricted access resources | |
US11360951B1 (en) | Database migration systems and methods | |
US10705945B1 (en) | Computing system testing service | |
US11711360B2 (en) | Expedited authorization and access management | |
US11467868B1 (en) | Service relationship orchestration service | |
US10320922B1 (en) | Inventory manager for distributed systems | |
US9178867B1 (en) | Interacting with restricted environments | |
US20240078164A1 (en) | Techniques for managing software agent health |
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 |