CN116018580B - 用于跨云壳层的实例持久化数据的技术 - Google Patents

用于跨云壳层的实例持久化数据的技术 Download PDF

Info

Publication number
CN116018580B
CN116018580B CN202180055623.7A CN202180055623A CN116018580B CN 116018580 B CN116018580 B CN 116018580B CN 202180055623 A CN202180055623 A CN 202180055623A CN 116018580 B CN116018580 B CN 116018580B
Authority
CN
China
Prior art keywords
volume
instance
block
block volume
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.)
Active
Application number
CN202180055623.7A
Other languages
English (en)
Other versions
CN116018580A (zh
Inventor
C·S·卡索
P·G·加瓦瑞斯
L·K·施内德
A·H·康
J·J·辛德
S-C·陈
D·K·萨咖
M·W·吉尔博德
J·威尔斯
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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
Priority claimed from US16/993,973 external-priority patent/US11374792B2/en
Priority claimed from US16/993,970 external-priority patent/US11368306B2/en
Priority claimed from US17/078,835 external-priority patent/US11327673B1/en
Application filed by Oracle International Corp filed Critical Oracle International Corp
Priority to CN202311768998.5A priority Critical patent/CN117931515A/zh
Publication of CN116018580A publication Critical patent/CN116018580A/zh
Application granted granted Critical
Publication of CN116018580B publication Critical patent/CN116018580B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了用于跨安全壳层实例持久化用户数据的技术。所述技术包括一种方法,其中计算机系统接收预留块卷的请求,该请求是从会话管理器服务接收的。该方法还包括预留块卷,识别块卷的数据中心标识符,将块卷的数据中心标识符返回给会话管理器服务,将块卷附加到卷管理队机器,接收来自会话管理器服务的释放块卷的指令,创建包括存储在块卷中的数据的块卷的备份,以及释放块卷。

Description

用于跨云壳层的实例持久化数据的技术
相关申请的交叉引用
本申请要求2020年10月23日提交的标题为“TECHNIQUESFOR PERSISTING DATAACROSS INSTANCES OF A CLOUDSHELL”的美国非临时申请No.17/078,835、2020年8月14日提交的标题为“TECHNIQUES FOR UTILIZING MULTIPLE NETWORKINTERFACES FOR A CLOUDSHELL”的美国非临时申请No.16/993,973以及2020年8月14日提交的标题为“TECHNIQUESFOR USING SIGNED NONCES TO SECURE CLOUD SHELLS”的美国非临时申请号No.16/993,970的优先权权益,这些文献的公开内容通过引用整体并入,用于所有目的。
背景技术
基于云的平台为用户提供可扩展且灵活的计算资源。此类基于云的平台,也称为基础设施即服务(IaaS),可以围绕客户的数据提供整套云解决方案,例如,用于创作变换、加载数据和呈现数据的解决方案。IaaS系统可以实现安全性协议以防止未经授权访问用户数据。
发明内容
跨云壳层(Cloud Shell)的实例持久化数据的技术
提供了使用恢复的块卷(block volume)和在会话之间终止实例以用于跨安全壳层实例持久化用户数据技术(例如,方法、系统、存储可由一个或多个处理器执行的代码或指令的非暂态计算机可读介质)。
在实施例中,一种方法包括由计算机系统接收预留(reserve)块卷的请求,该请求是从会话管理器服务接收的。该方法可以包括由计算机系统预留块卷。该方法可以包括由计算机系统识别块卷的数据中心标识符。该方法可以包括由计算机系统将块卷的数据中心标识符返回给会话管理器服务。该方法可以包括由计算机系统附加(attach)块卷。该方法可以包括由计算机系统从会话管理器服务接收释放块卷的指令。该方法可以包括由计算机系统创建块卷的备份,该备份包括存储在块卷中的数据。该方法还可以包括由计算机系统释放块卷。
在变体中,请求可以包括用户标识符,并且其中预留块卷包括确定经注册的块卷是否分配给与用户标识符对应的用户,并且根据经注册的块卷已被分配给用户,预留经注册的块卷,并且根据经注册的块卷未分配给与用户标识符对应的用户,从空卷池中预留空卷,该空卷被预格式化以与安全云壳层对接(dock)。该方法还可以包括接收恢复块卷的请求(该请求是从会话管理器服务接收的),使用块卷的备份创建恢复卷,该恢复卷包括存储在块卷中的数据,以及将恢复卷的数据中心标识符返回给会话管理器服务。块卷的备份还可以包括备份的标识符,并且其中创建恢复卷可以包括从空卷池中预留空块卷,空块卷被预格式化以与安全云壳层对接,使用备份的标识符来检索块卷的备份,至少部分地通过将块卷的备份加载到空块卷上来供应空块卷,并将空块卷的数据中心标识符标识为恢复卷的数据中心标识符。创建块卷的备份可以包括创建块卷的盘映像(dick image)。创建块卷的备份可以包括将块卷的数据转换成对象数据并将对象数据存储在对象存储系统中。
在某些实施例中,计算机系统包括一个或多个处理器和与该一个或多个处理器通信的存储器,该存储器被配置为存储计算机可执行指令,其中执行计算机可执行指令使得一个或多个处理器执行上述方法的一个或多个步骤。
在某些实施例中,计算机可读存储介质存储计算机可执行指令,这些指令在被执行时使计算机系统的一个或多个处理器执行上述方法的一个或多个步骤。
使用经签署的随机数(signed nonce)来保护云壳层的技术
还提供了与一个或多个附加的安全性操作协调地使用经签署的随机数以用于保护云壳层来运行一个或多个终端的技术(例如,方法、系统、存储可由一个或多个处理器执行的代码或指令的非暂态计算机可读介质)。
在第一方面,一种方法包括由会话管理器服务接收将用户设备连接到安全壳层实例的安全连接的请求,由会话管理器服务授权用户设备,由会话管理器服务配置由安全壳层实例的壳层标识符描述的安全壳层实例,由会话管理器服务生成随机数令牌,由会话管理器服务签署随机数令牌以生成经签署的随机数令牌,并由会话管理器服务向用户设备提供经签署的随机数令牌、壳层标识符和路由器地址。
在示例中,授权用户设备包括:从用户设备接收包括用户标识符的登录令牌,从授权服务请求授权系统公钥,至少部分地基于用授权系统公钥解密登录令牌来认证用户设备,至少部分地通过提供用户标识符、请求中识别出的资源的资源标识符和请求的到期时间(expiration period)从授权服务请求委托令牌,以及从授权服务接收委托令牌,其中授权服务被配置为在到期时间内授权对请求中识别出的资源的访问之后生成委托令牌。
在示例中,签署随机数令牌包括:使用由会话管理器服务持有的公钥/私钥对中的系统私钥来签署随机数令牌,以及将公钥/私钥对中的系统公钥提供给路由器地址处的安全壳层路由器。
在示例中,该方法还包括将随机数令牌存储在数据存储库中(其中随机数令牌包括密钥序列),并且至少部分地基于在数据存储库上搜索密钥序列来确定随机数令牌是否有效,并且在安全壳层路由器在用户设备与安全壳层实例之间建立安全连接之后从数据存储库中移除随机数令牌。
在示例中,该方法还包括在一段时间不活动或者由用户设备终止安全连接之后终止安全壳层实例。
在示例中,配置安全壳层实例包括:预留块卷,接收与块卷对应的域标识符,使用域标识符在块卷上分配实例(该实例是从多个可用实例分配的),接收与该实例对应的壳层标识符,并在实例上安装配置文件,该配置文件包括请求中所包括的请求信息。
在示例中,安全壳层实例运行docker容器,使得请求包括在docker容器上执行终端的指令。
在第二方面,一种计算机系统包括一个或多个处理器和与该一个或多个处理器通信的存储器,存储器被配置为存储计算机可执行指令,其中执行计算机可执行指令使得一个或多个处理器执行包括第一方面和后续示例的方法的一个或多个步骤的步骤。
在第三方面,一种非暂态计算机可读存储介质,其存储计算机可执行指令,指令在被执行时使计算机系统的一个或多个处理器执行包括第一方面和后续示例的方法的一个或多个步骤的步骤。
为云壳层使用多个网络接口的技术
附加地提供了与隔离不同IaaS子系统的多个虚拟云网络协调地使用多个网络接口来保护云壳层免受外部设备未授权访问的技术(例如,方法、系统、存储可由一个或多个处理器执行的代码或指令的非暂态计算机可读介质)。
在第一方面,一种方法包括接收由计算机系统执行操作的命令,该命令是经由主虚拟网络接口卡(vNIC)从路由器接收的;执行该操作;生成操作的输出;并经由辅助虚拟网络接口卡将包括操作的输出的消息传输到壳层子网,该辅助虚拟网络接口卡被配置用于从计算机系统到壳层子网的单向传输。壳层子网可以被配置为经由网络网关将操作的输出传输到外部网络。
在示例中,操作可以是由用户设备的用户请求的,并且生成操作的输出可以包括为用户设备生成返回消息并且经由主虚拟网络接口卡将返回消息传输到路由器。主虚拟网络接口卡可以被配置为接受针对用户设备的返回消息并拒绝包括操作的输出的消息。
在示例中,计算机系统可以是第一虚拟云网络中的虚拟机,第一虚拟云网络在私有根隔间(private root compartment)中构成。
在示例中,路由器可以在第二虚拟云网络中,第二虚拟云网络不同于第一虚拟云网络并且在私有根隔间中构成。
在示例中,壳层子网可以在第三虚拟云网络中,第三虚拟云网络不同于第一虚拟云网络并且在公共根隔间中构成。
在示例中,私有根隔间可以与可归于来自私有根隔间的网络流量的第一IP地址块相关联。公共根隔间可以与第二IP地址块相关联,第二IP地址块不同于第一IP地址块。第二IP地址块可归于来自计算机系统的一个或多个用户的网络流量。
在示例中,网络网关可以是网络地址变换(NAT)网关,被配置为使用可归于来自计算机系统的一个或多个用户的网络流量的IP地址块中的IP地址来传输消息。
在第二方面,一种计算机系统包括一个或多个处理器和与该一个或多个处理器通信的存储器,存储器被配置为存储计算机可执行指令,其中执行计算机可执行指令使得一个或多个处理器执行包括第一方面和后续示例的方法的一个或多个步骤的步骤。
在第三方面,一种非暂态计算机可读存储介质,存储计算机可执行指令,指令在被执行时使计算机系统的一个或多个处理器执行包括第一方面和后续示例的方法的一个或多个步骤的步骤。
附图说明
图1图示了根据一个或多个实施例的用于管理安全壳层实例的示例系统。
图2图示了根据一个或多个实施例的用于为安全壳层实例预留块卷的示例技术。
图3图示了根据一个或多个实施例的用于从安全壳层实例释放包括用户数据的块卷的示例技术。
图4图示了根据一个或多个实施例的用于为经恢复的安全壳层实例恢复块卷的示例技术。
图5图示了根据一个或多个实施例的示出通过其释放包括用户数据的块卷的示例数据流的序列图。
图6图示了根据一个或多个实施例的示出通过其将用户数据持久化到经恢复的安全壳层实例的示例数据流的序列图。
图7图示了根据一个或多个实施例的用于为安全壳层实例释放块卷的示例流程。
图8图示了根据一个或多个实施例的用于为安全壳层实例预留块卷的示例流程。
图9图示了根据一个或多个实施例的用于为安全壳层实例恢复块卷的示例流程。
图10图示了根据一个或多个实施例的用于管理安全壳层实例的示例系统。
图11图示了根据一个或多个实施例的用于管理安全壳层会话的示例系统。
图12图示了根据一个或多个实施例的用于将用户设备连接到安全壳层实例的示例系统。
图13图示了根据一个或多个实施例的用于用单次使用随机数令牌配置安全壳层实例的示例系统。
图14图示了根据一个或多个实施例的用于授权连接到安全壳层实例的用户设备的示例技术。
图15图示了根据一个或多个实施例的示出用户设备通过其连接到安全壳层实例的示例数据流的序列图。
图16图示了根据一个或多个实施例的示出用户设备通过其使用授权服务连接到安全壳层实例的示例数据流的序列图。
图17图示了根据一个或多个实施例的用于管理安全壳层会话的示例流程。
图18图示了根据一个或多个实施例的用于用单次使用随机数令牌配置安全壳层实例的示例流程。
图19图示了根据一个或多个实施例的将多个网络接口用于安全壳层实例的示例技术。
图20图示了根据一个或多个实施例的将多个网络接口用于管理安全壳层实例的通信的示例系统。
图21图示了根据一个或多个实施例的用于由安全壳层实例使用多个网络接口进行单向通信的示例技术。
图22图示了根据一个或多个实施例的将第一网络接口用于与安全壳层实例进行双向通信的示例技术。
图23图示了根据一个或多个实施例的用于与安全壳层实例进行单向通信的示例技术。
图24图示了根据一个或多个实施例的用于管理安全壳层实例的通信的示例区域系统。
图25图示了根据一个或多个实施例的用于将多个网络接口用于安全壳层实例的示例流程。
图26图示了根据一个或多个实施例的使用网络接口与安全壳层实例进行双向通信的示例流程。
图27图示了根据一个或多个实施例的使用网络接口从安全壳层实例进行单向通信的示例流程。
图28是图示根据至少一个实施例的用于将云基础设施实现为服务系统的一种模式的框图。
图29是图示根据至少一个实施例的用于将云基础设施实现为服务系统的另一种模式的框图。
图30是图示根据至少一个实施例的用于将云基础设施实现为服务系统的另一种模式的框图。
图31是图示根据至少一个实施例的用于将云基础设施实现为服务系统的另一种模式的框图。
图32是图示根据至少一个实施例的示例计算机系统的框图。
具体实施方式
在下面的描述中,将描述各种实施例。出于解释的目的,阐述具体配置和细节以便提供对实施例的透彻理解。但是,对于本领域技术人员来说也将清楚的是,可以在没有具体细节的情况下实践这些实施例。此外,可以省略或简化众所周知的特征以便不混淆所描述的实施例。
跨云壳层的实例持久化数据的技术
基于云的平台为用户提供可扩展且灵活的计算资源。此类基于云的平台,也称为基础设施即服务(IaaS),可以围绕客户的数据提供整套云解决方案,例如,用于创作变换、加载数据和呈现数据的解决方案。IaaS资源的用户可以请求在安全壳层实例中创建安全终端,以便可以安全地执行操作和数据传送(例如,经由WebSocket安全(wss)连接进行双向加密)。
在一些实施例中,壳层实例可以是专用计算实例,其可以运行docker容器(例如,主机)并且可以允许用户设备在那个docker容器上运行终端。可以为用户设备指派单个主机,但也可以在那个主机上创建多个活动终端。壳层实例可以在一段时间不活动之后终止。该实例可以运行主机,而主机进而可以运行安全壳层(例如,终端)。在一些实施例中,在一段时间内没有终端在主机上处于活动状态时,实例和/或主机也可以终止。
在一些实施例中,实例代理(instance agent)可以在所分配的实例上运行,并且可以处置接收的WebSocket流量并将该流量发送到在主机上运行的安全壳层。实例代理可以是HTTP服务器,该HTTP服务器可以被配置为打开安全WebSocket连接并将输入和输出重定向到在实例上运行的终端(例如,在docker容器上运行的安全壳层)。在一些实施例中,该代理可以识别docker容器的更新后的版本,可以开始docker容器,并且可以在容器中创建终端。在一些实施例中,该代理还可以专门化docker容器以包含安全壳层配置信息,并且可以至少部分地通过传入特定环境变量来在docker容器中执行终端。
在一些实施例中,卷管理器服务可以将用户数据从已终止的实例持久化到用于同一用户的后续配置的实例。卷管理器服务可以在安全壳层实例可用时识别用户块卷并将其附加到安全壳层实例,并且可以在实例生命周期结束时作为终止操作的一部分而为实例生成用户数据的备份。备份操作可以包括将用户数据保持一保留时段、在对象存储装置中备份和/或备份映像(例如,卷映像)。卷管理器系统可以在释放用户块卷之前创建备份。卷管理器服务可以与会话管理器服务通信,会话管理器服务可以查询实例代理以确定安全壳层实例的空闲时间。会话管理器服务可以在空闲时间超过实例的生命周期之后请求卷管理器服务释放用户块卷。在一些情况下,会话管理器服务可以请求卷管理器服务在保留时段已经过去之后释放用户块卷。当用户通过重新附加(re-attach)该用户块卷而不将用户数据从块存储装置恢复到新配置的块卷来请求新的安全壳层实例时,保留时段可以提供减少的时延。
为了恢复用户块卷(作为创建安全壳层实例的一部分),可以从对象存储装置或其它备份存储格式传送备份用户数据,作为恢复过程的一部分。例如,卷管理器服务可以预留空块卷(例如,至少部分地预先配置以用于附加到安全壳层实例)并且可以请求由备份服务传送备份用户数据以供应该空块卷。作为配置安全壳层实例的一部分,卷管理器服务可以将恢复的用户块卷的唯一标识符返回给会话管理器服务,从而将用户数据从已终止的实例持久化到新的恢复的实例。
在一些实施例中,本文描述的技术可以作为计算机可执行指令结合在软件开发工具包(SDK)中,基于web的终端可以使用该软件开发工具包来创建和访问这些资源。以这种方式,其他提供商也可以使用SDK来实现基于web的安全终端。此外,本文描述的技术可以允许用户设备连接到运行一个或多个终端的安全壳层,具有改进的安全性和时延。例如,通过自动持久化用户数据,而不是依靠手动指令来配置备份,会话管理器可以潜在地改进由不均匀系统负载引入的低效率,以及由UI备份系统请求以及由于在用户连接到安全壳层实例之间的一段时间(例如,当用户未访问用户数据时)维护用户块卷引入的开销。通过自动化块卷存储管理,而不是依赖于用户发起的释放,可以减少终止过程中的时延。以这种方式,在给定的数据中心或IaaS区域中系统需求高和存储可用性低的时段期间,连接请求可能遇到更短的块卷等待时间。
图1图示了根据一个或多个实施例的用于管理安全壳层实例的示例系统100。在一些实施例中,系统100可以允许用户安全地连接到计算实例(例如,虚拟机(VM)或docker)。安全访问可以允许用户通过加密连接(例如,https和/或WebSocket Secure(wss))连接到分布式计算系统资源(例如,基础设施即服务(IaaS)),包括但不限于分布式存储装置、计算核心等,用于与IaaS系统的VM进行实时数据传送。在一些实施例中,用户设备110可以生成对安全壳层实例的经签署的请求,并且可以将经签署的请求发送到会话管理器服务120。会话管理器服务120可以执行作为验证用户设备110和配置安全壳层实例的一部分的操作,作为履行经签署的请求的一部分。
在一些实施例中,用户设备110可以使用用户界面生成经签署的请求,用户界面包括但不限于图形用户界面控制台或命令行界面(CLI)。用户界面包括身份授权服务,该服务可以生成用户公钥/私钥对。在一些情况下,用户公钥/私钥对可以是例如在会话初始化时、在生成对安全VM连接请求时等生成的临时密钥对。用户设备110可以使用用户公钥/私钥对的私钥来生成经签署的请求。
在一些实施例中,会话管理器服务120可以实现一个或多个授权步骤,作为管理和准备安全壳层实例的一部分。授权可以包括接收和验证经签署的请求,例如,通过请求公钥并使用该密钥来验证经签署的请求的签名(例如,作为验证用户设备110的身份的步骤)。
在一些实施例中,会话管理器服务120可以至少部分地通过预留和配置安全壳层实例来履行经签署的请求。在一些情况下,会话管理器服务120可以与卷管理器服务130通信以预留块卷140。卷管理器服务130可以将块卷140的域标识符返回给会话管理器服务120。在一些实施例中,域标识符可以描述已被预留的块卷140的地理区域(例如,可用性域(AD))内的一个或多个数据中心。如下面参考附图更详细描述的,卷管理器服务130可以促进用于跨多个安全壳层会话持久化用户数据的一种或多种技术。例如,这些技术可以包括响应于接收到卷管理器服务130的释放请求而生成用户数据备份,在一些情况下,在从安全壳层实例释放用户块卷并终止安全壳层会话之前进行。
在一些实施例中,会话管理器服务120可以向实例管理器服务150提供块卷140的域标识符(例如,预留的块卷的AD)。实例管理器服务150可以分配由卷管理器服务提供的AD中的计算实例。实例管理器服务150可以将用于所分配的实例的实例标识符信息(例如,云基础设施ID)提供给会话管理器服务120。计算实例的分配可以基于每个用户和/或每个隔间进行(其中隔间是控制对云系统资源的访问的逻辑容器,并且可以包括子隔间)。例如,会话管理器服务120可以为不同隔间中的用户分配单独的实例。相比之下,会话管理器服务120可以为多个容器分配单个计算实例,使得不同的容器共享同一个计算实例,每个隔间一个容器(其中容器是打包的软件应用,其可以包括应用代码、运行时、系统工具、系统库和设置)。
在一些实施例中,会话管理器服务120可以向用户设备110提供实例标识符以及路由器160的路由器地址。路由器160可以被配置为将用户设备连接到安全壳层实例,如下面更详细描述的(例如,经由双工web套接字连接)。此外,路由器还可以被配置为验证用户设备110和会话管理器服务120,作为将用户设备110安全地连接到安全壳层实例的一部分。
在一些实施例中,会话管理器服务120可以生成随机数令牌,作为到安全壳层实例的用户设备110安全连接的授权和验证的一部分。在一些实施例中,随机数令牌可以是包含信息的web令牌(例如,JavaScript对象表示法“json”web令牌(jwt令牌)),该信息包括但不限于报头、有效时段(例如,到期之前,以分钟为单位)、密钥和/或随机串(例如,设定长度的字母数字序列)。在一些情况下,生成随机数令牌并将其与实例标识符和路由器地址一起提供给用户设备110。
作为配置安全壳层实例的一部分,会话管理器服务120可以从可用实例180的池中选择和配置现有实例,如下面的附图更详细地描述的。在一些情况下,会话管理器服务可以在所选择的实例中安装配置文件和委托令牌。配置可以包括参数信息,包括但不限于实例标识符、域标识符、请求细节(例如,资源分配、隔间、租赁)等。委托令牌可以被安装在实例上用户的壳层环境中。该令牌可以提供用户已通过认证的证明并且可以允许用户针对他们的账户执行命令而无需重新进行认证。在一些实施例中,IaaS系统可以拒绝针对未在用户的壳层环境中安装委托令牌的用户账户执行的任何CLI命令。
在一些实施例中,由会话管理器服务120安装的配置参数可以存储在实例配置存储库190中。实例配置存储库1900可以允许新的安全壳层实例在安全壳层实例的终止之后用请求参数恢复和/或重新配置。在一些实施例中,安全壳层实例将在用户完成使用它时被终止。在一些实施例中,会话管理器服务120可以指示实例管理器服务150基于代理的不活动的时间段(例如,空闲时间)和/或经由路由器160的活动来终止安全壳层实例。空闲时间可以作为配置参数的一部分提供。在一些实施例中,用户设备110的用户可以请求终止安全壳层实例,这可以由会话管理器服务120实现。
如上所述,示例系统100可以至少通过允许用户设备从控制台和/或命令行界面连接到安全壳层实例来提供IaaS系统的改进的安全性和稳定性。在实例恢复操作期间持久化用户数据(而不是维护用户块卷)可以通过以下方式来减少容器突破的潜在影响:从保持数据的系统服务(该系统服务在不使用时没有读-写访问权限)恢复数据而不是维护可能受到威胁的块卷。
示例系统100可以通过实现用户数据持久化技术来进一步提高IaaS系统的安全性和性能。例如,响应于接收到恢复请求而生成用户数据备份和生成恢复卷可以减少与维护用户块卷相关联的系统资源使用。代替地,备份可以以低开销存储格式(例如,盘映像等)存储,直到为恢复的安全壳层会话请求该数据。类似地,如果系统100被破坏,那么维护用户块卷会带来一定程度的风险。将用户数据作为备份保持在长期存储装置中(例如,在不允许读-写操作的系统中)可以降低在安全壳层会话之间对用户数据进行未经授权访问的风险。
图2图示了根据一个或多个实施例的用于为安全壳层实例预留块卷的示例技术200。作为预留和配置壳层实例的一部分,如上文参考图1更详细描述的,会话管理器服务120可以与图1的示例系统100的各组成服务协调地执行一个或多个操作。
在一些实施例中,会话管理器服务可以从用户设备接收连接到安全壳层的请求(例如,操作202),如上文参考授权和验证用户请求所描述的。响应于接收到用户请求,会话管理器服务120可以与卷管理器服务130协调地预留卷(例如,操作204)。预留卷可以涉及以下步骤,包括但不限于由卷管理器服务130确定一个或多个块卷是否已经关联和/或指派给用户设备110的该用户(例如,用户块卷230)并可用于托管安全壳层实例250(例如,操作206)。这可以包括对照由卷管理器服务130管理的块卷的注册表来检查用户标识符(例如,用户名或登录ID)。在识别出用户块卷230的情况下,域标识符信息(例如,资源ID、数据中心基础设施定位符等)可以返回给会话管理器服务120以指示该卷已被预留以托管安全壳层实例250(例如,操作208)。
卷管理器服务130可能发现用户块卷230不可用于附加到安全壳层实例250。在一些实施例中,卷管理器服务130可以预留空块卷240,其可以包括给定数据中心和/或IaaS区域可用的块卷140中用户可能尚未被指派到的一个或多个块卷。类似地,卷管理器服务130可以提供资源标识信息以供会话管理器服务120在后续操作中实现。例如,会话管理器服务120可以在由卷管理器服务130返回的块卷140中分配实例(例如,操作210)。
在一些实施例中,分配实例可以包括向实例管理器服务150提供域标识符。如参考图1更详细描述的,实例管理器服务150可以选择和预留现有实例,该现有实例作为可以至少部分地被预先配置以供用作安全壳层实例的多个可用实例(例如,图1的实例180)的一部分被维护。实例管理器服务150可以向会话管理器服务120返回实例标识符(例如,实例ID),这可以允许会话管理器服务120在后续操作中识别所选择的实例。在一些实施例中,选择和预留现有实例,而不是在实现连接请求时创建和配置实例,可以潜在地减少处理连接请求的系统时延。
图3图示了根据一个或多个实施例的用于从安全壳层实例释放包括用户数据的块卷的示例技术300。图1的系统100的一个或多个子系统(例如,会话管理器服务120、卷管理器服务130和实例管理器服务150)可以执行与终止和/或恢复安全壳层实例(例如,图2的安全壳层实例250)相关联的操作。结束安全壳层会话,例如,当用户设备(例如,图1的用户设备110)的用户请求与安全壳层实例断开连接时,可以包括从安全壳层实例解附(detach)用户块卷以及一个或多个附加和/或替代操作,如下所述。
在一些实施例中,会话管理器服务120向实例代理350请求空闲时间(例如,操作302)。如上所述,实例代理350可以是HTTP服务器,其可以被配置为打开安全WebSocket连接并将输入和输出重定向到在实例上运行的终端(例如,在docker容器上运行的安全壳层)。在一些实施例中,代理可以识别docker容器的更新后的版本,可以开始docker容器,并且可以在容器中创建终端。在一些实施例中,该代理还可以专门化docker容器以包含安全壳层配置信息并且可以至少部分地通过传入特定环境变量来在docker容器中执行终端。
在一些实施例中,会话管理器服务120可以被配置为在自上次连接起经过超过阈值时间的一段时间之后和/或在用户请求断开或终止安全壳层实例之后终止安全壳层实例。在一些实施例中,会话管理器服务120可以在实例代理350返回的空闲时间超过安全壳层实例的配置的生命周期之后向实例管理器服务150发送终止安全壳层实例的请求(例如,操作304)。作为响应,实例管理器服务150可以实现附加的操作以终止安全壳层实例(例如,与实例代理350协调)。
作为终止操作的一部分,卷管理器服务130可以接收释放块卷的请求(例如,操作308)。在一些实施例中,块卷(例如,图1的块卷140)可以包含在安全壳层会话期间生成和/或存储的用户数据,此用户数据对用户设备(例如,图1的用户设备110)的用户可以是有价值的。以这种方式,卷管理器服务130可以实现一个或多个操作以促进终止安全壳层实例,包括但不限于创建块卷的备份(例如,操作310)。
在一些实施例中,卷管理器服务130可以使用备份服务340来创建备份。备份服务可以包括外部IaaS资源,包括但不限于块存储服务342、对象存储服务344、卷映像服务346等。在一些实施例中,在一保留时段期间,卷管理器服务130可以维护用户块卷而不是创建备份。当用户通过重新附加用户块卷而不是请求创建备份,或者通过将用户数据从块存储装置恢复到新配置的块卷来请求新的安全壳层实例时,保留时段可以提供减少的时延。
在一些实施例中,卷管理器服务130可以使用对象存储服务344创建备份,使得备份被格式化以用于传送到对象存储系统。与块卷存储相比,通过允许将数据作为大块(chunk)对象存储在数据存储库中,对象存储可以潜在地减少IaaS系统开销,从而减少维护用户块卷所需的资源。在一些实施例中,对象存储服务344可以允许备份存储用户数据以降低系统资源成本,尽管引入了可能将时延引入安全壳层会话恢复过程的额外数据格式化转换操作。
在一些实施例中,卷管理器服务130可以通过创建卷映像(例如,使用卷映像服务346)来创建备份。卷映像(例如,块卷的盘映像)可以作为计算机文件而包括卷的内容和结构。可以通过生成具有预留原始块卷结构的块列表(manifest of blocks)的副本来创建卷映像。在一些情况下,可以相对于块卷压缩卷映像,以潜在地将映像的尺寸减小到块卷中所存储的数据的尺寸(例如,省略块卷中多余或未使用的预留容量)。卷映像可以允许从单个文件恢复用户数据,而不是包括供应多个块和/或大块对象的恢复过程。因此,它可以允许系统恢复操作,并可能减少时延并减少资源需求,这至少部分是由于在安全壳层会话之间不必维护用于用户数据的块卷。
图4图示了根据一个或多个实施例的用于为经恢复的安全壳层实例恢复块卷的示例技术400。图1的系统100的一个或多个子系统(例如,会话管理器服务120、卷管理器服务130和实例管理器服务150)可以执行与终止和/或恢复安全壳层实例(例如,图2中的安全壳层实例250)相关联的操作。恢复安全壳层实例可以包括创建具有空块卷的新安全壳层实例并为空块卷提供备份数据(也称为“水化(hydrate)”空块卷)。
在一些实施例中,会话管理器服务120可以从用户设备110接收连接到安全壳层实例的请求,如上面参考图1更详细描述的(例如,操作402)。在技术400的恢复操作中,用户请求可以包括在会话管理器服务120已请求终止操作(例如,图3的技术300)之后重新连接到安全壳层实例的请求,而不是初始配置和/或连接到安全壳层实例。
在一些实施例中,会话管理器服务120可以请求卷管理器服务预留块卷140以附加到安全壳层实例,如上面参考图2更详细描述的。不是如前所述那样地搜索用户块卷,而是卷管理器服务130可以预留空块卷240(例如,操作404)。例如,作为块卷的池的一部分,空块卷240可以被预先配置用于附加到安全壳层实例。
卷管理器服务130可以向空块卷240供应备份用户数据430(例如,操作406)。如参考图2更详细描述的,备份用户数据430可以以多种不同的数据格式存储,包括但不限于块存储和对象存储,例如,作为盘映像(例如,作为单个文件)或分布到多个数据子单元(例如,块、对象等)中。在一些实施例中,卷管理器服务130可以请求使用备份服务(例如,图3的备份服务340)为预留的空块卷供应备份用户数据430。在一些实施例中,备份服务可以促进备份用户数据430(例如,块)在分布式存储系统(例如,云存储系统)上的传送。在一些实施例中,供应空块卷240可以包括(例如,在备份被存储为对象数据的情况下)将备份用户数据430从对象数据重新格式化为块数据,如上面参考图3更详细描述的。
在一些实施例中,卷管理器服务130可以识别为其供应备份用户数据430的空块卷的数据中心(例如,AD)标识符(例如,操作408)。识别数据中心标识符可以包括确定空块卷240在IaaS基础设施(例如,数据中心)中的硬件地址,其可以识别存储备份用户数据430的系统。一旦被识别,卷管理器服务130就可以将数据中心标识符返回给会话管理器服务120(例如,操作410)。会话管理器服务120可以使用数据中心标识符提供给实例管理器服务(例如,图1的实例管理器服务150),作为配置和创建安全壳层实例的一部分,如上面参考图1-2更详细描述的。
图5图示了根据一个或多个实施例的示出通过其释放包括用户数据的块卷的示例数据流500的序列图。用户设备110的用户请求连接到安全壳层实例,并且会话管理器服务120请求卷管理器服务预留卷。在会话管理器服务120确定终止安全壳层实例之后,它请求卷管理器服务130释放块卷。
在数据流500中,用户设备110(其可以是图1的用户设备110的示例)可以提交连接到安全壳层实例的请求。如参考图1-2更详细描述的,会话管理器服务120可以接收该请求。在接收到请求后,会话管理器服务120可以配置壳层实例,如参考上面的附图更详细描述的。配置壳层实例可以包括多个操作,包括但不限于预留卷、从为配置安全壳层实例的目的而创建的多个可用实例中分配实例,以及在所分配的实例上安装配置文件。
预留卷可以包括一个或多个操作,包括请求卷管理器服务130预留块卷,如参考图2和图4更详细描述的。例如,预留块卷可以包括在现有块卷中搜索包含用户数据的用户块卷(例如,图2的用户块卷230),并将用户块卷的数据中心标识符返回给会话管理器服务120。在一些情况下,如当卷管理器服务130没有找到用户块卷时,卷管理器服务可以识别并返回预留的块卷(例如,图2的空块卷240)的数据中心标识符(例如,AD标识符)。
配置壳层实例可以包括由会话管理器服务120从实例管理器服务接收壳层实例标识符(例如,IaaS资源标识符)。如参考图1-2更详细描述的,可以从至少部分地预先配置的实例池中预留该实例,预留的卷可以附加到该实例。附加预留的卷可以包括一个或多个操作,例如,请求卷管理器服务130附加该卷。响应于会话管理器服务120的请求,卷管理器服务130可以附加该卷,并向会话管理器服务120返回确认。
当会话管理器服务120确定安全壳层实例空闲和/或用户设备110的用户请求终止安全壳层实例时,会话管理器服务120可以请求卷管理器服务130释放块卷,如参考图3更详细描述的。作为释放块卷的一部分,卷管理器服务可以创建包含在该块卷中的用户数据的备份。作为备份操作的一部分,卷管理器服务可以从备份服务340接收备份标识符。在一些实施例中,备份操作可以由备份服务执行,如参考图3更详细描述的。
释放块卷可以包括从块卷中移除用户数据(例如,重新格式化)以使存储容量返回到可以用于块卷的未来配置。作为释放块卷的一部分,卷管理器服务130可以向会话管理器服务120确认块卷已经被释放。
图6图示了根据一个或多个实施例的示出通过其将用户数据持久化到经恢复的安全壳层实例的示例数据流600的序列图。用户设备110的用户请求连接和/或重新连接到安全壳层实例,并且会话管理器服务120可以请求卷管理器服务130恢复用户卷。卷管理器服务130可以与备份服务340协调以供应恢复卷。
在数据流600中,会话管理器服务120可以从用户设备110接收连接请求。当用户设备110之前已经连接到安全壳层实例并且来自那个实例的数据已经存储在备份中(如参考图3更详细描述的)时,会话管理器服务120可以向卷管理器服务130发送恢复请求。恢复请求可以包括描述用户设备110的用户和/或备份用户数据的识别信息(例如,用户标识符、用户名、上次的会话标识符、备份标识符等)。
卷管理器服务130可以预留空块卷(例如,图2的空块卷240)而不是搜索现有的用户块卷(例如,图2的用户块卷230)。与参考图2描述的操作相反,卷管理器服务130可以向备份服务340提供备份标识符,作为恢复用户备份数据(例如,图4的用户备份数据430)的供应过程的一部分。
供应恢复卷可以包括通过备份服务340将备份数据从备份存储系统传送到空块卷。这可以包括恢复数据的结构以再现用户块卷。卷管理器服务130可以将空块卷的数据中心标识符提供给备份服务340,备份服务340可以为空卷供应备份数据。在一些实施例中,卷管理器服务130可以通过向备份服务340提供备份数据标识符、接收对应的用户备份数据并将数据恢复到预留的块卷来执行供应操作。
一旦被供应,卷管理器服务130就可以将恢复卷标识符提供给会话管理器服务120,其可以与空块卷的数据中心标识符对应。使用这个标识符,会话管理器服务120可以执行参考图2更详细描述的操作,包括但不限于从预配置的实例池中预留实例并请求卷管理器服务130将恢复卷附加到该预留的实例。在一些情况下,卷管理器服务130可以通过向会话管理器服务120返回确认来确认恢复卷的附加。
图7图示了根据一个或多个实施例的用于为安全壳层实例释放块卷的示例流程。流程的操作可以被实现为硬件电路系统和/或存储为计算机系统的非暂态计算机可读介质上的计算机可读指令,诸如图1的卷管理器服务130。如所实现的,指令表示包括电路系统或可由计算机系统的(一个或多个)处理器执行的代码的模块。此类指令的执行将计算机系统配置为执行本文描述的特定操作。每个电路系统或代码与处理器结合执行(一个或多个)相应的操作。虽然以特定次序描述操作,但应当理解的是,不需要特定次序并且可以省略、跳过和/或重新排序一个或多个操作。
在示例中,流程700包括操作702,其中计算机系统接收预留块卷的请求。如参考图2更详细描述的,请求可以由会话管理器服务(例如,图1的会话管理器服务120)响应于来自用户设备(例如,图1的用户设备110)的连接到安全壳层实例(例如,图2的安全壳层实例250)的请求而生成。该请求可以包括与用户设备110相关联的用户标识符(例如,用户名、登录ID、会话ID、网络地址等)。
在示例中,流程700包括操作704,其中计算机系统预留块卷。预留块卷可以包括由卷管理器服务确定用户块卷(例如,图2的用户块卷230)是否正由卷管理器服务所连接到的IaaS系统的块卷存储系统维护,如下面参考图8更详细描述的。否则,卷管理器服务可以预留空块卷(例如,图2的空块卷240)。
在示例中,流程700包括操作706,其中计算机系统识别块卷的数据中心标识符。数据中心标识符可以描述维护块卷(例如,图1的块卷140)的IaaS存储资源(例如,联网的存储基础设施),并且可以对于IaaS系统(例如,特定地理区域中的安装)的单个数据中心是唯一的。
在示例中,流程700包括操作708,其中计算机系统返回块卷的数据中心标识符。作为操作708的一部分,卷管理器系统可以向会话管理器服务提供被识别出的预留的块卷的数据中心标识符。会话管理器服务进而可以将预留的块卷的数据中心标识符提供给实例管理器服务(例如,图1的实例管理器服务150)作为配置安全壳层实例的一部分,如参考图1-2更详细描述的。
在示例中,流程700包括操作710,其中计算机系统附加块卷。卷管理器服务可以将预留的块卷附加到从部分预配置的实例池中分配的实例(例如,图1的实例180),该实例由实例管理器服务选择以用于创建安全壳层实例。
在示例中,流程700包括操作712,其中计算机系统接收释放块卷的指令。在会话管理器服务已经确定用于安全壳层实例的空闲时间超过安全壳层实例的生命周期之后,卷管理器服务可以接收来自会话管理器服务的请求,如参考图3更详细描述的。在一些实施例中,用户设备的用户还可以请求终止安全壳层实例。会话管理器服务可以请求卷管理器服务释放预留的块卷,作为与终止安全壳层实例相关联的多个操作之一,例如,从docker断开安全壳层实例(例如,作为docker容器)、删除实例,以及将计算资源与块卷解除关联,以潜在地保护核心IaaS资源和用户数据。
在一些实施例中,在安全壳层终止之后可以存在一保留时间,在此期间可以维持和/或保留用户块卷数据。用户块卷数据的保留可以减少与初始化新安全壳层实例相关联的时延,例如,通过将用户块卷数据附加到新的安全壳层实例而不是从备份(诸如对象存储装置)恢复用户数据。在一些实施例中,保留时间可以包括数小时或数天,例如,12小时、24小时、36小时、48小时、72小时等。在一些实施例中,保留时间可以从空闲时间的结束开始计算,使得安全壳层实例超时可以触发实例终止,但用户块卷可以在空闲超时之后被保留,直到保留时段(例如,72小时)已经过去。
在示例中,流程700包括操作714,其中计算机系统创建块卷的备份。作为释放块卷的一部分,卷管理器服务可以请求进行备份。如参考图3更详细描述的,备份可以以不同格式创建,包括但不限于块存储、对象存储和/或作为卷映像。备份数据(例如,图4的用户备份数据430)可以由备份服务(例如,图3的备份服务340)创建,该备份服务可以是与卷管理器服务通信的IaaS核心服务。
在示例中,流程700包括操作716,其中计算机系统释放块卷。卷管理器服务可以至少部分地通过重新格式化卷(例如,清除存储在块卷中的数据)和解除先前识别出的存储资源与块卷的关联以可用于其它用途从而释放块卷。与维护用户块卷相反(如在终止安全壳层实例之后的保留时间期间),释放块卷可以通过在用户未连接到安全壳层实例的时间段期间潜在地减少专用于维护用户块卷的资源,从而允许本文描述的IaaS系统以减少的计算开销来操作。
图8图示了根据一个或多个实施例的用于为安全壳层实例预留块卷的示例流程。该流程的操作可以被实现为硬件电路系统和/或存储为计算机系统的非暂态计算机可读介质上的计算机可读指令,诸如图1的卷管理器服务130。如所实现的,指令表示包括电路系统或可由计算机系统的(一个或多个)处理器执行的代码的模块。此类指令的执行将计算机系统配置为执行本文描述的特定操作。每个电路系统或代码与处理器结合执行(一个或多个)相应的操作。虽然以特定次序描述操作,但应当理解的是,不需要特定次序并且可以省略、跳过和/或重新排序一个或多个操作。
在示例中,流程800包括可以由卷管理器服务响应于接收到预留块卷的请求(例如,图7的操作702)而执行的一个或多个操作。因此,流程800包括操作702,由此卷管理器服务从会话管理器服务(例如,图1的会话管理器服务120)接收预留块卷的请求。
在示例中,流程800包括操作804,其中计算机系统确定是否分配了经注册的块卷。经注册的块卷可以是与用户设备(例如,图1的用户设备110)的用户相关联的块卷。因此,操作804可以包括由卷管理器服务确定用户块卷(例如,图2的用户块卷230)是否正由卷管理器服务所连接到的IaaS系统的块卷存储系统维护。
在示例中,流程800包括操作806,其中计算机系统根据分配了经注册的块卷而预留该经注册的块卷。在操作804返回用户块卷的数据中心标识符的情况下,卷管理器服务可以预留该用户块卷以供附加到安全壳层实例。
在示例中,流程800包括操作808,其中计算机系统根据未分配经注册的块卷而预留空卷。与操作806相反,当用户块卷不可用时,卷管理器服务可以预留空块卷(例如,图2的空块卷240)。空块卷可以至少部分地用一个或多个设置和/或配置参数预先配置用于附加到安全计算实例。
图9图示了根据一个或多个实施例的用于为安全壳层实例恢复块卷的示例流程900。该流程的操作可以被实现为硬件电路系统和/或存储为计算机系统的非暂态计算机可读介质上的计算机可读指令,诸如图1的卷管理器服务130。如所实现的,指令表示包括电路系统或可由计算机系统的(一个或多个)处理器执行的代码的模块。此类指令的执行将计算机系统配置为执行本文描述的特定操作。每个电路系统或代码与处理器结合执行(一个或多个)相应的操作。虽然以特定次序描述操作,但应当理解的是,不需要特定次序并且可以省略、跳过和/或重新排序一个或多个操作。
在示例中,流程900包括操作902,其中计算机系统接收恢复块卷的请求。如参考图4更详细描述的,在用户设备(例如,图1的用户设备110)的用户请求重新连接到安全壳层实例(例如,图2的安全壳层实例250)之后,卷管理器服务可以从会话管理器服务(例如,图1的会话管理器服务120)接收恢复块卷的请求。在一些实施例中,该请求可以包括用户标识符,卷管理器服务可以通过该用户标识符实现一个或多个备份恢复操作,如下所述。
在示例中,流程900包括操作904,其中计算机系统从空卷池中预留空块卷。与参考图8的流程800描述的操作形成对比,卷管理器服务可以至少部分地通过预留空块卷(例如,图2的空块卷240)来实现操作902的恢复请求,而无需确定用户块卷是否正由IaaS数据存储系统维护。例如,当已创建备份(如参考图7更详细描述的)时,卷管理器服务可以预留空块卷而不执行参考图8描述的操作。
可替代地,卷管理器系统可以通过确定IaaS数据存储系统是否正在维护用户块卷来实现参考图8描述的操作。以这种方式,卷管理器服务可以返回用户块卷数据中心标识符而不是预留空块卷。
在示例中,流程900包括操作906,其中计算机系统请求用户备份数据。卷管理器服务可以请求将用户数据备份(例如,图4的用户数据备份430)传送到操作904的预留的空块卷。该请求可以由备份服务(例如,图3的备份服务340)做出,该服务可以是促进数据备份和恢复操作的核心IaaS服务。
在示例中,流程900包括操作908,其中计算机系统供应空块卷。如参考图4更详细描述的,供应空块卷可以包括重新创建备份操作(例如,图7的操作714)之前的用户块卷(例如,图2的用户块卷230)的结构的操作。
在示例中,流程900包括操作910,其中计算机系统识别空块卷的数据中心标识符。卷管理器服务可以将空块卷的数据中心标识符标识为恢复卷的数据中心标识符,使得恢复卷可以附加到安全壳层实例。数据中心标识符可以是与维护空块卷的数据中心(例如,IaaS基础设施)对应的唯一标识符。
在示例中,流程900包括操作912,其中计算机系统返回恢复卷的数据中心标识符。数据中心标识符可以由卷管理器服务返回给会话管理器服务,用于安全壳层实例的配置,如上面参考图1-2更详细描述的。
使用经签署的随机数来保护云壳层的技术
基于云的平台为用户提供可扩展且灵活的计算资源。此类基于云的平台,也称为基础设施即服务(IaaS),可以围绕客户的数据提供整套云解决方案,例如,用于创作变换、加载数据和呈现数据的解决方案。IaaS资源的用户可以请求在安全壳层实例中创建安全终端,以便可以安全地执行操作和数据传送(例如,经由WebSocket安全或wss连接进行双向加密)。
在一些实施例中,壳层实例可以是专用计算实例,其可以运行docker容器(例如,主机)并且可以允许用户设备在那个docker容器上运行终端。可以为用户设备指派单个主机,但也可以在那个主机上创建多个活动终端。壳层实例可以在一段时间不活动之后终止。该实例可以运行主机,而主机进而可以运行安全壳层(例如,终端)。在一些实施例中,在一段时间内没有终端在主机上处于活动状态时,实例和/或主机也可以终止。
在一些实施例中,实例代理可以在分配的实例上运行并且可以处置接收WebSocket流量并将该流量发送到在主机上运行的安全壳层。实例代理可以是HTTP服务器,该HTTP服务器可以被配置为打开安全WebSocket连接并将输入和输出重定向到在实例上运行的终端(例如,在docker容器上运行的安全壳层)。在一些实施例中,代理可以识别docker容器的更新后的版本,可以开始docker容器,并且可以在容器中创建终端。在一些实施例中,代理还可以专门化docker容器以包含安全壳层配置信息并且可以至少部分地通过传入特定环境变量来在docker容器中执行终端。
在一些实施例中,会话管理器服务可以从浏览器提供对用户的资源的命令行访问。会话管理器服务可以提供多个可用的计算实例,这些实例可以被分配和/或专门用于支持特定的用户账户。提供可用的计算实例(例如,通过在接收安全壳层请求之前创建一个或多个配置有默认参数的计算实例)可以允许会话管理器服务改进系统响应的时延(例如,通过在5秒、10秒、30秒、60秒等内创建和专门化实例)。会话管理器服务还可以提供基于web的终端,该终端可以允许用户通过安全连接在专用实例上使用IaaS基础设施资源(例如,通过专有和/或其它unix命令),该安全连接在连接完成之前在多个操作处被验证。
在一些实施例中,本文描述的技术可以作为计算机可执行指令结合在软件开发工具包(SDK)中,基于web的终端可以使用该软件开发工具包来创建和访问这些资源。以这种方式,其他提供商也可以使用SDK来实现基于web的安全终端。此外,本文描述的技术可以允许用户设备连接到运行一个或多个终端的安全壳层,具有改进的安全性和时延。例如,通过从多个可用实例中选择和配置安全壳层实例,而不是在请求安全地连接到安全壳层时才创建新实例,会话管理器可以潜在地改进由实例的预配置引入的系统时延。
此外,实施用于保护一个或多个终端的一种或多种技术可以改进本文描述的系统的操作和性能。例如,提供可以由会话管理器服务和用户设备二者签署的随机数令牌,以及检查签名的操作(例如,由促进用户设备到安全壳层实例的连接的路由器实现),可以提供改进的安全性并且可以防止经由在安全壳层实例上运行的终端对数据和/或IaaS资源的未经授权的访问。此外,实现单次使用协议,借此可以与未使用的随机数令牌的数据库相关地确定随机数令牌的有效性,可以防止重复使用随机数令牌。此外,多步安全性协议还可以提供附加的用户认证和资源授权保护,这可以允许会话管理器服务防止未经授权和/或不真实的用户设备对登录令牌(例如,在认证用户设备之后由身份授权服务生成的令牌)的重用。此外,在docker容器系统中配置安全壳层可以通过隔离与安全壳层相关的数据来改善安全性,从而潜在地减少外部数据被破坏的风险。
图10图示了根据一个或多个实施例的用于管理安全壳层实例的示例系统1000。在一些实施例中,系统1000可以允许用户安全地连接到计算实例(例如,虚拟机或“VM”或docker容器)。安全访问可以允许用户通过加密连接(例如,https和/或WebSocket Secure“WSS”)连接到分布式计算系统资源(例如,基础设施即服务,或“IaaS”),包括但不限于分布式存储装置、计算核心等,用于与IaaS系统的VM进行实时数据传送。在一些实施例中,用户设备1010可以生成对安全壳层实例的经签署的请求,并且可以将经签署的请求发送到会话管理器服务1020。会话管理器服务1020可以执行作为验证用户设备1010和配置安全壳层实例的一部分的操作,作为履行经签署的请求的一部分。
在一些实施例中,用户设备1010可以使用用户界面生成经签署的请求,用户界面包括但不限于图形用户界面控制台或命令行界面(CLI)。用户界面包括身份授权服务,该服务可以生成用户公钥/私钥对。在一些情况下,用户公钥/私钥对可以是例如在会话初始化时、在生成对安全VM连接请求时等生成的临时密钥对。用户设备1010可以使用用户公钥/私钥对的私钥来生成经签署的请求。
在一些实施例中,会话管理器服务1020可以实现一个或多个授权步骤,作为管理和准备安全壳层实例的一部分。授权可以包括接收和验证经签署的请求,例如,通过请求公钥(例如,来自授权服务)并使用该密钥来验证经签署的请求的签名(例如,作为验证用户设备1010的身份的步骤)。附加地或可替代地,公钥可以包括在由授权服务提供的登录令牌中,如下面参考图29更详细描述的。
在一些实施例中,会话管理器服务1020可以至少部分地通过预留和配置安全壳层实例来履行经签署的请求。在一些情况下,会话管理器服务1020可以与卷管理器服务1030通信以预留块卷1040。卷管理器服务1030可以将块卷1040的域标识符返回给会话管理器服务1020。在一些实施例中,域标识符可以描述已被预留的块卷1040的地理区域(例如,可用性域或“AD”)内的一个或多个数据中心。
在一些实施例中,会话管理器服务1020可以向实例管理器服务1050提供块卷1040的域标识符(例如,预留的块卷的AD)。实例管理器服务1050可以分配由卷管理器服务提供的AD中的计算实例。实例管理器服务1050可以将用于所分配的实例的实例标识符信息(例如,云基础设施ID)提供给会话管理器服务1020。计算实例的分配可以基于每个用户和/或每个隔间进行(其中隔间是控制对云系统资源的访问的逻辑容器,并且可以包括子隔间)。例如,会话管理器服务1020可以为不同隔间中的用户分配单独的实例。相比之下,会话管理器服务1020可以为多个容器分配单个计算实例,使得不同的容器共享同一个计算实例,每个隔间一个容器(其中容器是打包的软件应用,其可以包括应用代码、运行时、系统工具、系统库和设置)。
在一些实施例中,会话管理器服务1020可以向用户设备1010提供实例标识符以及路由器1060的路由器地址。路由器1060可以被配置为将用户设备连接到安全壳层实例,如下面更详细描述的(例如,经由双工web套接字连接)。此外,路由器还可以被配置为验证用户设备1010和会话管理器服务1020,作为将用户设备1010安全地连接到安全壳层实例的一部分,如下所述。
在一些实施例中,会话管理器服务1020可以生成随机数令牌,作为到安全壳层实例的用户设备1010安全连接的授权和验证的一部分。在一些实施例中,随机数令牌可以是包含信息的web令牌(例如,JavaScript对象表示法“json”web令牌(jwt令牌)),该信息包括但不限于报头、有效时段(例如,到期之前,以分钟为单位)、密钥和/或随机或伪随机串(例如,设定长度的字母数字序列、随机或伪随机数等)。在一些情况下,生成随机数令牌并将其与实例标识符和路由器地址一起提供给用户设备1010。
在一些实施例中,会话管理器服务1020可以将随机数令牌存储在随机数和标识符存储库1070中。随机数和标识符存储库1070可以是存储随机数表的分布式数据存储库(例如,云存储装置),如下面参考图13更详细描述的,这可以允许会话管理器服务1020进一步保护用户设备对安全壳层实例的访问,例如,通过跟踪随机数令牌并确保随机数令牌对于来自用户设备1010的单个请求是有效的。类似地,随机数和标识符存储库1070还可以存储由授权服务提供的登录令牌,其包含用户密钥对的用户公钥,该公钥可以被用于在履行用户请求期间核实用户设备1010,如下面参考图11、图14和图16更详细描述的。
作为配置安全壳层实例的一部分,会话管理器服务1020可以从可用实例池1080中选择和配置现有实例,如参考下面的附图更详细描述的。在一些情况下,会话管理器服务可以在所选择的实例中安装配置文件和委托令牌。配置可以包括参数信息,包括但不限于实例标识符、域标识符、请求细节(例如,资源分配、隔间、租赁)等。委托令牌可以允许用户设备1010访问IaaS系统资源而无需在实例级别的额外授权。
在一些实施例中,由会话管理器服务1020安装的配置参数可以存储在实例配置存储库1090中。实例配置存储库1090可以允许新的安全壳层实例在安全壳层实例的终止之后用请求参数恢复和/或重新配置。在一些实施例中,安全壳层实例将在用户完成使用它时被终止。在一些实施例中,会话管理器服务1020可以指示实例管理器服务1050基于代理的不活动的时间段(例如,空闲时间)和/或经由路由器1060的活动来终止安全壳层实例。空闲时间可以作为配置参数的一部分提供。在一些实施例中,用户设备1010的用户可以请求终止安全壳层实例,这可以由会话管理器服务1020实现。
如上所述,示例系统1000可以至少通过允许用户设备从控制台和/或命令行界面连接到安全壳层实例来提供IaaS系统的改进的安全性和稳定性。例如,使用单次使用随机数令牌和实例可以包含突破的风险(软件访问数据和/或资源超出授权限制)。例如,单次使用的随机数令牌可以由用户设备的私钥签署,这可以防止另一个用户访问安全壳层实例。作为另一个示例,单次使用实例可以通过在不再使用实例之后替换实例来减少容器突破的潜在影响,而不是重用实例(这可能潜在地危害使用同一实例的后续用户设备)。
图11图示了根据一个或多个实施例的用于管理安全壳层会话的示例系统1100。参考图10中描述的系统(例如,示例系统100),示例系统1100可以包括组成元素(例如,图10的卷管理器服务130、实例管理器服务150、实例180等)中的一个或多个。在一些实施例中,示例系统1100可以实现一个或多个授权和安全性协议,作为在用户设备和安全壳层实例之间提供安全连接的一部分。
在一些实施例中,会话管理器服务120可以从用户设备110接收经签署的请求(例如,操作1102),其中经签署的请求可以由用户设备110生成。在一些实施例中,用户可以经由也称为“控制台”界面的命令行界面(CLI)和/或图形用户界面(GUI)请求安全壳层。在一些情况下,系统1100包括GUI/CLI登录服务1120,它可以促进与会话管理器服务120传达身份和授权信息。例如,安全壳层请求可以由GUI/CLI登录服务1120生成的私钥(作为与用户会话相关联的公钥/私钥对的一部分)签署。例如,用户登录和/或身份验证可以包括生成临时公钥/私钥对,该密钥对可以被用于用私钥签署安全壳层请求。公钥可以提供给授权服务1130,作为授权用户设备110访问和生成登录令牌(例如,访问令牌)的一部分,登录令牌可以提供给会话管理器服务120以授权经签署的请求(例如,操作1104)。
在一些实施例中,授权服务1130可以基于用户名/密码账户细节对用户设备执行身份授权,以及授权访问特定IaaS资源和/或分层资源层(例如,包含与IaaS资源关联的子隔间的根隔间)。授权服务1130可以在登录/授权的初始步骤期间直接与GUI/CLI登录服务1120通信,GUI/CLI登录服务1120可以从该步骤向会话管理器服务120提供登录令牌。如下面参考图14和图16更详细描述的,会话管理器服务120可以实现附加操作,作为授权访问安全壳层的一部分(例如,操作1104)。
在一些实施例中,会话管理器服务120可以预留壳层实例以用于创建安全壳层实例1140(例如,操作1106)。如下面参考图12-4更详细描述的,预留壳层实例可以包括一个或多个操作,包括但不限于预留卷、在预留的卷中分配实例以及配置所分配的实例。会话管理器服务120可以接收壳层实例标识符,作为预留壳层实例的一部分,并且可以提供包括但不限于壳层实例标识符、与用户设备110相关联的用户标识符和到期时间(例如,有效持续时间)的信息,作为从授权服务1130请求委托令牌的一部分(例如,操作1108)。
授权服务1130可以生成委托令牌并将其提供给会话管理器服务120,作为允许用户设备110安全地连接到安全壳层实例1140的方法(例如,操作1110)。在一些实施例中,会话管理器服务120可以通过安装从授权服务接收的委托令牌来配置预留的壳层实例(例如,操作1112)。如参考图13更详细描述的,配置安全壳层实例1140可以包括实现实例的配置(例如,安装配置文件,该配置文件包括经签署的请求的一个或多个方面)。
在从授权服务1130接收到委托令牌之后,会话管理器服务120可以向GUI/CLI登录服务1120提供安全壳层令牌(例如,操作1114)。如参考以下段落更详细描述的,附加的验证和访问控制操作可以由会话管理器服务120实现,包括但不限于生成、签署和/或存储随机数令牌。在一些实施例中,安全壳层令牌可以包括附加的访问控制元素并且可以与包括委托令牌的元数据相关联。
在一些实施例中,会话管理器服务120还可以向安全壳层路由器1150提供壳层实例标识符(例如,操作1116)。在一些实施例中,安全壳层路由器可以是图10的路由器160的示例。安全壳层路由器1150可以存储壳层实例标识符,并且可以使用安全壳层标识符,作为在连接带安全壳层实例1140期间验证用户设备110的一部分,如下面参考图12更详细描述的。
图12图示了根据一个或多个实施例的用于将用户设备连接到安全壳层实例的示例系统1200。类似于参考图11描述的技术,会话管理器服务120可以促进用户设备110到安全壳层路由器1150的连接,作为连接到安全壳层实例1140的一部分。
在一些实施例中,会话管理器服务120可以从用户设备110接收创建安全壳层实例的经签署的请求,如参考图11更详细描述的(例如,经由GUI/CLI登录服务图11的1120)。该请求可以包括请求会话管理器服务120为安全壳层实例创建主机(例如,操作1202)。主机可以指在IaaS资源中实现的云资源容器和/或卷。该请求可以包括参考图11描述的安全性、授权信息,并且因此系统1200的操作和元素可以包括上述的一个或多个元素和/或操作(例如,图11的授权服务1130生成委托令牌)。
在一些实施例中,会话管理器服务120可以为安全壳层实例配置主机(例如,操作1204)。下面参考图13更详细地描述包括在主机配置中的一个或多个组成操作。在一些实施例中,会话管理器服务120可以使用一个或多个管理器服务1230(包括但不限于卷管理器服务130和实例管理器服务150)来预留和分配实例,如上面参考图10更详细描述的。
作为为用户设备110创建对安全壳层实例1140的安全访问的一部分,会话管理器服务120可以生成随机数令牌、壳层标识符和路由器地址并将其提供给用户设备110(例如,操作1206)。如参考图10更详细描述的,随机数令牌可以包括web令牌(例如,JWT令牌),该web令牌可以包括具有预定义数量的字符和/或数字的随机串(例如,字母和数字的八个字符串)。壳层标识符可以包括在参考图11描述的安全壳层令牌中。路由器地址可以识别安全壳层路由器1150,并且可以允许用户设备请求经由安全连接(例如,WebSocket安全连接或“WSS”连接)连接到安全壳层路由器1150。
在一些实施例中,会话管理器服务120可以例如使用由会话管理器服务120识别出的密钥对中的私钥来签署随机数令牌。附加的验证过程,如参考图14更详细描述的,可以包括对由签署随机数令牌的会话管理器服务120所生成的经系统签署的随机数的验证。为此,会话管理器服务120可以将经系统签署的随机数连同壳层实例标识符一起提供给用户设备110和/或安全壳层路由器。在一些实施例中,当会话管理器服务120向用户设备110提供经系统签署的随机数时,用户设备110可以签署经系统签署的随机数并将经双重签署的随机数提供给安全壳层路由器1150。
安全壳层路由器1150可以从用户设备110接收连接请求,该连接请求可以包括经用户签署的随机数令牌(例如,操作1208)。类似于经系统签署的随机数,经用户签署的随机数令牌可以通过用用户设备110持有的私钥签署随机数令牌来生成。如上所述,用户私钥可以形成由GIU/CLI登录服务生成的密钥对(例如,临时公钥/私钥对)的一部分,为此可以将公钥提供给会话管理器服务120和/或安全壳层路由器1150。
作为准许连接请求的一部分,安全壳层路由器1150可以验证用户和系统签名(例如,操作1210)。安全壳层路由器1150可以至少部分地通过检查随机数令牌是否未到期来验证随机数令牌(例如,如果随机数令牌包括有效持续时间)。验证可以通过来自会话管理器服务120的请求来实现(例如,会话管理器服务120可以确定随机数是否有效并且可以提供有效性的指示)。安全壳层路由器1150还可以验证随机数令牌之前没有被用于连接请求,如下面参考图13更详细描述的。
在一些实施例中,安全壳层路由器1150可以至少部分地通过分别使用用于用户设备110和会话管理器服务120的公钥解密经用户和系统签署的随机数令牌来验证签名中的一个或多个。在一些实施例中,当用户设备110签署经系统签署的随机数令牌时,安全壳层路由器1150可以通过使用用户公钥解密经双重签署的随机数令牌来验证用户签名,而对于系统签名是使用系统公钥来解密。以这种方式解密可以允许安全壳层路由器1150确认随机数值并验证随机数令牌。在一些实施例中,验证可以例如通过比较经解密的随机数令牌以确定随机数令牌是否匹配来实现。
在随机数令牌以及用户和系统签名的验证之后,安全壳层路由器1150可以将用户设备110连接到安全壳层实例1140(例如,操作1212)。如上面参考图10更详细描述的,安全壳层路由器1150可以提供WebSocket Secure(wss)连接,这可以经由加密的消息启用web浏览器(或其它客户端应用)与托管安全壳层实例1140的web服务器之间的交互(例如,全双工通信)。
图13图示了根据一个或多个实施例的用于用单次使用随机数令牌配置安全壳层实例的示例系统1300。作为预留和配置壳层实例的一部分,如上文参考图11-3更详细描述的,会话管理器服务120可以与示例系统1300的组成服务协调地执行一个或多个操作。
在一些实施例中,会话管理器服务可以从用户设备接收连接到安全壳层的请求(例如,操作1302),如上面参考授权和验证用户请求所描述的。响应于接收到用户请求,会话管理器服务120可以与卷管理器服务130协调地预留卷(例如,操作1304)。预留卷可以涉及以下步骤,包括但不限于由卷管理器服务130确定一个或多个块卷(例如,用户块卷1330)是否已经关联和/或指派给用户设备110的用户并可用于托管安全壳层实例1140(例如,操作1306)。这可以包括对照由卷管理器服务130管理的块卷的注册表检查用户标识符(例如,用户名或登录ID)。在识别出用户块卷1330的情况下,域标识符信息(例如,资源ID、数据中心基础设施定位符等)可以被返回给会话管理器服务120以指示该卷已被预留以托管安全壳层实例1140(例如,操作1308)。
卷管理器服务130可能发现用户块卷1330不可用于托管安全壳层实例1140。在一些实施例中,卷管理器服务可以预留空块卷1340,其可以包括在给定数据中心可用的可能尚未为其指派用户的块卷140中的一个或多个块卷。类似地,卷管理器服务130可以提供资源标识符信息以供会话管理器服务120在后续操作中实现。例如,会话管理器服务120可以在由卷管理器服务130返回的块卷140中分配实例(例如,操作1310)。
在一些实施例中,分配实例可以包括向实例管理器服务150提供域标识符。如参考图10更详细描述的,实例管理器服务150可以选择并预留现有实例,该现有实例作为可以被重新配置以用作安全壳层实例的多个可用实例的一部分被维护。实例管理器服务150可以向会话管理器服务120返回实例标识符(例如,实例ID),这可以允许会话管理器服务120在后续操作中识别所选择的实例。在一些实施例中,选择和预留现有实例,而不是在实现连接请求时创建和配置实例,可以潜在地减少处理连接请求的系统时延。
会话管理器服务120可以至少部分地通过安装配置文件来配置所选择的实例(例如,操作1312)。配置文件可以识别IaaS资源细节(例如,隔间、根隔间、域标识符等)和/或使用细节,以促进用户连接请求的完成。如上面参考图11更详细描述的,委托令牌可以由授权服务(例如,图11的授权服务1120)生成。在安全壳层实例1140上安装委托令牌可以允许用户设备110经由安全壳层实例1140直接访问IaaS系统资源,而无需针对每个资源和/或请求来向授权服务发出附加请求。
示例系统1300可以包括参考图12更详细描述的附加验证操作。例如,会话管理器服务120可以生成、签署随机数令牌(例如,临时JWT令牌)并将其存储在随机数和标识符存储库170中,作为实现单次使用随机数方法的一部分,作为随机数验证协议的一部分(例如,操作1314)。例如,随机数和标识符存储库170可以包含随机数表,该表包括随机数令牌的列表(例如,可以被用于跟踪随机数是否被发布和有效的随机数“密钥”序列)并且可以包括用于每个随机数的相关联的实例标识符信息,作为在实现一个或多个验证操作时将随机数令牌归于安全壳层实例1140的方法,如下文参考图14更详细描述的。由于在一些情况下随机数令牌可以是临时的,因此随机数表可以包括定时信息,包括但不限于发布时间、有效时段等。以这种方式,可以找到随机数令牌并确定其有效性,作为履行连接请求的一部分。在一些实施例中,在用户设备110连接到安全壳层实例1140之后(例如,图12的操作1214),可以从随机数和标识符存储库170中的随机数表中移除对应的随机数令牌。在此类情况下,会话管理器服务120可以允许随机数令牌是单次使用的,这可以降低对安全壳层实例1140的未授权访问的风险(例如,通过使用有效的随机数令牌“欺骗”)。
图14图示了根据一个或多个实施例的用于授权连接到安全壳层实例的用户设备的示例技术1400。结合上述系统,一个或多个访问控制操作可以作为在用户设备110和安全壳层实例1140之间创建安全连接的一部分来实现。参考管理安全壳层会话描述的操作可以包括参考前面的图描述的操作中的一个或多个,例如,使用用户ID登录控件、委托令牌和/或带有签名验证的经签署的随机数令牌。
在一些实施例中,会话管理器服务120接收创建安全壳层实例1140的经签署的请求,该请求由用户设备110创建和签署。如参考图11更详细描述的,该请求可以从GUI/CLI登录服务1120接收,该服务可以生成由用户设备110用来签署该请求的密钥对。
会话管理器服务120可以使用用户登录或IaaS ID认证来认证用户请求,如参考图11更详细描述的(例如,操作1410)。例如,用户的身份可以由授权服务(例如,授权服务1130)至少部分地通过结合数据中心标识符或其它IaaS资源访问参数授权用户名/密码来认证。授权服务可以生成登录令牌,该登录令牌包括由GUI/CLI登录服务1120生成的密钥对中的用户公钥。在使用授权服务的私钥签署登录令牌之后,授权服务可以向用户设备和/或GUI/CLI登录服务1120提供登录令牌。以这种方式,会话管理器服务120可以通过从授权服务请求授权服务公钥来认证来自用户设备110的经签署的请求和用户身份二者。在一些实施例中,会话管理器服务120还可以从登录令牌中提取用户公钥,并且可以使用用户公钥来核实经签署的请求上的签名。
在一些实施例中,会话管理器服务120可以授权安全壳层实例1140(例如,操作1420)。如参考图11更详细描述的,授权安全壳层实例1140可以包括从授权服务请求委托令牌。在一些情况下,响应于授权访问IaaS系统资源,可以至少部分地基于用户ID、实例标识符和请求是否已到期(例如,临时密钥对仍然有效和/或是否请求本身已到期)而发布委托令牌。接收委托令牌可以允许会话管理器服务120在安全壳层实例1140与用户设备110之间的安全连接已经建立之后就配置安全壳层实例1140以访问IaaS系统资源(例如,计算资源、核心服务、存储资源等),而无需进一步的认证和/或授权。
在一些实施例中,会话管理器服务120可以生成随机数令牌并将该随机数令牌以及其它信息提供给用户设备110和/或GUI/CLI登录服务1120。在一些实施例中,会话管理器服务120向安全壳层路由器1150提供经系统签署的随机数令牌。在一些实施例中,会话管理器服务向用户设备110提供经系统签署的随机数令牌,作为签名验证的一部分(例如,操作1430)。用户设备110可以签署经系统签署的随机数,从而生成经双重签署的随机数。在这样做时,会话管理器服务120还可以提供与用于签署经系统签署的随机数令牌的私钥相匹配的公钥。安全壳层路由器1150可以从用户设备110接收经用户签署的随机数令牌,并且可以验证签名以认证请求。在一些实施例中,验证签名可以包括使用用户公钥和系统公钥对经双重签署的随机数进行解密以分别核实用户签名和系统签名。验证可以包括将解密的随机数与例如存储在随机数令牌的数据库中(例如,图10的随机数和标识符存储库170)的系统生成的随机数进行比较。在一些实施例中,验证签名可以包括解密经用户签署的随机数令牌和经系统签署的随机数令牌并且比较包括在随机数令牌中的随机数串以确认匹配。
在示例中,安全壳层路由器1140在与会话管理器服务120连接并接收到随机数令牌时可以从随机数令牌中提取到期信息。随机数的生命周期可以是可配置的(例如,到期时间可以是五分钟或任何其它秒数、分钟数或小时数)。如果随机数令牌已到期,那么安全壳层路由器1150可以返回错误而不是建立安全连接。如果随机数令牌没有到期,安全壳层路由器1150可以核实随机数令牌(例如,通过签名验证),并且如果随机数令牌无效,那么安全壳层路由器1150可以返回相同的错误。在一些实施例中,安全壳层路由器1150可以使有效的随机数令牌失效以防止重用相同的随机数令牌。在三个访问控制操作成功结束之后,安全壳层路由器1150可以将用户设备110连接到安全壳层实例1140(例如,经由wss连接)。
图15图示了根据一个或多个实施例的示出用户设备通过其连接到安全壳层实例的示例数据流1500的序列图。用户设备110的用户通过GUI和/或CLI请求连接到安全壳层实例,并且会话管理器服务120协调IaaS资源、配置实例,并向安全壳层路由器1150提供随机数以用于验证用户设备110。
在数据流1500中,用户设备110(其可以是图10的用户设备110的示例)可以提交连接到安全壳层实例的请求。如参考图11更详细描述的,该请求可以通过GUI/CLI登录服务(例如,图11的GUI/CLI登录服务1110)提交并且可以由会话管理器服务120接收。该请求可以由GUI/CLI登录服务生成的公钥/私钥对中的私钥签署。密钥对可以是临时的,并且密钥对的有效性可以用作经签署的请求的验证参数之一,如参考上面的图14和下面的图16更详细描述的。
在接收到经签署的请求后,会话管理器服务120可以配置壳层实例,如参考上面的图更详细描述的。配置壳层实例可以包括多个操作,包括但不限于预留卷、从为配置安全壳层实例的目的而创建的多个可用实例中分配实例,以及在所分配的实例上安装配置文件(可以包括委托令牌)。如下面参考图16更详细描述的,可以包括一个或多个操作来认证用户身份并授权经由安全壳层实例访问IaaS系统资源。
配置壳层实例可以包括由会话管理器服务120从实例管理器服务接收壳层实例标识符(例如,IaaS资源标识符)。利用壳层实例标识符,会话管理器服务120可以生成随机数令牌,并且可以接收与安全壳层路由器1150(其可以是图11的安全壳层路由器1150的示例)对应的路由器地址。会话管理器服务120可以使用会话管理器服务120持有的公钥/私钥对中的私钥签署随机数令牌。会话管理器服务120可以向用户设备110提供经系统签署的随机数、壳层实例标识符和路由器地址(例如,经由GUI/CLI登录服务),这可以允许用户设备寻址到安全壳层路由器1150,作为连接到安全壳层实例的一部分。在一些实施例中,会话管理器服务120可以向用户设备110提供未经签署的随机数令牌。在此类情况下,会话管理器服务120可以签署随机数令牌以生成经系统签署的随机数令牌。
在从会话管理器服务120接收到这些信息(例如,随机数令牌、壳层实例标识符和路由器地址)后,用户设备110可以签署随机数令牌(例如,使用用于签署请求的密钥对中的私钥)。然后,用户设备110可以连接到安全壳层路由器1150(例如,在路由器地址处),并且可以提供经用户签署的随机数令牌和壳层实例标识符。在一些实施例中,经用户签署的随机数令牌包括用户签名和系统签名二者,从而允许使用单个经双重签署的随机数令牌对用户设备110和会话管理器服务120二者进行签名验证。
为了验证从用户设备110接收的请求,安全壳层路由器1150可以从会话管理器服务120请求与该请求相关联的壳层标识符和经系统签署的随机数。作为响应,会话管理器服务120可以向安全壳层路由器1150提供壳层实例标识符和经系统签署的随机数。在一些实施例中,当会话管理器服务120向用户设备110提供经系统签署的随机数时,安全壳层路由器1150可以不从会话管理器服务120请求经系统签署的随机数。
如参考图14更详细描述的,安全壳层路由器可以通过使用用户公钥和系统公钥解密经签署的随机数令牌来检查签名。验证还可以包括比较从用户设备110和会话管理器服务120两者接收的壳层实例标识符。
在验证签名后,安全壳层路由器1150可以通过加密连接(例如,wss连接)将用户设备110连接到安全壳层实例(例如,图11的安全壳层实例1140)。在一些实施例中,当会话管理器服务120将随机数令牌和对应的壳层实例标识符存储在数据存储库中时,例如,在验证经签署的随机数令牌并将用户设备110连接到安全壳层实例之后,会话管理器服务120或安全壳层路由器1150可以从数据存储库中移除用于该随机数令牌的条目。
图16图示了根据一个或多个实施例的示出用户设备通过其使用授权服务1130连接到安全壳层实例的示例数据流1600的序列图。授权服务1130可以包括但不限于可以被用于授权访问IaaS资源的一般用户身份授权服务,例如,通过授权登录凭证。授权服务1130的参与可以包括一个或多个初步身份核实和访问授权操作,如上面参考图14更详细描述的。
在数据流1600中,会话管理器服务120从用户设备110接收经签署的请求,如参考前面的图所描述的。在接收到经签署的请求后,会话管理器服务120可以从授权服务请求授权服务公钥。授权服务公钥可以被用于解密与经签署的请求一起接收的登录令牌(例如,登录令牌可以已经由与对应公钥配对的授权服务私钥签署),以识别用户标识符信息(例如,用户名/密码组合、请求标识符信息等)。授权服务1130可以向会话管理器服务120提供公钥,会话管理器服务120然后可以使用来自登录令牌的标识符信息来请求对用户身份的认证。授权服务1130可以确认用户身份。
在接收到用户设备110的身份的认证后,会话管理器服务120可以从授权服务1130请求委托令牌。委托令牌,如参考图11更详细描述的,可以由会话管理器服务用于指示用户设备已经被授权经由已被配置为履行经签署的请求的安全壳层实例连接到IaaS系统资源。授权用户经由安全壳层连接到IaaS系统资源可以包括提供包括在经签署的请求中的IaaS资源信息,使得授权服务1130可以确定用户设备110是否被授权连接到所请求的特定资源。
在授权用户设备110后,授权服务1130可以生成委托令牌并将其提供给会话管理器服务120。会话管理器服务120可以将委托令牌安装在安全壳层实例(例如,图11的安全壳层实例1140)上。配置安全壳层实例可以包括附加的和/或替代的操作,如上所述。
如参考图15所述,会话管理器服务120可以生成随机数令牌,使用会话管理器服务120的公钥/私钥对的系统私钥签署随机数令牌以生成经签署的随机数令牌,并向用户设备110提供经签署的随机数令牌连同壳层实例标识符和与安全壳层路由器1150(例如,“路由器端点”)对应的路由器地址。用户设备110可以签署经系统签署的随机数令牌并将包括经用户签署的随机数令牌的请求(例如,建立WebSocket Secure或“wss”连接的请求)发送到安全壳层路由器,作为验证过程的一部分。也由会话管理器服务签署的经用户签署的随机数可以被安全壳层路由器1150用来验证请求。在一些实施例中,如参考图15更详细描述的,会话管理器服务120可以向用户设备110发送未经签署的随机数,使得经用户签署的随机数和经系统签署的随机数二者被提供给安全壳层路由器1150以供验证。
安全壳层路由器1150可以验证签名,如上面参考图15更详细描述的。在验证系统和用户签名并认证随机数令牌和壳层实例标识符后,安全壳层路由器可以将用户设备连接到安全壳层实例。
图17图示了根据一个或多个实施例的用于管理安全壳层会话的示例流程1700。该流程的操作可以被实现为硬件电路系统和/或存储为计算机系统的非暂态计算机可读介质上的计算机可读指令,诸如图10的会话管理器服务120。如所实现的,指令表示包括电路系统或可由计算机系统的(一个或多个)处理器执行的代码的模块。此类指令的执行将计算机系统配置为执行本文描述的特定操作。每个电路系统或代码与处理器结合执行(一个或多个)相应的操作。虽然以特定次序描述操作,但应当理解的是,不需要特定次序并且可以省略、跳过和/或重新排序一个或多个操作。
在示例中,流程1700包括操作1702,其中计算机系统接收将用户设备(例如,图10的用户设备110)连接到安全壳层实例(例如,图11的安全壳层实例1140)的请求。如参考图11和图15更详细描述的,该请求可以是由用户设备和/或由登录服务(例如,图11的GUI/CLI登录服务1110)生成的经签署的请求,并且被提供给会话管理器服务以供实现。该请求可以由GUI/CLI登录服务所生成的私钥签署,并且可以被用于认证用户设备的身份,如参考图11和图16更详细描述的。
在示例中,流程1700包括操作1704,其中计算机系统授权用户设备访问安全壳层实例。如参考图18更详细描述的,授权用户设备可以包括涉及外部授权服务(例如,图11的授权服务1130)的一个或多个操作。授权服务可以提供用户的认证(例如,通过验证用户标识符,诸如用户名/密码),并且可以授权访问请求中描述的IaaS资源。
在示例中,流程1700包括操作1706,其中计算机系统配置由安全壳层实例的壳层标识符描述的安全壳层实例。在一些实施例中,配置安全壳层实例可以包括但不限于预留块卷、在块卷中分配实例以及在实例上安装配置文件和委托令牌。可选地,预留块卷可以包括检查用户设备是已经与块卷(例如,图13的用户块卷1330)相关联还是尚未与块卷相关联,在尚未与块卷相关联的情况下,可以预留空块卷(例如,图13的空块卷1340)。可选地,分配实例可以包括从多个可用实例中选择实例。例如,用一个或多个默认配置(其可以通过安装配置文件重新配置)维护多个可用实例,可以允许会话管理器服务更快速地(即,以更低的时延)响应请求。在一些实施例中,预留块卷和分配实例可以包括与卷管理器服务(例如,图10的卷管理器服务130)和实例管理器服务(例如,图10的实例管理器服务150)通信。
在示例中,流程1700包括操作1708,其中计算机系统生成随机数令牌。随机数令牌可以是包括一种或多种类型信息的web令牌(例如,JSON Web令牌或JWT令牌)。可选地,随机数令牌包括密钥序列,该密钥序列可以被用于跟踪随机数是否有效以供使用。例如,会话管理器服务可以将随机数令牌存储在数据存储库(例如,图10的随机数和标识符存储库1070)中。在一些实施例中,随机数令牌包括可以被用于验证该请求的字母和/或数字的随机序列(例如,17个字母数字字符)。
在示例中,流程1700包括操作1710,其中计算机系统签署随机数令牌以生成经签署的随机数令牌。如参考图12更详细描述的,系统可以使用公钥/私钥对中的私钥来签署随机数令牌(例如,非对称加密)。以这种方式,经签署的随机数令牌可以在传输到用户设备(例如,图10的用户设备1010)时被加密。
在示例中,流程1700包括操作1712,其中计算机系统向用户设备提供经签署的随机数令牌、壳层标识符和路由器地址。如参考图15更详细描述的,用户设备可以向安全壳层路由器(例如,图11的安全壳层路由器1150)发送安全连接请求(例如,WSS连接请求)。用户设备可以用私钥(例如,用于签署请求的相同密钥)签署随机数令牌,并且可以将与该私钥配对的公钥提供给路由器地址处的安全壳层路由器。作为连接请求的一部分,用户设备还可以向安全壳层路由器提供壳层标识符。可选地,计算机系统可以向路由器地址处的安全壳层路由器提供壳层标识符,作为由安全壳层路由器实现的附加验证参数。
图18图示了根据一个或多个实施例的用于用单次使用的随机数令牌配置安全壳层实例的示例流程1800。该流程的操作可以被实现为硬件电路系统和/或存储为计算机系统的非暂态计算机可读介质上的计算机可读指令,诸如图10的会话管理器服务系统1020。如所实现的,指令表示包括电路系统或可由计算机系统的(一个或多个)处理器执行的代码的模块。此类指令的执行将计算机系统配置为执行本文描述的特定操作。每个电路系统或代码与处理器结合执行(一个或多个)相应的操作。虽然以特定次序描述操作,但应当理解的是,不需要特定次序并且可以省略、跳过和/或重新排序一个或多个操作。
在示例中,流程1800在图17的操作1702之后开始,其中计算机系统从用户设备接收创建安全壳层实例的请求。特别地,计算机系统(例如,图10的会话管理器服务1020)可以执行一个或多个操作来认证和/或授权从其接收请求的用户设备,与授权服务通信(例如,图11的授权服务1130),作为使会话管理器服务能够继续执行图17中描述的操作的一部分。
在示例中,流程1800包括操作1804,其中计算机系统接收包括用户标识符的登录令牌。如参考图16更详细描述的,会话管理器服务可以请求授权服务来认证用户设备的身份(例如,如经签署的请求中所表示的),并授权用户设备访问请求中识别出的IaaS资源。作为认证用户身份的一部分,会话管理器服务可以从用户设备接收登录令牌。登录令牌可以包括用户信息(例如,用户名/密码、登录凭证、登录会话的到期信息等)以及与被用户设备用于签署请求和/或随机数令牌的用户私钥相配对的用户公钥。登录令牌可以由授权服务持有的私钥签署。
在示例中,流程1800包括操作1806,其中计算机系统从授权服务请求公钥。可以提供用于签署登录令牌的公钥。会话管理器服务可以从授权服务请求公钥来解密登录令牌,作为对用户设备进行认证的一部分。例如,登录令牌可以提供用于认证用户设备的用户标识符信息(例如,设备标识符或会话标识符信息)。
在示例中,流程1800包括操作1808,其中计算机系统认证用户设备。在一些实施例中,会话管理器服务可以从登录令牌中提取用户标识符信息,并且可以将用户标识符信息与随请求一起提供的信息进行比较。
在示例中,流程1800包括操作1810,其中计算机系统请求委托令牌。如参考图11更详细描述的,委托令牌可以由授权服务生成,并在用户设备已被授权访问连接到安全壳层实例的用户请求中识别出的IaaS资源之后被提供给会话管理器服务。例如,会话管理器服务可以至少部分地基于授权服务可以确定是否将生成委托令牌来提供用户标识符信息、实例标识符信息、到期信息等。
在示例中,流程1800包括操作1812,其中计算机系统接收委托令牌。会话管理器服务可以使用委托令牌允许安全壳层路由器授权用户设备访问IaaS资源而无需授权服务的附加授权,例如,通过在安全壳层实例上安装委托令牌这样做,例如,作为配置安全壳层实例的一部分,如上面参考图11更详细描述的那样。
以下条款描述所公开的实施方式的实施例:
条款1.一种方法,包括:
由会话管理器服务接收将用户设备连接到安全壳层实例的安全连接的请求;
由会话管理器服务授权用户设备;
由会话管理器服务配置由安全壳层实例的壳层标识符描述的安全壳层实例;
由会话管理器服务生成随机数令牌;
由会话管理器服务签署随机数令牌以生成经签署的随机数令牌;以及
由会话管理器服务向用户设备提供经签署的随机数令牌、壳层标识符和路由器地址。
条款2.如条款1所述的方法,其中授权用户设备包括:
从用户设备接收包括用户标识符的登录令牌;
从授权服务请求授权系统公钥;
至少部分基于用授权系统公钥解密登录令牌来认证用户设备;
至少部分地通过提供用户标识符、请求中识别出的资源的资源标识符和请求的到期时间来从授权服务请求委托令牌;以及
从授权服务接收委托令牌,其中授权服务被配置为在授权在到期时间内访问请求中识别出的资源时生成委托令牌。
条款3.如条款1所述的方法,其中签署随机数令牌包括:
使用由会话管理器服务持有的公钥/私钥对中的系统私钥签署随机数令牌;以及
将公钥/私钥对中的系统公钥提供给路由器地址处的安全壳层路由器。
条款4.如条款1所述的方法,还包括:
将随机数令牌存储在数据存储库中,其中随机数令牌包括密钥序列;以及
至少部分地基于在数据存储库搜索密钥序列来确定随机数令牌是否有效;以及
在安全壳层路由器在用户设备和安全壳层实例之间建立安全连接之后从数据存储库中移除随机数令牌。
条款5.如条款1所述的方法,还包括:
在一段时间不活动或用户设备终止安全连接之后终止安全壳层实例。
条款6.如条款1所述的方法,其中配置安全壳层实例包括:
预留块卷;
接收与块卷对应的域标识符;
使用域标识符在块卷上分配实例,该实例是从多个可用实例中分配的;
接收与实例对应的壳层标识符;以及
在实例上安装配置文件,该配置文件包括请求中包括的请求信息。
条款7.如条款1所述的方法,其中安全壳层实例运行docker容器,使得所述请求包括在docker容器上执行终端的指令。
条款8.一种计算机系统,包括:
一个或多个处理器;
与一个或多个处理器通信的存储器,该存储器被配置为存储计算机可执行指令,其中执行计算机可执行指令使一个或多个处理器执行以下步骤,包括:
由会话管理器服务接收将用户设备连接到安全壳层实例的安全连接的请求;
由会话管理器服务授权用户设备;
由会话管理器服务配置由安全壳层实例的壳层标识符描述的安全壳层实例;
由会话管理器服务生成随机数令牌;
由会话管理器服务签署随机数令牌以生成经签署的随机数令牌;以及
由会话管理器服务向用户设备提供经签署的随机数令牌、壳层标识符和路由器地址。
条款9.条款8的系统,其中授权用户设备包括:
从用户设备接收包括用户标识符的登录令牌;
从授权服务请求授权系统公钥;
至少部分基于用授权系统公钥解密登录令牌来认证用户设备;
至少部分地通过提供用户标识符、请求中识别出的资源的资源标识符和请求的到期时间来从授权服务请求委托令牌;以及
从授权服务接收委托令牌,其中授权服务被配置为在授权在到期时间内访问请求中识别出的资源时生成委托令牌。
条款10.条款8的系统,其中签署随机数令牌包括:
使用由会话管理器服务持有的公钥/私钥对中的系统私钥签署随机数令牌;以及
将公钥/私钥对中的系统公钥提供给路由器地址处的安全壳层路由器。
条款11.条款8的系统,其中计算机可执行指令在被执行时还使计算机系统的一个或多个处理器执行步骤,包括:
将随机数令牌存储在数据存储库中,其中随机数令牌包括密钥序列;以及
至少部分地基于在数据存储库搜索密钥序列来确定随机数令牌是否有效;以及
在安全壳层路由器在用户设备和安全壳层实例之间建立安全连接之后从数据存储库中移除随机数令牌。
条款12.条款8的系统,其中计算机可执行指令在被执行时还使计算机系统的一个或多个处理器执行步骤,包括:
在一段时间不活动或用户设备终止安全连接之后终止安全壳层实例。
条款13.条款8的系统,其中配置安全壳层实例包括:
预留块卷;
接收与块卷对应的域标识符;
使用域标识符在块卷上分配实例,该实例是从多个可用实例中分配的;
接收与实例对应的壳层标识符;以及
在实例上安装配置文件,该配置文件包括请求中包括的请求信息。
条款14.条款8的系统,其中安全壳层实例运行docker容器,使得所述请求包括在docker容器上执行终端的指令。
条款15.一种非暂态计算机可读存储介质,其存储计算机可执行指令,指令在被执行时使计算机系统的一个或多个处理器执行步骤,包括:
由会话管理器服务接收将用户设备连接到安全壳层实例的安全连接的请求;
由会话管理器服务授权用户设备;
由会话管理器服务配置由安全壳层实例的壳层标识符描述的安全壳层实例;
由会话管理器服务生成随机数令牌;
由会话管理器服务签署随机数令牌以生成经签署的随机数令牌;以及
由会话管理器服务向用户设备提供经签署的随机数令牌、壳层标识符和路由器地址。
条款16.条款15的非暂态计算机可读存储介质,其中授权用户设备包括:
从用户设备接收包括用户标识符的登录令牌;
从授权服务请求授权系统公钥;
至少部分基于用授权系统公钥解密登录令牌来认证用户设备;
至少部分地通过提供用户标识符、请求中识别出的资源的资源标识符和请求的到期时间来从授权服务请求委托令牌;以及
从授权服务接收委托令牌,其中授权服务被配置为在授权在到期时间内访问请求中识别出的资源时生成委托令牌。
条款17.条款15的非暂态计算机可读存储介质,其中签署随机数令牌包括:
使用由会话管理器服务持有的公钥/私钥对中的系统私钥签署随机数令牌;以及
将公钥/私钥对中的系统公钥提供给路由器地址处的安全壳层路由器。
条款18.条款15的非暂态计算机可读存储介质,其中计算机可执行指令在被执行时还使计算机系统的一个或多个处理器执行步骤,包括:
将随机数令牌存储在数据存储库中,其中随机数令牌包括密钥序列;以及
至少部分地基于在数据存储库搜索密钥序列来确定随机数令牌是否有效;以及
在安全壳层路由器在用户设备和安全壳层实例之间建立安全连接之后从数据存储库中移除随机数令牌。
条款19.条款15的非暂态计算机可读存储介质,其中计算机可执行指令在被执行时还使计算机系统的一个或多个处理器执行步骤,包括:
在一段时间不活动或用户设备终止安全连接之后终止安全壳层实例。
条款20.条款15的非暂态计算机可读存储介质,其中配置安全壳层实例包括:
预留块卷;
接收与块卷对应的域标识符;
使用域标识符在块卷上分配实例,该实例是从多个可用实例中分配的;
接收与实例对应的壳层标识符;以及
在实例上安装配置文件,该配置文件包括请求中包括的请求信息。
为云壳层使用多个网络接口的技术
基于云的平台为用户提供可扩展且灵活的计算资源。此类基于云的平台,也称为基础设施即服务(IaaS),可以围绕客户的数据提供整套云解决方案,例如,用于创作变换、加载数据和呈现数据的解决方案。IaaS资源的用户可以请求在安全壳层实例(例如,运行在虚拟云网络(VCN)上的虚拟机)中创建安全终端,以便安全地执行操作和数据传送(例如,经由WebSocket安全(wss)连接进行双向加密)。
安全通信的一方面可以包括控制去往和来自安全壳层实例的网络流量。网络流量控制可以包括将安全壳层实例与一个或多个IaaS服务(例如,核心云服务)隔离开来的一种或多种技术和/或方法,这些服务可能与多个实例通信并且可以有权访问和/或控制IaaS系统的数据和计算资源。网络流量控制可以包括对进入和离开安全壳层实例的网络通信实现方向性限制。这些方向性限制进而会阻止来自外部系统的一些入站流量,并阻止到IaaS服务的出站流量。隔离安全壳层实例可以包括实现多个虚拟云网络,例如,将核心IaaS服务与安全壳层实例隔离,两者都与网络通信服务隔离。
作为说明性示例,用户可以通过用户设备(例如,使用浏览器的图形用户界面和/或命令行界面)向安全壳层实例提交命令。安全壳层实例可以配置有主虚拟网络接口卡(vNIC),一个或多个安全规则可以将主vNIC定义为仅入口(相对于到安全壳层实例的入站网络流量而言是单向的)。该命令可以使安全壳层实例生成输出,该输出可以包括将输出发送到外部地址(例如,通过互联网)的指令。安全壳层实例可以经由辅助vNIC而不是主vNIC发送该输出。与主vNIC类似,辅助vNIC可以配置安全规则,这些安全规则将通过辅助vNIC的网络流量限制为仅出口(相对于来自安全壳层实例的出站流量而言是单向的)。以这种方式,经授权的网络流量可以经由主vNIC到达安全壳层实例,并且可以经由辅助vNIC离开安全壳层实例。此外,安全壳层实例可以在计算隔离VCN上运行,与可以分别运行IaaS服务和网络通信服务的服务VCN和网络隔离VCN二者相隔离。
这种布置可以为安全壳层实例和IaaS系统作为整体提供改进的安全性。在某种程度上,可以产生改进的安全性,因为安全壳层实例可以在其经由主vNIC向服务VCN发送消息的能力方面受到限制,并且可以在其经由网络隔离VCN和辅助vNIC从外部网络接收消息的能力方面受到限制。以这种方式,来自互联网(或其它网络)的未授权的网络流量可能无法访问安全壳层实例,并且安全壳层实例可能无法在未经授权的情况下访问核心IaaS资源。
图19图示了根据一个或多个实施例的将多个网络接口用于安全壳层实例的示例技术1900。虚拟云网络之间通信的方向性控制可以提供构成IaaS资源的改进的安全性,并且可以限制和/或防止安全风险到达核心IaaS资源。为此,示例技术1900可以包括使用一个或多个系统组件来控制系统通信流的多种方法,这些系统组件可以被实现为分布式计算系统(例如,云网络)中的虚拟系统。在一些实施例中,这些方法可以被实现以控制与安全壳层实例1950的通信的起点和/或目的地,安全壳层实例1950可以是在虚拟云网络(VCN)上运行的虚拟机(VM)的示例。在一些实施例中,安全壳层实例经由一个或多个虚拟网络接口卡(vNIC)与分布式计算系统的其它组件(例如,路由器、子网等)通信,如下面参考图20更详细描述的。
在一些实施例中,示例技术1900包括接收执行操作的命令(例如,操作1902)。在一些实施例中,该命令是从用户设备1920生成和/或发送的。用户设备1920可以包括被配置为访问网络(例如,互联网和/或专用网络)的任何形式的电子设备,诸如个人计算机、数字工作站、平板电脑、智能电话等。命令可以包括由用户设备1920的用户生成的任何类型的指令(例如,经由IaaS提供商的浏览器界面)。例如,命令可以包括计算任务、存储任务(例如,输入-输出操作、移动存储的数据、数据变换等)、配置任务(例如,访问安全壳层实例1950的操作参数的命令)等。在一些实施例中,用户设备1920可以与系统服务(例如,浏览器界面和/或命令行界面服务)通信,该系统服务将命令引导至适当的子系统和/或云网络资源。这种布置可以提供网络隔离和/或通过网络隔离提供改进的系统安全性。例如,在与IaaS服务的租赁不同的租赁上的VCN中使用辅助vNIC可以允许用户传出网络流量是可识别的(例如,源IP地址可以来自与IaaS服务不同的IP地址池),如下面参考图20更详细描述的。
在一些实施例中,在操作1902中接收到的命令被发送到云壳层路由器1930。云壳层路由器可以是在虚拟云网络中实现的虚拟路由器,如下面参考图20更详细描述的。云壳层路由器1930可以朝着适当的地址(例如,安全壳层实例1950)传输命令(例如,操作1904),这可以在单独的虚拟云网络中实现。在一些实施例中,在不同的虚拟云网络中实现执行示例技术1900的不同操作的单独的子系统可以为核心云资源和/或用户数据提供改进的安全性。在一些实施例中,云壳层路由器1930可以经由主虚拟网络访问卡1940(vNIC)与安全壳层实例1950通信。在一些实施例中,主vNIC 1940可以表示用于其上实现安全壳层实例1950的虚拟机的网络接口配置。因此,主vNIC 1940可以配置有一个或多个操作参数(例如,MAC地址)以及安全规则,这些参数可以允许主vNIC 1940选择性地将通信路由到安全壳层和/或从安全壳层实例1950路由,如下面参考附图更详细描述的。
在一些实施例中,安全壳层实例1950可以执行命令中指示的操作(例如,操作1906)。如上所述,安全壳层实例1950可以是虚拟机(VM),该虚拟机被配置为执行一种或多种类型的操作,包括数据库操作、计算操作等。例如,安全壳层实例1950可以执行修改分布式计算机系统的隔间中用户IaaS资源和/或数据的一个或多个方面(例如,将存储在一个数据中心中的数据移动到另一个数据中心,通过公共网络将数据发送到外部服务器等)的命令。
在一些实施例中,作为执行包括在命令中的操作的结果,安全壳层实例1950可以生成返回消息(例如,操作1908)。返回消息可以旨在用于用户设备1920的用户和/或用户设备1920,而不是用于核心IaaS服务或(例如,在公共网络或私有网络上的)外部服务器。在一些实施例中,可以生成返回消息以提供参考由安全壳层实例1950执行的操作的结果信息。例如,安全壳层实例1950可以生成指示操作是成功完成、中止、失败还是重新调度等的返回消息。返回消息可以包括状态信息以及所请求的特定数据(例如,校验位、存储器位置等),作为返回消息的一部分。
在一些实施例中,安全壳层实例1950可以将返回消息传输到云壳层路由器1930(例如,操作1910)。安全壳层实例1950可以经由主vNIC 1940传输返回消息。如下文参考图20更详细描述的,主vNIC 1940可以被配置为向云壳层路由器1930传输返回消息,但是拒绝从安全壳层实例1950接收的其它类型的消息。
在一些实施例中,安全壳层实例1950可以生成操作的输出(例如,操作1912)。操作的输出可以包括但不限于通过网络(例如,公共网络和/或私有网络)到与安全壳层实例1950通信的外部系统的通信、数据和/或指令。例如,当包括在来自用户设备1920的命令中的操作包括通过外部网络传送数据时,可以指示安全壳层实例1950生成输出。在传送数据的情况下,安全壳层实例1950可以经由IaaS系统的内部网络向IaaS系统的数据管理服务发送指令。
作为执行命令的一部分,例如,当命令是要向外部服务器传送数据或发送消息时,安全壳层实例1950可以向壳层子网1970传输包括操作的输出的消息(例如,操作1914)。安全壳层实例1950可以经由辅助vNIC 1960与壳层子网1970通信。与主vNIC 1940一样,辅助vNIC 1960可以配置有一个或多个操作参数(例如,不同的MAC地址)和输入-输出参数(例如,安全规则),用于控制到安全壳层实例1940的数据和消息流。如下面参考图20更详细描述的,辅助vNIC 1960可以被配置为单向的,从而仅允许从安全壳层实例1950到壳层子网1970的传出消息(例如,仅出口配置)。在一些实施例中,用于辅助vNIC 1960的单向、仅出口配置可以允许安全壳层实例1950以改进的安全性运行,以抵抗由于非用户设备的渗透和/或未经授权访问的干扰造成的外部风险。
在一些实施例中,壳层子网1970可以将操作的输出传输到外部网络1980(例如,操作1916)。在一些实施例中,外部网络1980是公共网络。在一些情况下,将安全壳层实例1950和/或壳层子网1970连接到公共网络会引入安全风险,因为恶意系统可能试图访问安全壳层实例1950和/或核心云资源。例如,采用安全壳层实例1950可以提供对核心云资源的访问权限,而核心云资源进而可以为云服务区域中的多个用户授予对用户数据的访问权。为此,壳层子网1970可以经由网络地址变换(NAT)网关与外部网络1980通信,如下面参考图20更详细描述的。
因此,示例技术1900演示了如何管理用户设备1920、安全壳层实例1950和外部网络1980之间的通信,以潜在地降低由于将安全壳层实例连接到外部网络1980而呈现的安全性威胁的风险。在一些实施例中,示例技术1900为一些类型的信息提供消息的单向传输,同时允许将返回消息从安全壳层实例1950传递回用户设备1920。实现此类控制可以为安全壳层实例1950可以访问的所存储的用户数据提供改进的安全性,并且可以将安全壳层实例1950与核心云服务隔离。
图20图示了根据一个或多个实施例的将多个网络接口用于管理安全壳层实例的通信的示例系统2000。上面参考图19描述的各种操作可以由示例系统2000实现,示例系统2000可以包括一个或多个附加特征以潜在地改进安全壳层实例1950和核心云资源的安全性。
在一些实施例中,云壳层路由器1930、安全壳层实例1950和壳层子网1970可以被实现为单独的虚拟云网络(VCN)中的虚拟系统。此外,单独的VCN可以在多个根隔间(也称为“租赁”)中实现。如图20中所示,云壳层路由器1930在服务VCN 2010中实现,安全壳层实例1950在计算隔离VCN 2020中实现,两者都在私有根隔间2030中。相比之下,壳层子网1970可以在公共根隔间2050中的网络隔离VCN 2040中实现。一般而言,私有根隔间2030和公共根隔间2050可以构成在IaaS系统中实现的数据和计算资源的不同和/或独立的逻辑容器,使得私有根隔间2030中的系统资源不能被公共根隔间2050的资源访问。私有根隔间2030和公共根隔间2050可以与不同且可区分的IP地址块相关联,这可以允许确定来自IaaS系统的的消息的起点是来自公共根隔间2050还是私有根隔间2030。
在一些实施例中,公共根隔间2050和在公共根隔间2050内实现的组成系统(例如,网络隔离VCN 2040中的壳层子网1970)可以被指派来自用用户输出操作(例如,图19中操作1916的消息)所识别出的IP地址块中的IP地址。相比之下,私有根隔间2030和在私有根隔间内实现的组成系统(例如,服务VCN 2010中的云壳层路由器1930)可以被指派来自用IaaS系统通信操作(例如,与诸如外部网络1980之类的外部网络通信)识别出的IP地址块中的IP地址。使用分开的IP地址块(通过它可以将通信的起点归于IaaS系统本身或IaaS系统的用户)可以改进整个IaaS网络的安全性(例如,跨多个数据中心、区域等)。例如,一些IaaS系统可以在区域中的多个数据中心(也称为域)中实现,并且全局IaaS系统可以包括通过私有和/或公共网络彼此通信的多个区域。区分用户-源通信与系统源通信可以降低大规模系统流量类型攻击(例如,分布式拒绝服务或DDOS攻击)到达核心服务的风险。
作为说明性示例,来自壳层子网1970的通信可以通过壳层子网1970的IP地址而归于用户设备1920的用户(虽然可能是匿名的)。因此,来自壳层子网1970的声称源自IaaS系统的核心云服务的消息可以在接收点被拒绝,例如因为源IP地址和源标识符(例如,用户名)不匹配。在另一个示例中,将传出用户流量隔离到公共根隔间可以提供改进的取证信息以确定渗透到IaaS系统中的来源。例如,通过将源的IP地址追踪到公共根隔间2050,调查可以能够识别被危及的用户实例,并且可能潜在地揭示核心IaaS服务未被危及。
在一些实施例中,用户设备1920(例如,执行安全壳层客户端的浏览器和/或命令行界面)可以与云壳层路由器1930连接。用户设备1920可以通过外部网络1980(例如,公共网络)连接到云壳层路由器。外部网络1980可以包括例如互联网、加密网络等。用户设备1920可以经由互联网网关2060(例如,“NET”网关)与云壳层路由器1930通信。互联网网关2060可以是添加到服务VCN 2010的虚拟路由器,以便为服务VCN 2010与外部网络1980之间的网络流量提供路径。
在一些实施例中,服务VCN 2010还实现附加的IaaS核心服务,包括但不限于安全会话管理器服务、卷管理器服务实例管理器服务和/或web服务器,它们可以促进安全壳层实例1950及其相关联数据(例如,块卷、对象存储等)的创建、管理、终止和清理。
在一些实施例中,安全壳层实例1950经由主虚拟网络接口卡(vNIC)1940与云壳层路由器1930通信。vNIC可以使实例能够连接到VCN,并且可以确定该实例如何与VCN内外的其它系统连接。如上面参考图19所述,主vNIC 1940可以被配置为管理云壳层路由器与安全壳层实例1950之间的流量(例如,使用安全规则)。
安全规则可以指定允许进出主vNIC 1940的入口或出口流量的类型。例如,主vNIC1940可以被配置为接受从云壳层路由器1930到安全壳层实例1950的信号,但是拒绝来自安全壳层实例1950的输出消息。在一些实施例中,主vNIC 1940可以接受来自安全壳层实例1950的寻址到用户设备1920的返回消息,例如,作为对包括在来自用户设备1920的消息中的对返回消息的请求的响应。主vNIC 1940可以附加到安全壳层实例1950,并且安全规则(例如,入口/出口控制)可以是在启动时安全壳层实例1950的配置的一部分和/或作为安全壳层实例1950的默认特征。
在一些实施例中,安全壳层实例1950可以是虚拟机(例如,在物理主机计算机内运行的完整计算机的基于软件的仿真,也称为“VM”),其专门用于用户设备1920的用户,具有由服务VCN2010的组成子系统(例如,会话管理器服务)提供的配置文件。在一些实施例中,安全壳层实例1950可以选自实例池2022,实例池2022包含配置有默认参数的一个或多个预先创建的实例。默认参数可以包括为主vNIC 1940定义流量管理规则的安全规则。
在一些实施例中,安全壳层实例1950包括辅助vNIC 1960。辅助vNIC 1960可以在配置来自实例池2022的预先创建的实例期间被附加到安全壳层实例1950。可替代地,在实例池2022中预先创建的实例可以被预先配置为包括辅助vNIC 1960。在一些实施例中,辅助vNIC包括仅出口安全规则(例如,对流量流的控制以将通信限制到从安全壳层实例1950到壳层子网1970的仅单个方向)。如下面参考附图更详细描述的。如上所述,以这种方式限制网络流量可以为安全壳层实例1950和服务VCN 2010提供附加的和/或改进的安全性。
在一些实施例中,壳层子网1970可以被配置为经由在网络隔离VCN 2040中实现的一个或多个虚拟路由器与外部网络1980和/或私有IaaS网络2082通信。在一些实施例中,壳层子网1970可以使用网络地址变换(NAT)网关2070将经由辅助vNIC 1960从安全壳层实例1950接收的输出流量发送到外部网络1980。NAT网关2070可以是被配置为执行网络地址变换的虚拟路由器。NAT网关可以让没有公共IP地址的云资源访问互联网,而不会将这些资源暴露给传入的互联网连接。例如,安全壳层实例1950和壳层子网1970可能无法访问外部网络1980,作为潜在降低恶意攻击渗透风险的安全措施。在此类情况下,NAT网关2070可以使用未直接用安全壳层实例1950或壳层子网1970识别出的IP地址(例如,来自可归于公共根隔间2050的公共IP地址块)提供到互联网的连接。
在一些实施例中,来自安全壳层实例1950的涉及对核心IaaS资源的请求的输出可以由壳层子网1970路由到服务(SVC)网关2072。服务网关2072可以是附接到网络隔离VCN2040的虚拟路由器,这可以使VCN主机能够私有地访问IaaS服务(诸如数据库资源、对象存储、元数据管理等),而无需将VCN主机或IaaS暴露于公共互联网。因此,服务网关2072可以允许壳层子网1970通过被配置为与该区域和/或其它区域中的IaaS核心服务通信的内部网络2082(例如,“私有网络”)发送输出流量。
图21图示了根据一个或多个实施例的用于由安全壳层实例使用多个网络接口进行单向通信的示例技术2100。安全壳层实例1950的配置可以包括向安全壳层实例1950添加一个或多个附加虚拟网络接口卡(vNIC)。vNIC可以允许安全壳层实例1950经由如下通信路径发送输出消息,该通信路径可以与被用于从用户设备(例如,图19的用户设备1920)接收指令和/或命令的通信路径不同。在一些实施例中,vNIC可以配置有安全规则以定义与安全壳层实例1950的通信的方向性控制,如下文更详细描述的。
如参考图20更详细描述的,主vNIC 1940可以被配置为促进安全壳层实例1950与云壳层路由器1930之间的通信。在一些实施例中,安全壳层实例1950可以在计算隔离虚拟云网络(VCN)中运行,而云壳层路由器1930可以在服务VCN中运行。在一些实施例中,安全壳层实例1950可以包括主vNIC 1940,作为默认配置。在一些实施例中,主vNIC 1940可以配置有安全规则,这些安全规则定义关于与安全壳层实例1950的通信的仅入口限制。仅入口限制可以限制安全壳层实例1950可以接收的通信的类型,和/或可以限制安全壳层实例1950可以从其接收通信的来源。
在一些实施例中,主vNIC 1940可以被配置为允许来自核心云资源(例如,白名单IaaS系统组件)的传入通信。例如,云壳层路由器1930可以将此命令传输到安全壳层实例1950(例如,操作2110)。安全壳层实例1950可以经由主vNIC 1940接收命令(例如,操作2112),该vNIC 1940可以被配置为允许来自云壳层路由器1930的通信。安全壳层实例1950然后可以执行命令中指示的操作,并且可以生成参考图19描述的输出(例如,操作2114)。
在一些实施例中,辅助vNIC 1960可以被配置为用作用于通信的出口点,以促进输出经由壳层子网1970从安全壳层实例1950到外部网络(例如,图19的外部网络1980)的传输。如参考图20更详细描述的,壳层子网1970可以在网络隔离VCN中运行,以通过降低源自外部网络的恶意攻击的渗透风险来潜在地改进安全性。在一些实施例中,辅助vNIC 1960可以在安全壳层实例的设立期间被配置为预先创建的实例(例如,在图20的实例池2022中)。在一些实施例中,辅助vNIC 1960可以在安全壳层实例1950的专门化期间被配置(例如,通过会话管理器服务、实例管理器服务和/或其它核心云资源)。辅助vNIC 1960可以配置有安全规则以允许来自安全壳层实例1950的传出消息,例如,寻址到壳层子网1970。例如,安全壳层子网1950可以经由辅助vNIC 1960传输输出(例如,操作2116),并且可以将包含输出的消息定向到壳层子网1970(例如,操作2118)。以这种方式,示例技术2100可以包括将主vNIC1940实现为用于与安全壳层实例1950通信的入口点,并将辅助vNIC 1960实现为用于与安全壳层实例1950通信的单独出口点。
图22图示了根据一个或多个实施例的使用第一网络接口与安全壳层实例进行双向通信的示例技术2200。安全壳层实例1950可以被配置(例如,在设立和/或专门化期间)为经由主虚拟网络访问卡1940(vNIC)和辅助vNIC 1960两者发送消息,尽管根据定义的方法提供安全通信并可能降低违规风险。
在一些实施例中,主vNIC 1940可以包括定义对来自安全壳层实例1950的所有传出消息的全面禁止的安全规则(例如,没有例外的仅入口规则)。相比之下,安全规则可以定义通信的类型、通信的目的地或安全规则的其它例外。例如,主vNIC 1940可以被配置为允许将寻址到用户设备(例如,图19的用户设备1920)的返回消息从安全壳层实例1950传输到云壳层路由器1930。此类返回消息可以包括操作的状态信息(例如,完成、中止、终止等),并且可以包括用户设备作为命令的一部分请求的其它返回信息。
作为说明性示例,安全壳层实例1950可以根据消息的类型和/或目的地通过两条不同的路径发送消息。在这个示例中,云壳层路由器1930将命令传输到安全壳层路由器(例如,操作2210),并且安全壳层实例1950经由主vNIC 1940从云壳层路由器1930接收该命令(例如,操作2212)。安全壳层实例1950可以执行由命令指示的操作并且可以生成输出和返回消息(例如,操作2214)。如上面参考图21所述,安全壳层实例1950可以经由辅助vNIC1960将该输出作为寻址到壳层子网1970的消息来发送(例如,操作2216)。作为比较,安全壳层实例1950可以通过不同的路径(经由主vNIC 1940)将返回消息发送回云壳层路由器1930(例如,操作2218)。
配置主vNIC 1940以允许返回消息可以为实现示例技术2200的系统提供附加的安全性。例如,核心云服务可以使用包括状态信息的返回消息来跟踪和管理安全壳层实例1950的资源使用。此外,如果由于外部系统无法接收到允许其替换安全壳层实例1950的所有者的反馈而壳层子网1970至少部分地被危及,那么将安全壳层实例1950配置为将返回消息发送到云壳层路由器1930而不是壳层子网1970可以潜在地降低安全壳层实例被外部系统占用的风险。
图23图示了根据一个或多个实施例的用于与安全壳层实例进行单向通信的示例技术2300。上面参考图21-4描述的安全规则的推论可以包括安全壳层实例1950可以在其可以被配置为关于来自其执行的操作的输出而实现的通信的类型和方式方面受到限制。
在一些实施例中,主虚拟网络接口卡1940(vNIC)可以配置有不允许来自安全壳层实例1950的输出消息经由主vNIC 1940发送的安全规则。这可以被实现以控制从可以在计算隔离虚拟云网络(VCN)(例如,图20的计算隔离VCN 2020)上运行的安全壳层实例1950访问在服务VCN(例如,图20的服务VCN 2010)上运行的核心云服务。虽然一些类型的消息可以是允许的(例如,返回消息),但如上面参考图22更详细描述的,输出消息可以包括附加和/或替代类型的消息(例如,执行命令、数据变换指令、输入-输出操作指令等)。因此,限制主vNIC 1940所允许的通信的类型可以潜在地降低安全壳层实例1950破坏服务VCN或核心云服务的风险。
在说明性示例中,主vNIC 1940可以被配置为相对于来自安全壳层实例1950的输出消息是仅入口的。因此,当安全壳层实例1950执行来自用户设备(例如,图19的用户设备1920)的命令并生成输出时(例如,操作2310),寻址到云壳层路由器1930的输出的传输可以被主vNIC 1940拒绝(例如,操作2312)。主vNIC 1940的拒绝可以描述阻止输出消息被发送到云壳层路由器1930和/或服务VCN的任何其它组件系统的任何数量的逻辑操作。例如,安全规则可以按地址(例如,MAC地址)将特定目的地列入黑名单。
在一些实施例中,辅助vNIC 1960可以配置有不允许安全壳层实例1950经由辅助vNIC 1960接收网络流量的安全规则。这可以被实现为对壳层子网1970(其能够与互联网通信,因此可能面临被外部系统攻击的风险)对安全壳层实例1950的访问进行控制。作为配置辅助vNIC 1960的一部分而实现的安全规则可以包括对从壳层子网1970或任何其它IaaS系统到安全壳层实例的所有入站通信的全面限制。可替代地,作为配置辅助vNIC 1960(例如,白名单)的一部分,可以允许某些通信的类型、来源或特定消息。
在说明性示例中,辅助vNIC 1960可以被配置为关于与安全壳层实例1950的通信是仅出口的。在这个示例中,可以在壳层子网1970处接收外部网络请求(例如,操作2314)。外部网络请求可以是让壳层子网1970向安全壳层实例1950发送命令的指令(例如,读取存储在附加到安全壳层实例1950的块卷系统中的数据)。在这个示例中被配置为仅出口的辅助vNIC 1960可以限于单向通信,从而允许安全壳层实例1950经由辅助vNIC发送输出消息,但可以拒绝来自壳层子网1970的外部网络请求(例如,操作2316)。
在一些实施例中,辅助vNIC 1960可以类似地拒绝任何传入消息,即使是从其它起点接收到的消息也是如此。例如,辅助vNIC 1960的MAC地址可以被外部系统发现,外部系统可能尝试直接寻址辅助vNIC 1960。仅出口安全性配置可以类似地保护安全壳层实例1950免受此类尝试。
图24图示了根据一个或多个实施例的用于管理区域云系统中的安全壳层实例的通信的示例系统2400。可以在区域IaaS系统中实现参考前面的图描述的技术。区域IaaS系统可以包括多个域2410,其中域可以是与数据中心对应的IaaS标识符,是被配置为操作IaaS系统(例如,服务器、网络基础设施等)的计算机硬件的物理安装。示例系统2400的一些组件可以是区域性的,而其它组件可以是特定于域的。实现区域性系统可以潜在地减少系统开销并减少因使用多个通信点(例如,入口点和出口点)而对系统资源的需求。此外,实现统一通信资源可以通过限制到安全壳层实例和核心云服务的访问点的数量来改进安全性。
在一些实施例中,如参考图20更详细描述的,示例系统2400可以包括两个或更多个根隔间,这些根隔间与不同的IP地址块相关联。例如,私有根隔间2420可以包括区域性跳转主机虚拟云网络(VCN)2430、区域性服务VCN2440和区域性计算隔离VCN 2450。类似地,公共根隔间2460可以包括区域性网络隔离VCN 2470,其被配置为经由区域性网络地址变换(NAT)网关2480连接到外部网络(例如,图19的外部网络1980),并经由区域性服务网关2482连接到核心云服务。
在一些实施例中,跳转主机VCN 2430可以包括区域性网络网关2432(NET),其可以允许私有根隔间2420的组成网络与外部网络(例如,互联网、私有用户网络等)之间的网络流量。例如,可以经由区域性网络网关2432从用户设备1920接收命令。在一些实施例中,跳转主机VCN 2430可以被配置为将该命令发送到在区域服性务VCN2440上运行的区域性路由器子网2442。区域性路由器子网2442可以将命令指向池子网2452,寻址到在实例池2454中运行的安全壳层实例(例如,图19的安全壳层实例1950)。在一些实施例中,每个域2410可以包括实例池2454,其在池子网2452上运行。池2454进而可以包括与为IaaS安全壳层服务的用户创建的安全壳层相关联的多个安全壳层实例。每个安全壳层实例可以包括多个虚拟网络接口卡(vNIC),如参考前面的图更详细描述的。
在一些实施例中,来自在计算隔离VCN 2450中的池子网2452上运行的实例的输出消息可以被指向在网络隔离VCN 2470上运行的区域壳层子网2472。相比之下,寻址到用户设备的返回消息可以被指向在服务VCN 2440上运行的路由器子网2442。区域性子网可以经由适当的网关将消息指向外部地址。
图25图示了根据一个或多个实施例的将多个网络接口用于安全壳层实例的示例流程2500。该流程的操作可以被实现为硬件电路系统和/或存储为计算机系统的非暂态计算机可读介质上的计算机可读指令,诸如图19的安全壳层实例1950。如所实现的,指令表示包括电路系统或可由计算机系统的(一个或多个)处理器执行的代码的模块。此类指令的执行将计算机系统配置为执行本文描述的特定操作。每个电路系统或代码与处理器结合执行(一个或多个)相应的操作。虽然以特定次序描述操作,但应当理解的是,不需要特定次序并且可以省略、跳过和/或重新排序一个或多个操作。
在示例中,流程2500包括操作2502,其中计算机系统经由主虚拟网络接口卡(vNIC)接收用于执行操作的命令。如上面参考图19和图21-4更详细描述的,主vNIC(例如,图19的主vNIC 1940)可以在创建和/或专门化安全云实例(例如,图19的安全云实例1950)期间被配置有安全规则。安全规则可以控制到安全壳层实例的网络流量,使得主vNIC可以被配置为关于一种或多种类型的网络流量是仅入口的。例如,主要vNIC可以被配置为限制安全壳层实例与外部系统(例如,核心云服务、外部网络设备等)之间的网络流量,使得安全壳层实例可以经由主vNIC接收传入流量,但不能经由主vNIC发送传出流量。
在示例中,流程2500包括操作2504,其中计算机系统执行该操作。安全壳层实例可以是托管在虚拟云网络(VCN)上的虚拟机(VM),如上文参考图20更详细描述的。因此,安全壳层实例可以包括计算资源(例如,核心、线程等)并且可以包括数据存储装置(例如,块卷等)。在一些情况下,安全壳层实例可以被配置为执行经由安全壳层(例如,终端、bash壳层等)接收的命令,该安全壳层被创建以将用户设备(例如,图19的用户设备1920)的用户安全地连接到安全壳层实例,例如,通过加密连接(例如,WebSocket安全连接)而连接。
在示例中,流程2500包括操作2506,其中计算机系统生成操作的输出。在一些实施例中,输出可以包括移动数据、发送所请求的信息和/或来自安全壳层实例的其它类型的输出。考虑到这种输出可能包括机密信息,实现网络流量控制会潜在地降低将输出错误地指向未经授权的接收者的风险。
在示例中,流程2500包括操作2508,其中计算机系统经由辅助虚拟网络接口卡(例如,图19的辅助vNIC 1960)将包括操作的输出的消息传输到壳层子网。辅助vNIC可以配置有定义关于网络流量的单向限制的安全规则,例如,用于将输出从安全壳层实例发送到壳层子网(例如,壳层子网1970)。如参考图20更详细描述的,壳层子网和安全壳层实例可以在不同的VCN中运行,彼此隔离,这可以潜在地改进通信安全性。
图26图示了根据一个或多个实施例的用于使用网络接口与安全壳层实例进行双向通信的示例流程2600。该流程的操作可以被实现为硬件电路系统和/或存储为计算机系统的非暂态计算机可读介质上的计算机可读指令,诸如图19的安全壳层实例1950。如所实现的,指令表示包括电路系统或可由计算机系统的(一个或多个)处理器执行的代码的模块。此类指令的执行将计算机系统配置为执行本文描述的特定操作。每个电路系统或代码与处理器结合执行(一个或多个)相应的操作。虽然以特定次序描述操作,但应当理解的是,不需要特定次序并且可以省略、跳过和/或重新排序一个或多个操作。
在示例中,流程2600在图25的操作2504之后开始,其中计算机系统执行操作。特别地,计算机系统(例如,图19的安全壳层实例1950)可以实现与参考图26中描述的操作所描述的操作输出的通信相关联的一个或多个操作。
在示例中,流程2600包括操作2602,其中计算机系统为用户设备生成返回消息。如参考图19和图22更详细描述的,安全壳层实例可以生成返回消息,作为执行操作的一部分。返回消息可以是用于用户设备(例如,图19的用户设备1920)的消息。例如,返回消息可以是确认、状态或校验位,其可以作为从用户设备接收的命令的一部分被包括在内。
在示例中,流程2600包括操作2604,其中计算机系统经由主虚拟网络接口卡(例如,图19的主vNIC 1940)将返回消息传输到路由器。如参考图22更详细描述的,主vNIC可以被配置用于单向网络流量,从而允许入站流量到达安全壳层实例,但不允许从安全壳层实例到IaaS服务(例如,图19的云壳层路由器1930)的出站流量。在一些实施例中,主vNIC可以被配置为允许返回消息被发送到云壳层路由器,经由在服务VCN(例如,图20的服务VCN2010)中运行的一个或多个元素被发送到用户设备。
图27图示了根据一个或多个实施例的用于使用网络接口与安全壳层实例进行双向通信的示例流程2700。该流程的操作可以被实现为硬件电路系统和/或存储为计算机系统的非暂态计算机可读介质上的计算机可读指令,诸如图19的安全壳层实例1950。如所实现的,指令表示包括电路系统或可由计算机系统的(一个或多个)处理器执行的代码的模块。此类指令的执行将计算机系统配置为执行本文描述的特定操作。每个电路系统或代码与处理器结合执行(一个或多个)相应的操作。虽然以特定次序描述操作,但应当理解的是,不需要特定次序并且可以省略、跳过和/或重新排序一个或多个操作。
在示例中,流程2700包括操作2702,其中计算机系统经由辅助虚拟网络接口卡(vNIC)接收外部网络请求。如参考前面的段落更详细描述的,辅助vNIC(例如,图19的辅助vNIC 1960)可以被配置(例如,通过在安全壳层实例的设立期间配置安全规则)用于来自安全壳层实例的单向网络流量。因此,在外部网络请求到达辅助vNIC的情况下,有可能该请求未被授权或被错误地寻址到辅助vNIC。
在示例中,流程2700包括操作2704,其中计算机系统拒绝该外部网络请求。在一些情况下,辅助vNIC可以被配置为拒绝传入的网络请求。例如,包括在辅助vNIC的配置中的安全规则可以将辅助vNIC定义为单向的而没有例外。
在示例中,流程2700包括操作2706,其中计算机系统返回错误消息。在一些实施例中,返回错误消息可以伴随存储描述外部网络请求的标识符信息(例如,用户名、登录凭证、IP地址等)以供IaaS安全服务潜在使用。例如,对未经授权的入站网络流量的审计可以有助于识别一个或多个IaaS服务和/或用户实例是否可能已被破坏。在一些实施例中,错误消息可以直接被引导到IaaS安全服务,例如,作为在辅助vNIC(仅出口)处接收到未经授权的入站请求的通知。
以下条款描述了所公开的实施方式的实施例:
条款1.一种方法,包括:
由计算机系统接收由所述计算机系统执行操作的命令,所述命令是经由主虚拟网络接口卡(vNIC)从路由器接收的;
由所述计算机系统执行所述操作;
由所述计算机系统生成所述操作的输出;以及
由所述计算机系统经由辅助虚拟网络接口卡将包括所述操作的所述输出的消息传输到壳层子网,所述辅助虚拟网络接口卡被配置用于从所述计算机系统到所述壳层子网的单向传输;
其中所述壳层子网被配置为经由网络网关将所述操作的所述输出传输到外部网络。
条款2.如条款1所述的方法,其中,所述操作是由用户设备的用户请求的,并且生成所述操作的所述输出包括:
生成用于所述设备的返回消息;以及
经由所述主虚拟网络接口卡向所述路由器传输所述返回消息,其中所述主虚拟网络接口卡被配置为:
接受用于用户设备的所述返回消息;以及
拒绝包括所述操作的所述输出的所述消息。
条款3.如条款1所述的方法,其中,所述计算机系统是第一虚拟云网络中的虚拟机,所述第一虚拟云网络在私有根隔间中构成。
条款4.如条款3的所述方法,其中,所述路由器在第二虚拟云网络中,所述第二虚拟云网络与所述第一虚拟云网络不同并且在所述私有根隔间中构成。
条款5.如条款3所述的方法,其中,所述壳层子网在第三虚拟云网络中,所述第三虚拟云网络与所述第一虚拟云网络不同并且在公共根隔间中构成。
条款6.如条款5的所述方法,其中:
所述私有根隔间与可归于来自所述私有根隔间的网络流量的第一IP地址块相关联;
所述公共根隔间与第二IP地址块相关联,所述第二IP地址块与所述第一IP地址块不同;以及
所述第二IP地址块可归于来自所述计算机系统的一个或多个用户的网络流量。
条款7.如条款1所述的方法,其中,所述网络网关是网络地址变换(NAT)网关,其被配置为使用可归于来自所述计算机系统的一个或多个用户的网络流量的IP地址块中的IP地址来传输所述消息。
条款8.一种计算机系统,包括:
一个或多个处理器;
与所述一个或多个处理器通信的存储器,所述存储器被配置为存储计算机可执行指令,其中执行所述计算机可执行指令使所述一个或多个处理器执行包括以下各项的步骤:
由计算机系统接收由所述计算机系统执行操作的命令,所述命令是经由主虚拟网络接口卡(vNIC)从路由器接收的;
由所述计算机系统执行所述操作;
由所述计算机系统生成所述操作的输出;以及
由所述计算机系统经由辅助虚拟网络接口卡将包括所述操作的所述输出的消息传输到壳层子网,所述辅助虚拟网络接口卡被配置用于从所述计算机系统到所述壳层子网的单向传输;
其中所述壳层子网被配置为经由网络网关将所述操作的所述输出传输到外部网络。
条款9.如条款8所述的系统,其中,所述操作是由用户设备的用户请求的,并且生成所述操作的所述输出包括:
生成用于用户设备的返回消息;以及
经由所述主虚拟网络接口卡向所述路由器传输所述返回消息,其中所述主虚拟网络接口卡被配置为:
接受用于用户设备的所述返回消息;以及
拒绝包括所述操作的所述输出的所述消息。
条款10.如条款8所述的系统,其中,所述计算机系统是第一虚拟云网络中的虚拟机,所述第一虚拟云网络在私有根隔间中构成。
条款11.如条款10所述的系统,其中,所述路由器在第二虚拟云网络中,所述第二虚拟云网络与所述第一虚拟云网络不同并且在所述私有根隔间中构成。
条款12.如条款10所述的系统,其中,所述壳层子网在第三虚拟云网络中,所述第三虚拟云网络与所述第一虚拟云网络不同并且在公共根隔间中构成。
条款13.条款12的系统,其中:
所述私有根隔间与可归于来自所述私有根隔间的网络流量的第一IP地址块相关联;
所述公共根隔间与第二IP地址块相关联,所述第二IP地址块与所述第一IP地址块不同;以及
所述第二IP地址块可归于来自所述计算机系统的一个或多个用户的网络流量。
条款14.如条款8所述的系统,其中,所述网络网关是网络地址变换(NAT)网关,其被配置为使用可归于来自所述计算机系统的一个或多个用户的网络流量的IP地址块中的IP地址来传输消息。
条款15.一种计算机可读存储介质,其存储计算机可执行指令,所述计算机可执行指令在被执行时使计算机系统的一个或多个处理器执行包括以下各项的步骤:
由所述计算机系统接收由所述计算机系统执行操作的命令,所述命令是经由主虚拟网络接口卡(vNIC)从路由器接收的;
由所述计算机系统执行所述操作;
由所述计算机系统生成所述操作的输出;以及
由所述计算机系统经由辅助虚拟网络接口卡将包括所述操作的所述输出的消息传输到壳层子网,所述辅助虚拟网络接口卡被配置用于从所述计算机系统到所述壳层子网的单向传输;
其中所述壳层子网被配置为经由网络网关将所述操作的所述输出传输到外部网络。
条款16.如条款15所述的计算机可读存储介质,其中,所述操作是由用户设备的用户请求的,并且生成所述操作的所述输出包括:
生成用于用户设备的返回消息;以及
经由所述主虚拟网络接口卡向所述路由器传输所述返回消息,其中所述主虚拟网络接口卡被配置为:
接受用于用户设备的所述返回消息;以及
拒绝包括所述操作的所述输出的消息。
条款17.如条款15所述的计算机可读存储介质,其中,所述计算机系统是第一虚拟云网络中的虚拟机,所述第一虚拟云网络在私有根隔间中构成。
条款18.如条款17所述的计算机可读存储介质,其中,所述路由器在第二虚拟云网络中,所述第二虚拟云网络与所述第一虚拟云网络不同并且在所述私有根隔间中构成。
条款19.如条款17所述的计算机可读存储介质,其中,所述壳层子网在第三虚拟云网络中,所述第三虚拟云网络与所述第一虚拟云网络不同并且在公共根隔间中构成。
条款20.如条款19所述的计算机可读存储介质,其中:
所述私有根隔间与可归于来自所述私有根隔间的网络流量的第一IP地址块相关联;
所述公共根隔间与第二IP地址块相关联,所述第二IP地址块与所述第一IP地址块不同;以及
所述第二IP地址块可归于来自所述计算机系统的一个或多个用户的网络流量。
如以上所指出的,基础设施即服务(IaaS)是一种特定类型的云计算。IaaS可以被配置为通过公共网络(例如,互联网)提供虚拟化计算资源。在IaaS模型中,云计算提供商可以托管基础设施组件(例如,服务器、存储设备、网络节点(例如,硬件)、部署软件、平台虚拟化(例如,管理程序层)等)。在一些情况下,IaaS提供商还可以提供各种服务来伴随这些基础设施组件(例如,计费、监视、记载、安全性、负载平衡和聚类等)。因此,由于这些服务可能是策略驱动的,因此IaaS用户可以能够实现策略来驱动负载平衡,以维持应用的可用性和性能。
在一些情况下,IaaS客户可以通过诸如互联网之类的广域网(WAN)访问资源和服务,并且可以使用云提供商的服务来安装应用栈的剩余元素。例如,用户可以登录到IaaS平台以创建虚拟机(VM)、在每个VM上安装操作系统(OS)、部署诸如数据库之类的中间件、为工作负载和备份创建存储桶,甚至将企业软件安装到那个VM中。然后,客户可以使用提供商的服务来执行各种功能,包括平衡网络流量、解决应用问题、监视性能、管理灾难恢复等。
在大多数情况下,云计算模型将需要云提供商的参与。云提供商可以但不一定是专门提供(例如,供应、出租、销售)IaaS的第三方服务。实体也可能选择部署私有云,从而成为其自己的基础设施服务提供商。
在一些示例中,IaaS部署是将新应用或应用的新版本放置到准备好的应用服务器等上的处理。它还可以包括准备服务器(例如,安装库、守护进程等)的处理。这通常由云提供商管理,位于管理程序层之下(例如,服务器、存储装置、网络硬件和虚拟化)。因此,客户可以负责处理(OS)、中间件和/或应用部署(例如,在(例如,可以按需启动的)自助服务虚拟机等上)。
在一些示例中,IaaS供应(provision)可以指获取计算机或虚拟主机以供使用,甚至在它们上安装所需的库或服务。大多数情况下,部署不包括供应,并且供应可能需要被首先执行。
在一些情况下,IaaS供应存在两个不同的问题。首先,在任何东西运行之前供应初始基础设施集存在最初的挑战。其次,一旦所有东西已被供应,就存在演进现有基础设施(例如,添加新服务、更改服务、移除服务等)的挑战。在一些情况下,可以通过启用以声明方式定义基础设施的配置来解决这两个挑战。换句话说,基础设施(例如,需要哪些组件以及它们如何交互)可以由一个或多个配置文件来定义。因此,基础设施的总体拓扑(例如,哪些资源依赖于哪些资源,以及它们如何协同工作)可以以声明的方式描述。在一些情况下,一旦定义了拓扑,就可以生成创建和/或管理配置文件中描述的不同组件的工作流。
在一些示例中,基础设施可以具有许多互连的元素。例如,可能存在一个或多个虚拟私有云(VPC)(例如,可配置和/或共享计算资源的潜在按需池),也称为核心网络。在一些示例中,还可以供应一个或多个安全组规则以定义如何设置网络的安全性以及一个或多个虚拟机(VM)。也可以供应其它基础设施元素,诸如负载平衡器、数据库等。随着期望和/或添加越来越多的基础设施元素,基础设施可以逐步演进。
在一些情况下,可以采用连续部署技术来使得能够跨各种虚拟计算环境部署基础设施代码。此外,所描述的技术可以使得能够在这些环境内进行基础设施管理。在一些示例中,服务团队可以编写期望部署到一个或多个但通常是许多不同的生产环境(例如,跨各种不同的地理位置,有时跨越整个世界)的代码。但是,在一些示例中,必须首先设置将在其上部署代码的基础设施。在一些情况下,供应可以手动完成,可以利用供应工具供应资源,和/或一旦供应基础设施就可以利用部署工具部署代码。
图28是图示根据至少一个实施例的IaaS体系架构的示例模式的框图2800。服务运营商2802可以通信地耦合到可以包括虚拟云网络(VCN)2806和安全主机子网2808的安全主机租赁2804。在一些示例中,服务运营商2802可以使用一个或多个客户端计算设备,其可以是便携式手持设备(例如,蜂窝电话、/>计算平板、个人数字助理(PDA))或可穿戴设备(例如,Google/>头戴式显示器)、运行软件(诸如MicrosoftWindows/>)和/或各种移动操作系统(诸如iOS、Windows Phone、Android、BlackBerry 8、Palm OS等),并且支持互联网、电子邮件、短消息服务(SMS)、或其它通信协议。替代地,客户端计算设备可以是通用个人计算机,包括例如运行各种版本的Microsoft/>Apple/>和/或Linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备可以是运行各种商业上可获得的或类UNIX操作系统,包括但不限于各种GNU/Linux操作系统(诸如例如GoogleChrome OS)中的任何一种的工作站计算机。替代地或附加地,客户端计算设备可以是任何其它电子设备,诸如瘦客户端计算机、支持互联网的游戏系统(例如,具有或不具有手势输入设备的Microsoft Xbox游戏控制台),和/或能够通过可以访问VCN2806和/或互联网的网络进行通信的个人消息传递设备。/>
VCN 2806可以包括本地对等网关(LPG)2810,其可以经由包含在SSH VCN 2812中的LPG 2810通信地耦合到安全壳(SSH)VCN 2812。SSH VCN 2812可以包括SSH子网2814,并且SSH VCN2812可以经由包含在控制平面VCN 2816中的LPG 2810通信地耦合到控制平面VCN 2816。此外,SSH VCN 2812可以经由LPG 2810通信地耦合到数据平面VCN 2818。控制平面VCN 2816和数据平面VCN 2818可以包含在可以由IaaS提供商拥有和/或操作的服务租赁2819中。
控制平面VCN 2816可以包括充当外围网络(例如,公司内部网和外部网络之间的公司网络的部分)的控制平面非军事区(DMZ)层2820。基于DMZ的服务器可以承担有限责任并有助于控制安全漏洞。此外,DMZ层2820可以包括一个或多个负载平衡器(LB)子网2822、可以包括(一个或多个)应用子网2826的控制平面应用层2824、可以包括(一个或多个)数据库(DB)子网2830(例如,(一个或多个)前端DB子网和/或(一个或多个)后端DB子网)的控制平面数据层2828。包含在控制平面DMZ层2820中的(一个或多个)LB子网2822可以通信地耦合到包含在控制平面应用层2824中的(一个或多个)应用子网2826和可以包含在控制平面VCN 2816中的互联网网关2834,并且(一个或多个)应用子网2826可以通信地耦合到包含在控制平面数据层2828中的(一个或多个)DB子网2830以及服务网关2836和网络地址转换(NAT)网关2838。控制平面VCN 2816可以包括服务网关2836和NAT网关2838。
控制平面VCN 2816可以包括数据平面镜像应用层2840,其可以包括(一个或多个)应用子网2826。包含在数据平面镜像应用层2840中的(一个或多个)应用子网2826可以包括可以执行计算实例2844的虚拟网络接口控制器(VNIC)2842。计算实例2844可以将数据平面镜像应用层2840的(一个或多个)应用子网2826通信地耦合到可以包含在数据平面应用层2846中的(一个或多个)应用子网2826。
数据平面VCN 2818可以包括数据平面应用层2846、数据平面DMZ层2848和数据平面数据层2850。数据平面DMZ层2848可以包括(一个或多个)LB子网2822,其可以通信地耦合到数据平面应用层2846的(一个或多个)应用子网2826和数据平面VCN 2818的互联网网关2834。(一个或多个)应用子网2826可以通信地耦合到数据平面VCN 2818的服务网关2836和数据平面VCN 2818的NAT网关2838。数据平面数据层2850还可以包括可以通信地耦合到数据平面应用层2846的(一个或多个)应用子网2826的(一个或多个)DB子网2830。
控制平面VCN 2816和数据平面VCN 2818的互联网网关2834可以通信地耦合到元数据管理服务2852,元数据管理服务2852可以通信地耦合到公共互联网2854。公共互联网2854可以通信地耦合到控制平面VCN 2816和数据平面VCN 2818的NAT网关2838。控制平面VCN 2816和数据平面VCN 2818的服务网关2836可以通信地耦合到云服务2856。
在一些示例中,控制平面VCN 2816或数据平面VCN 2818的服务网关2836可以对云服务2856进行应用编程接口(API)调用,而无需通过公共互联网2854。从服务网关2836到云服务2856的API调用可以是单向的:服务网关2836可以对云服务2856进行API调用,并且云服务2856可以将请求的数据发送到服务网关2836。但是,云服务2856可以不发起对服务网关2836的API调用。
在一些示例中,安全主机租赁2804可以直接连接到服务租赁2819,服务租赁2819否则可以被隔离。安全主机子网2808可以通过LPG 2810与SSH子网2814通信,LPG 2810可以使得能够在否则隔离的系统上进行双向通信。将安全主机子网2808连接到SSH子网2814可以使安全主机子网2808访问服务租赁2819内的其它实体。
控制平面VCN 2816可以允许服务租赁2819的用户设置或以其它方式供应期望的资源。在控制平面VCN 2816中供应的期望资源可以在数据平面VCN 2818中部署或以其它方式使用。在一些示例中,控制平面VCN 2816可以与数据平面VCN 2818隔离,并且控制平面VCN 2816的数据平面镜像应用层2840可以经由VNIC 2842与数据平面VCN 2818的数据平面应用层2846通信,VNIC 2842可以包含在数据平面镜像应用层2840和数据平面应用层2846中。
在一些示例中,系统的用户或客户可以通过可以将请求传送到元数据管理服务2852的公共互联网2854来做出请求,例如创建、读取、更新或删除(CRUD)操作。元数据管理服务2852可以通过互联网网关2834将请求传送到控制平面VCN 2816。请求可以被包含在控制平面DMZ层2820中的(一个或多个)LB子网2822接收。(一个或多个)LB子网2822可以确定请求是有效的,并且响应于该确定,(一个或多个)LB子网2822可以将请求传输到包含在控制平面应用层2824中的(一个或多个)应用子网2826。如果请求被验证并且需要对公共互联网2854的调用,那么对公共互联网2854的调用可以被传输到可以对公共互联网2854进行调用的NAT网关2838。请求可能期望存储的存储器可以存储在(一个或多个)DB子网2830中。
在一些示例中,数据平面镜像应用层2840可以促进控制平面VCN 2816和数据平面VCN 2818之间的直接通信。例如,可能期望对包含在数据平面VCN 2818中的资源应用对配置的更改、更新或其它适当的修改。经由VNIC 2842,控制平面VCN 2816可以直接与包含在数据平面VCN 2818中的资源通信,并且从而可以执行对配置的更改、更新或其它适当的修改。
在一些实施例中,控制平面VCN 2816和数据平面VCN 2818可以包含在服务租赁2819中。在这种情况下,系统的用户或客户可能不拥有或操作控制平面VCN 2816或数据平面VCN 2818。替代地,IaaS提供商可以拥有或操作控制平面VCN 2816和数据平面VCN2818,这两者平面都可以包含在服务租赁2819中。该实施例可以使得能够隔离可能阻止用户或客户与其它用户或其它客户的资源交互的网络。此外,该实施例可以允许系统的用户或客户私自存储数据库,而无需依赖可能不具有期望安全级别的公共互联网2854进行存储。
在其它实施例中,包含在控制平面VCN 2816中的(一个或多个)LB子网2822可以被配置为从服务网关2836接收信号。在这个实施例中,控制平面VCN 2816和数据平面VCN2818可以被配置为由IaaS提供商的客户调用而无需调用公共互联网2854。IaaS提供商的客户可能期望这个实施例,因为客户使用的(一个或多个)数据库可以由IaaS提供商控制并且可以存储在服务租赁2819上,服务租赁2819可能与公共互联网2854隔离。
图29是图示根据至少一个实施例的IaaS体系架构的另一个示例模式的框图2900。服务运营商2902(例如,图28的服务运营商2802)可以通信地耦合到安全主机租赁2904(例如,图28的安全主机租赁2804),该安全主机租赁2904可以包括虚拟云网络(VCN)2906(例如,图28的VCN 2806)和安全主机子网2908(例如,图28的安全主机子网2808)。VCN 2906可以包括本地对等网关(LPG)2910(例如,图28的LPG 2810),其可以经由包含在SSH VCN2912中的LPG 2810通信地耦合到安全壳(SSH)VCN 2912(例如,图28的SSH VCN 2812)。SSH VCN2912可以包括SSH子网2914(例如,图28的SSH子网2814),并且SSH VCN 2912可以经由包含在控制平面VCN 2916中的LPG 2910通信地耦合到控制平面VCN2916(例如,图28的控制平面VCN 2816)。控制平面VCN 2916可以包含在服务租赁2919(例如,图28的服务租赁2819)中,并且数据平面VCN 2918(例如,图28的数据平面VCN 2818)可以包含在可能由系统的用户或客户拥有或操作的客户租赁2921中。
控制平面VCN 2916可以包括控制平面DMZ层2920(例如,图28的控制平面DMZ层2820),其可以包括(一个或多个)LB子网2922(例如,图28的(一个或多个)LB子网2822)、可以包括(一个或多个)应用子网2926(例如,图28的(一个或多个)应用子网2826)的控制平面应用层2924(例如,图28的控制平面应用层2824)、可以包括(一个或多个)数据库(DB)子网2930(例如,类似于图28的(一个或多个)DB子网2830)的控制平面数据层2928(例如,图28的控制平面数据层2828)。包含在控制平面DMZ层2920中的(一个或多个)LB子网2922可以通信地耦合到包含在控制平面应用层2924中的(一个或多个)应用子网2926和可以包含在控制平面VCN 2916中的互联网网关2934(例如,图28的互联网网关2834),并且(一个或多个)应用子网2926可以通信地耦合到包含在控制平面数据层2928中的(一个或多个)DB子网2930以及服务网关2936(例如,图28的服务网关)和网络地址转换(NAT)网关2938(例如,图28的NAT网关2838)。控制平面VCN 2916可以包括服务网关2936和NAT网关2938。
控制平面VCN 2916可以包括可以包含(一个或多个)应用子网2926的数据平面镜像应用层2940(例如,图28的数据平面镜像应用层2840)。包含在数据平面镜像应用层2940中的(一个或多个)应用子网2926可以包括可以执行计算实例2944(例如,类似于图28的计算实例2844)的虚拟网络接口控制器(VNIC)2942(例如,2842的VNIC)。计算实例2944可以促进数据平面镜像应用层2940的(一个或多个)应用子网2926和可以包含在数据平面应用层2946(例如,图28的数据平面应用层2846)中的(一个或多个)应用子网2926之间经由包含在数据平面镜像应用层2940中的VNIC 2942和包含在数据平面应用层2946中的VNIC 2942的通信。
包含在控制平面VCN 2916中的互联网网关2934可以通信地耦合到元数据管理服务2952(例如,图28的元数据管理服务2852),该元数据管理服务2952可以通信地耦合到公共互联网2954(例如,图28的公共互联网2854)。公共互联网2954可以通信地耦合到包含在控制平面VCN 2916中的NAT网关2938。包含在控制平面VCN2916中的服务网关2936可以通信地耦合到云服务2956(例如,图28的云服务2856)。
在一些示例中,数据平面VCN 2918可以包含在客户租赁2921中。在这种情况下,IaaS提供商可以为每个客户提供控制平面VCN2916,并且IaaS提供商可以为每个客户设置包含在服务租赁2919中的唯一计算实例2944。每个计算实例2944可以允许包含在服务租赁2919中的控制平面VCN 2916和包含在客户租赁2921中的数据平面VCN 2918之间的通信。计算实例2944可以允许在包含在服务租赁2919中的控制平面VCN 2916中供应的资源被部署或以其它方式在包含在客户租赁2921中的数据平面VCN 2918中使用。
在其它示例中,IaaS提供商的客户可以具有存在于客户租赁2921中的数据库。在这个示例中,控制平面VCN 2916可以包括数据平面镜像应用层2940,其可以包括(一个或多个)应用子网2926。数据平面镜像应用层2940可以驻留在数据平面VCN 2918中,但数据平面镜像应用层2940可能不在数据平面VCN 2918中。即,数据平面镜像应用层2940可以访问客户租赁2921,但是数据平面镜像应用层2940可能不存在于数据平面VCN 2918中或者由IaaS提供商的客户拥有或操作。数据平面镜像应用层2940可以被配置为对数据平面VCN 2918进行调用,但可以不被配置为对包含在控制平面VCN2916中的任何实体进行调用。客户可能期望在数据平面VCN 2918中部署或以其它方式使用在控制平面VCN 2916中供应的资源,并且数据平面镜像应用层2940可以促进客户的期望部署或资源的其它使用。
在一些实施例中,IaaS提供商的客户可以将过滤器应用到数据平面VCN 2918。在这个实施例中,客户可以确定数据平面VCN 2918可以访问什么,并且客户可以限制从数据平面VCN 2918对公共互联网2954的访问。IaaS提供商可能无法应用过滤器或以其它方式控制数据平面VCN 2918对任何外部网络或数据库的访问。客户将过滤器和控制应用到包含在客户租赁2921中的数据平面VCN 2918上可以帮助将数据平面VCN 2918与其它客户和公共互联网2954隔离开。
在一些实施例中,云服务2956可以由服务网关2936调用以访问公共互联网2954、控制平面VCN 2916或数据平面VCN 2918上可能不存在的服务。云服务2956与控制平面VCN2916或数据平面VCN2918之间的连接可以不是实时的或连续的。云服务2956可以存在于由IaaS提供商拥有或操作的不同网络上。云服务2956可以被配置为接收来自服务网关2936的调用并且可以被配置为不接收来自公共互联网2954的调用。一些云服务2956可以与其它云服务2956隔离,并且控制平面VCN 2916可以与可能与控制平面VCN 2916不在同一区域的云服务2956隔离。例如,控制平面VCN 2916可能位于“区域1”,并且云服务“部署28”可能位于区域1和“区域2”。如果包含在位于区域1中的控制平面VCN 2916中的服务网关2936对部署28进行调用,那么该调用可以被传输到区域1中的部署28。在这个示例中,控制平面VCN2916或区域1中的部署28可能不与区域2中的部署28通信地耦合或以其它方式通信。
图30是图示根据至少一个实施例的IaaS体系架构的另一个示例模式的框图3000。服务运营商3002(例如,图28的服务运营商2802)可以通信地耦合到安全主机租赁3004(例如,图28的安全主机租赁2804),该安全主机租赁3004可以包括虚拟云网络(VCN)3006(例如,图28的VCN 2806)和安全主机子网3008(例如,图28的安全主机子网2808)。VCN 3006可以包括LPG 3010(例如,图28的LPG 2810),其可以经由包含在SSH VCN 3012中的LPG 3010通信地耦合到SSH VCN 3012(例如,图28的SSH VCN 2812)。SSHVCN 3012可以包括SSH子网3014(例如,图28的SSH子网2814),并且SSH VCN 3012可以经由包含在控制平面VCN 3016中的LPG3010通信地耦合到控制平面VCN 3016(例如,图28的控制平面VCN 2816)并且经由包含在数据平面VCN 3018中的LPG 3010耦合到数据平面VCN 3018(例如,图28的数据平面2818)。控制平面VCN 3016和数据平面VCN 3018可以包含在服务租赁3019(例如,图28的服务租赁2819)中。
控制平面VCN 3016可以包括可以包含(一个或多个)负载平衡器(LB)子网3022(例如,图28的(一个或多个)LB子网2822)的控制平面DMZ层3020(例如,图28的控制平面DMZ层2820)、可以包括(一个或多个)应用子网3026(例如,类似于图28的(一个或多个)应用子网2826)的控制平面应用层3024(例如,图28的控制平面应用层2824)、可以包括(一个或多个)DB子网3030的控制平面数据层3028(例如,图28的控制平面数据层2828)。包含在控制平面DMZ层3020中的(一个或多个)LB子网3022可以通信地耦合到包含在控制平面应用层3024中的(一个或多个)应用子网3026和可以包含在控制平面VCN 3016中的互联网网关3034(例如,图28的互联网网关2834),并且(一个或多个)应用子网3026可以通信地耦合到包含在控制平面数据层3028中的(一个或多个)DB子网3030以及服务网关3036(例如,图28的服务网关)和网络地址转换(NAT)网关3038(例如,图28的NAT网关2838)。控制平面VCN 3016可以包括服务网关3036和NAT网关3038。
数据平面VCN 3018可以包括数据平面应用层3046(例如,图28的数据平面应用层2846)、数据平面DMZ层3048(例如,图28的数据平面DMZ层2848),以及数据平面数据层3050(例如,图28的数据平面数据层2850)。数据平面DMZ层3048可以包括可以通信地耦合到数据平面应用层3046的(一个或多个)可信应用子网3060和(一个或多个)不可信应用子网3062以及包含在数据平面VCN 3018中的互联网网关3034的(一个或多个)LB子网3022。(一个或多个)可信应用子网3060可以通信地耦合到包含在数据平面VCN 3018中的服务网关3036、包含在数据平面VCN 3018中的NAT网关3038以及包含在数据平面数据层3050中的(一个或多个)DB子网3030。(一个或多个)不可信应用子网3062可以通信地耦合到包含在数据平面VCN 3018中的服务网关3036和包含在数据平面数据层3050中的(一个或多个)DB子网3030。数据平面数据层3050可以包括可以通信地耦合到包含在数据平面VCN 3018中的服务网关3036的(一个或多个)DB子网3030。
(一个或多个)不可信应用子网3062可以包括可以通信地耦合到租户虚拟机(VM)3066(1)-(N)的一个或多个主VNIC 3064(1)-(N)。每个租户VM 3066(1)-(N)可以通信地耦合到可以包含在相应容器出口VCN 3068(1)-(N)中的相应应用子网3067(1)-(N),相应容器出口VCN 3068(1)-(N)可以包含在相应客户租赁3070(1)-(N)中。相应的辅助VNIC 3072(1)-(N)可以促进数据平面VCN 3018中包含的(一个或多个)不可信应用子网3062与容器出口VCN 3068(1)-(N)中包含的应用子网之间的通信。每个容器出口VCN 3068(1)-(N)可以包括NAT网关3038,该NAT网关3038可以通信地耦合到公共互联网3054(例如,图28的公共互联网2854)。
包含在控制平面VCN 3016中并且包含在数据平面VCN 3018中的互联网网关3034可以通信地耦合到元数据管理服务3052(例如,图28的元数据管理系统2852),该元数据管理服务3052可以通信地耦合到公共互联网3054。公共互联网3054可以通信地耦合到包含在控制平面VCN 3016中并且包含在数据平面VCN 3018中的NAT网关3038。包含在控制平面VCN3016中和包含在数据平面VCN 3018中的服务网关3036可以通信地耦合到云服务3056。
在一些实施例中,数据平面VCN 3018可以与客户租赁3070集成。在一些情况下,诸如在执行代码时可能期望支持的情况下,这种集成对于IaaS提供商的客户可能是有用的或期望的。客户可能提供可能具有破坏性、可能与其它客户资源通信或可能以其它方式导致非期望效果的代码来运行。作为对此的响应,IaaS提供商可以确定是否运行由客户给与IaaS提供商的代码。
在一些示例中,IaaS提供商的客户可以向IaaS提供商授予临时网络访问,并请求附加到数据平面层应用3046的功能。运行该功能的代码可以在VM 3066(1)-(N)中执行,并且该代码可以不被配置为在数据平面VCN 3018上的其它任何地方运行。每个VM 3066(1)-(N)可以连接到一个客户租赁3070。包含在VM 3066(1)-(N)中的相应容器3071(1)-(N)可以被配置为运行代码。在这种情况下,可以存在双重隔离(例如,容器3071(1)-(N)运行代码,其中容器3071(1)-(N)可能至少包含在(一个或多个)不可信应用子网3062中包含的VM3066(1)-(N)中),这可以帮助防止不正确的或以其它方式非期望的代码损坏IaaS提供商的网络或损坏不同客户的网络。容器3071(1)-(N)可以通信地耦合到客户租赁3070并且可以被配置为传输或接收来自客户租赁3070的数据。容器3071(1)-(N)可以不被配置为从数据平面VCN 3018中的任何其它实体传输或接收数据。在运行代码完成后,IaaS提供商可以终止或以其它方式处置容器3071(1)-(N)。
在一些实施例中,(一个或多个)可信应用子网3060可以运行可以由IaaS提供商拥有或操作的代码。在这个实施例中,(一个或多个)可信应用子网3060可以通信地耦合到(一个或多个)DB子网3030并且被配置为在(一个或多个)DB子网3030中执行CRUD操作。(一个或多个)不可信应用子网3062可以通信地耦合到(一个或多个)DB子网3030,但是在这个实施例中,(一个或多个)不可信应用子网可以被配置为在(一个或多个)DB子网3030中执行读取操作。可以包含在每个客户的VM 3066(1)-(N)中并且可以运行来自客户的代码的容器3071(1)-(N)可以不与(一个或多个)DB子网3030通信地耦合。
在其它实施例中,控制平面VCN 3016和数据平面VCN 3018可以不直接通信地耦合。在这个实施例中,控制平面VCN 3016和数据平面VCN 3018之间可能没有直接通信。但是,通信可以通过至少一种方法间接发生。LPG 3010可以由IaaS提供商建立,其可以促进控制平面VCN 3016和数据平面VCN 3018之间的通信。在另一个示例中,控制平面VCN 3016或数据平面VCN 3018可以经由服务网关3036调用云服务3056。例如,从控制平面VCN 3016对云服务3056的调用可以包括对可以与数据平面VCN 3018通信的服务的请求。
图31是图示根据至少一个实施例的IaaS体系架构的另一个示例模式的框图3100。服务运营商3102(例如,图28的服务运营商2802)可以通信地耦合到安全主机租赁3104(例如,图28的安全主机租赁2804),该安全主机租赁3104可以包括虚拟云网络(VCN)3106(例如,图28的VCN 2806)和安全主机子网3108(例如,图28的安全主机子网2808)。VCN 3106可以包括LPG 3110(例如,图28的LPG 2810),该LPG 3110可以经由包含在SSH VCN 3112(例如,图28的SSH VCN 2812)中的LPG 3110通信地耦合到SSH VCN3112。SSH VCN 3112可以包括SSH子网3114(例如,图28的SSH子网2814),并且SSH VCN 3112可以经由包含在控制平面VCN3116中的LPG 3110通信地耦合到控制平面VCN 3116(例如,图28的控制平面VCN 2816)并且经由包含在数据平面VCN 3118中的LPG 3110耦合到数据平面VCN 3118(例如,图28的数据平面2818)。控制平面VCN 3116和数据平面VCN 3118可以包含在服务租赁3119(例如,图28的服务租赁2819)中。
控制平面VCN 3116可以包括可以包含(一个或多个)LB子网3122(例如,图28的(一个或多个)LB子网2822)的控制平面DMZ层3120(例如,图28的控制平面DMZ层2820)、可以包括(一个或多个)应用子网3126(例如,图28的(一个或多个)应用子网2826)的控制平面应用层3124(例如,图28的控制平面应用层2824)、可以包括(一个或多个)DB子网3130(例如,图30的(一个或多个)DB子网3030)的控制平面数据层3128(例如,图28的控制平面数据层2828)。包含在控制平面DMZ层3120中的(一个或多个)LB子网3122可以通信地耦合到包含在控制平面应用层3124中的(一个或多个)应用子网3126和可以包含在控制平面VCN 3116中的互联网网关3134(例如,图28的互联网网关2834),并且(一个或多个)应用子网3126可以通信地耦合到包含在控制平面数据层3128中的(一个或多个)DB子网3130以及服务网关3136(例如,图28的服务网关)和网络地址转换(NAT)网关3138(例如,图28的NAT网关2838)。控制平面VCN 3116可以包括服务网关3136和NAT网关3138。
数据平面VCN 3118可以包括数据平面应用层3146(例如,图28的数据平面应用层2846)、数据平面DMZ层3148(例如,图28的数据平面DMZ层2848)),以及数据平面数据层3150(例如,图28的数据平面数据层2850)。数据平面DMZ层3148可以包括可以通信地耦合到数据平面应用层3146的(一个或多个)可信应用子网3160(例如,图30的(一个或多个)可信应用子网3060)和(一个或多个)不可信应用子网3162(例如,图30的(一个或多个)不可信应用子网3062)以及包含在数据平面VCN 3118中的互联网网关3134的(一个或多个)LB子网3122。(一个或多个)可信应用子网3160可以通信地耦合到包含在数据平面VCN 3118中的服务网关3136、包含在数据平面VCN 3118中的NAT网关3138以及包含在数据平面数据层3150中的(一个或多个)DB子网3130。(一个或多个)不可信应用子网3162可以通信地耦合到包含在数据平面VCN3118中的服务网关3136和包含在数据平面数据层3150中的(一个或多个)DB子网3130。数据平面数据层3150可以包括可以通信地耦合到包含在数据平面VCN 3118中的服务网关3136的(一个或多个)DB子网3130。
(一个或多个)不可信应用子网3162可以包括可以通信地耦合到驻留在(一个或多个)不可信应用子网3162内的租户虚拟机(VM)3166(1)-(N)的主VNIC 3164(1)-(N)。每个租户VM 3166(1)-(N)可以在相应的容器3167(1)-(N)中运行代码,并且可通信地耦合到可以包含在容器出口VCN 3168中包含的数据平面应用层3146中的应用子网3126。相应的辅助VNIC 3172(1)-(N)可以促进包含在数据平面VCN 3118中的(一个或多个)不可信应用子网3162和包含在容器出口VCN 3168中的应用子网之间的通信。容器出口VCN可以包括可以通信地耦合到公共互联网3154(例如,图28的公共互联网2854)的NAT网关3138。
包含在控制平面VCN 3116中和包含在数据平面VCN 3118中的互联网网关3134可以通信地耦合到元数据管理服务3152(例如,图28的元数据管理系统2852),该元数据管理服务3152可以通信地耦合到公共互联网3154。公共互联网3154可以通信地耦合到包含在控制平面VCN 3116中并且包含在数据平面VCN 3118中的NAT网关3138。包含在控制平面VCN3116中并且包含在数据平面VCN 3118中的服务网关3136可以通信地耦合到云服务3156。
在一些示例中,图31的框图3100的体系架构所示的模式可以被认为是图10的框图1000的体系架构所示的模式的例外,并且如果IaaS提供商不能直接与客户通信(例如,断开连接的区域),那么这种模式可能是IaaS提供商的客户所期望的。客户可以实时访问每个客户的VM 3166(1)-(N)中包含的相应容器3167(1)-(N)。容器3167(1)-(N)可以被配置为对包含在数据平面应用层3146的(一个或多个)应用子网3126中的相应辅助VNIC 3172(1)-(N)进行调用,该数据平面应用层3146可以包含在容器出口VCN 3168中。辅助VNIC 3172(1)-(N)可以将调用传输到NAT网关3138,NAT网关3138可以将调用传输到公共互联网3154。在这个示例中,可以由客户实时访问的容器3167(1)-(N)可以与控制平面VCN3116隔离,并且可以与数据平面VCN 3118中包含的其它实体隔离。容器3167(1)-(N)也可以与来自其它客户的资源隔离。
在其它示例中,客户可以使用容器3167(1)-(N)来调用云服务3156。在这个示例中,客户可以运行容器3167(1)-(N)中从云服务3156请求服务的代码。容器3167(1)-(N)可以将该请求传输到辅助VNIC 3172(1)-(N),辅助VNIC 3172(1)-(N)可以将请求传输到NAT网关,该NAT网关可以将请求传输到公共互联网3154。公共互联网3154可以经由互联网网关3134将请求传输到包含在控制平面VCN 3116中的(一个或多个)LB子网3122。响应于确定请求有效,(一个或多个)LB子网可以将请求传输到(一个或多个)应用子网3126,该(一个或多个)应用子网3126可以经由服务网关3136将请求传输到云服务3156。
应当认识到的是,各图中描绘的IaaS体系架构2800、2900、3000、3100可以具有除所描绘的那些之外的其它组件。另外,各图中所示的实施例仅仅是可以结合本公开的实施例的云基础设施系统的一些示例。在一些其它实施例中,IaaS系统可以具有比各图中所示更多或更少的组件、可以组合两个或更多个组件,或者可以具有不同的配置或组件布置。
在某些实施例中,本文描述的IaaS系统可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式交付给客户的应用套件、中间件和数据库服务产品。此类IaaS系统的示例是本受让人提供的Oracle云基础设施(OCI)。
图32图示了其中可以实现本公开的各种实施例的示例计算机系统3200。系统3200可以用于实现上述任何计算机系统。如图所示,计算机系统3200包括经由总线子系统3202与多个外围子系统通信的处理单元3204。这些外围子系统可以包括处理加速单元3206、I/O子系统3208、存储子系统3218和通信子系统3224。存储子系统3218包括有形计算机可读存储介质3222和系统存储器3210。
总线子系统3202提供用于让计算机系统3200的各种部件和子系统按意图彼此通信的机制。虽然总线子系统3202被示意性地示出为单条总线,但是总线子系统的替代实施例可以利用多条总线。总线子系统3202可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用任何各种总线体系架构的局部总线。例如,这种体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围部件互连(PCI)总线,其可以被实现为按IEEE P1386.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元3204控制计算机系统3200的操作。一个或多个处理器可以被包括在处理单元3204中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元3204可以被实现为一个或多个独立的处理单元3232和/或3234,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元3204也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各种实施例中,处理单元3204可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器3204中和/或存储子系统3218中。通过适当的编程,(一个或多个)处理器3204可以提供上述各种功能。计算机系统3200可以附加地包括处理加速单元3206,其可以包括数字信号处理器(DSP)、专用处理器,等等。
I/O子系统3208可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势识别设备,诸如的Microsoft运动传感器,其使得用户能够使用手势和语音命令通过自然用户接口来控制诸如的Microsoft/>360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,Google/>)中的输入的Google/>眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,/>导航器)交互的语音识别感测设备。
用户接口输入设备也可以包括但不限于三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。
用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非可视显示器,等等。显示子系统可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统3200向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括,但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备,以及调制解调器。
计算机系统3200可以包括包含软件元件、被示为当前位于系统存储器3210中的存储子系统3218。系统存储器3210可以存储可加载并且可在处理单元3204上执行的程序指令,以及在这些程序的执行期间所产生的数据。
取决于计算机系统3200的配置和类型,系统存储器3210可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可被处理单元3204立即访问和/或目前正被处理单元3204操作和执行的数据和/或程序模块。在一些实现中,系统存储器3210可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如包含有助于在启动期间在计算机系统3200的元件之间传送信息的基本例程的基本输入/输出系统(BIOS),通常可以被存储在ROM中。作为示例,但不是限制,系统存储器3210也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序3212,程序数据3214,以及操作系统3216。作为示例,操作系统3216可以包括各种版本的MicrosoftApple/>和/或Linux操作系统、各种可商业获得的/>或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google/>操作系统等)和/或诸如iOS、/>Phone、/>OS、/>32OS和OS操作系统的移动操作系统。
存储子系统3218也可以提供用于存储提供一些实施例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统3218中。这些软件模块或指令可以被处理单元3204执行。存储子系统3218也可以提供用于存储根据本公开被使用的数据的储存库。
存储子系统3200也可以包括可被进一步连接到计算机可读存储介质3222的计算机可读存储介质读取器3220。与系统存储器3210一起并且,可选地,与其相结合,计算机可读存储介质3222可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移除存储设备加存储介质。
包含代码或代码的部分的计算机可读存储介质3222也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。这可以包括有形的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备,或者其它有形的计算机可读介质。这也可以包括非有形的计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息并且可以被计算系统3200访问的任何其它介质。
作为示例,计算机可读存储介质3222可以包括从不可移除的非易失性磁介质读取或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移除的非易失性光盘(诸如CD ROM、DVD和盘或其它光学介质)读取或写到其的光盘驱动器。计算机可读存储介质3222可以包括,但不限于,/>驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带,等等。计算机可读存储介质3222也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如固态RAM、动态RAM、静态RAM)、基于DRAM的SSD,磁阻RAM(MRAM)SSD,以及使用基于DRAM和闪存存储器的SSD的组合的混合SSD。盘驱动器及其关联的计算机可读介质可以为计算机系统3200提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子系统3224提供到其它计算机系统和网络的接口。通信子系统3224用作用于从其它系统接收数据和从计算机系统3200向其它系统发送数据的接口。例如,通信子系统3224可以使计算机系统3200能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统3224可以包括用于访问无线语音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,WiFi(IEEE802.11系列标准),或其它移动通信技术,或其任意组合)、全球定位系统(GPS)接收器部件和/或其它部件。在一些实施例中,作为无线接口的附加或者替代,通信子系统3224可以提供有线网络连接(例如,以太网)。
在一些实施例中,通信子系统3224也可以代表可以使用计算机系统3200的一个或多个用户接收结构化和/或非结构化数据馈送3226、事件流3228、事件更新3230等形式的输入通信。
作为示例,通信子系统3224可以被配置为实时地从社交网络和/或其它通信服务的用户接收数据馈送3226,诸如馈送、/>更新、诸如丰富站点摘要(RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统3224也可被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流3228和/或事件更新3230。产生连续数据的应用的示例可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
通信子系统3224也可被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送3226、事件流3228、事件更新3230,等等,这一个或多个数据库可以与耦合到计算机系统3200的一个或多个流式数据源计算机通信。
计算机系统3200可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、/>计算平板电脑、PDA)、可穿戴设备(例如,/>Glass头戴式显示器)、PC、工作站、大型机、信息站、服务器机架、或任何其它数据处理系统。
由于计算机和网络的不断变化的本质,在图中绘出的计算机系统3200的描述仅仅要作为具体的示例。具有比图中绘出的系统更多或更少部件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、软件(包括applets)或其组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
虽然已经描述了本公开的具体实施例,但是各种修改、变更、替代构造和等效形式也包含在本公开的范围内。本公开的实施例不限于在某些特定数据处理环境内操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用特定系列的事务和步骤描述了本公开的实施例,但是本领域技术人员应该清楚本公开的范围不限于所描述系列的事务和步骤。上述实施例的各种特征和方面可以单独或联合使用。
另外,虽然已经使用硬件和软件的特定组合描述了本公开的实施例,但是应当认识到硬件和软件的其它组合也在本公开的范围内。本公开的实施例可以仅用硬件、或仅用软件、或使用它们的组合来实现。本文描述的各种处理可以以任何组合在相同的处理器或在不同的处理器上实现。相应地,在组件或模块被描述为被配置为执行某些操作的情况下,可以通过例如设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作,或其任何组合来完成这样的配置。处理可以使用多种技术进行通信,包括但不限于用于处理间通信的常规技术,并且不同的处理对可以使用不同的技术,或者同一对处理可以在不同时间使用不同的技术。
相应地,说明书和附图被认为是说明性的而不是限制性的。但是,显然可以对其进行添加、减少、删除和其它修改和改变而不背离权利要求中阐述的更广泛的精神和范围。因此,虽然已经描述了具体的公开实施例,但这些并不旨在进行限制。各种修改和等效形式都在以下权利要求的范围内。
在描述所公开的实施例的上下文中(尤其在以下权利要求的上下文中)使用术语“一”和“一个”和“该”以及类似的指称要被解释为涵盖单数和复数,除非本文另有指示或与上下文明显矛盾。除非另有说明,否则术语“包括”、“具有”、“包含(including)”和“包含(containing)”要被解释为开放式术语(即,意思是“包括但不限于”)。术语“连接”应被解释为部分或全部包含在、附加到或连接在一起,即使中间存在一些东西。除非本文另有指示,否则本文中值范围的列举仅旨在用作个别引用落入该范围内的每个单独值的速记方法,并且每个单独值被并入说明书中,就好像它在本文中个别列举一样。除非本文另有指示或与上下文明显矛盾,否则本文所述的所有方法都可以以任何合适的顺序执行。本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例并且不对本公开的范围构成限制,除非另有声明。说明书中的任何语言都不应被解释为指示任何未要求保护的元素对于本公开的实践是必不可少的。
析取语言,诸如短语“X、Y或Z中的至少一个”,除非另有明确说明,否则旨在在一般用于表示项目、术语等的上下文中理解,可以是X、Y或Z,或它们的任何组合(例如,X、Y和/或Z)。因此,这种析取语言通常不旨在也不应暗示某些实施例需要X中的至少一个、Y中的至少一个或Z中的至少一个各自存在。
本文描述了本公开的优选实施例,包括已知用于实施本公开的最佳模式。那些优选实施例的变型对于本领域普通技术人员在阅读上述描述后会变得显而易见。普通技术人员应该能够适当地采用这样的变型并且可以以不同于本文具体描述的方式来实践本公开。相应地,本公开包括在适用法律允许的情况下对所附权利要求中记载的主题的所有修改和等效形式。此外,除非在本文中另有指示,否则本公开包括在其所有可能的变化中的上述元素的任何组合。
本文引用的所有参考文献,包括出版物、专利申请和专利,均以相同的程度通过引用并入本文,就好像每个参考文献个别且具体地指示通过引用并入并在本文中全文阐述一样。
在前述的说明书中,本公开的各方面参考其具体实施例进行了描述,但本领域技术人员将认识到的是,本公开不限于此。上述公开的各个特征和方面可以被单独或联合使用。此外,在不脱离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的那些之外的任何数量的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性而不是限制性的。

Claims (17)

1.一种用于数据处理的方法,包括:
由计算机系统接收预留块卷的请求,所述请求是从会话管理器服务接收的,所述请求包括用户标识符;
由计算机系统预留所述块卷;
由计算机系统识别所述块卷的数据中心标识符;
由计算机系统将所述块卷的所述数据中心标识符返回给所述会话管理器服务;
由计算机系统附加所述块卷;
由计算机系统从所述会话管理器服务接收释放所述块卷的指令;
由计算机系统创建所述块卷的备份,所述块卷的所述备份包括存储在所述块卷中的数据;以及
由计算机系统释放所述块卷;
其中预留所述块卷包括:
确定经注册的块卷是否被分配给与所述用户标识符对应的用户;以及
根据经注册的块卷被分配给所述用户,预留所述经注册的块卷;
根据经注册的块卷未分配给与所述用户标识符对应的用户,从空卷池中预留空卷,所述空卷被预格式化以与安全云壳层对接。
2.如权利要求1所述的方法,还包括:
接收恢复所述块卷的请求,该请求是从所述会话管理器服务接收的;
使用所述块卷的所述备份创建恢复卷,所述恢复卷包括存储在所述块卷中的所述数据;以及
将所述恢复卷的数据中心标识符返回给所述会话管理器服务。
3.如权利要求2所述的方法,其中,所述块卷的所述备份还包括所述备份的标识符,并且其中创建所述恢复卷包括:
从空卷池中预留空块卷,所述空块卷被预格式化以与安全云壳层对接;
使用所述备份的所述标识符检索所述块卷的所述备份;
至少部分地通过将所述块卷的所述备份加载到所述空块卷上来供应所述空块卷;以及
将所述空块卷的数据中心标识符标识为所述恢复卷的所述数据中心标识符。
4.如权利要求1所述的方法,还包括在保留时段期间保留所述块卷。
5.如权利要求1所述的方法,其中,创建所述块卷的所述备份包括创建所述块卷的盘映像。
6.如权利要求1所述的方法,其中,创建所述块卷的所述备份包括:
将所述块卷的数据转换成对象数据;以及
将所述对象数据存储在对象存储系统中。
7.一种计算机系统,包括:
一个或多个处理器;
存储器,所述存储器与所述一个或多个处理器通信,所述存储器被配置为存储计算机可执行指令,其中执行所述计算机可执行指令使所述一个或多个处理器执行包括以下各项的步骤:
由计算机系统接收预留块卷的请求,所述请求是从会话管理器服务接收的,其中,所述请求包括用户标识符;
由计算机系统预留所述块卷;
由计算机系统识别所述块卷的数据中心标识符;
由计算机系统将所述块卷的所述数据中心标识符返回给所述会话管理器服务;
由计算机系统附加所述块卷;
由计算机系统从所述会话管理器服务接收释放所述块卷的指令;
由计算机系统创建所述块卷的备份,所述块卷的所述备份包括存储在所述块卷中的数据;以及
由计算机系统释放所述块卷;
其中预留所述块卷包括:
确定经注册的块卷是否被分配给与所述用户标识符对应的用户;以及
根据经注册的块卷被分配给所述用户,预留所述经注册的块卷;
根据经注册的块卷未分配给与所述用户标识符对应的用户,从空卷池中预留空卷,所述空卷被预格式化以与安全云壳层对接。
8.如权利要求7所述的计算机系统,其中,执行所述计算机可执行指令还使所述一个或多个处理器执行步骤,包括:
接收恢复所述块卷的请求,该请求是从所述会话管理器服务接收的;
使用所述块卷的所述备份创建恢复卷,所述恢复卷包括存储在所述块卷中的所述数据;以及
将所述恢复卷的数据中心标识符返回给所述会话管理器服务。
9.如权利要求8所述的计算机系统,其中,所述块卷的所述备份还包括所述备份的标识符,并且其中创建所述恢复卷包括:
从空卷池中预留空块卷,所述空块卷被预格式化以与安全云壳层对接;
使用所述备份的所述标识符检索所述块卷的所述备份;
至少部分地通过将所述块卷的所述备份加载到所述空块卷上来供应所述空块卷;以及
将所述空块卷的数据中心标识符标识为所述恢复卷的所述数据中心标识符。
10.如权利要求7所述的计算机系统,其中,执行所述计算机可执行指令还使所述一个或多个处理器执行包括在保留时段期间保留块卷的步骤。
11.如权利要求7所述的计算机系统,其中,创建所述块卷的所述备份包括创建所述块卷的盘映像。
12.如权利要求7所述的计算机系统,其中,创建所述块卷的所述备份包括:
将所述块卷的数据转换成对象数据;以及
将所述对象数据存储在对象存储系统中。
13.一种计算机可读存储介质,其存储计算机可执行指令,所述计算机可执行指令在被执行时使计算机系统的一个或多个处理器执行包括以下各项的步骤:
由计算机系统接收预留块卷的请求,所述请求是从会话管理器服务接收的,所述请求包括用户标识符;
由计算机系统预留所述块卷;
由计算机系统识别所述块卷的数据中心标识符;
由计算机系统将所述块卷的所述数据中心标识符返回给所述会话管理器服务;
由计算机系统附加所述块卷;
由计算机系统从所述会话管理器服务接收释放所述块卷的指令;
由计算机系统创建所述块卷的备份,所述块卷的所述备份包括存储在所述块卷中的数据;以及
由计算机系统释放所述块卷;
其中预留所述块卷包括:
确定经注册的块卷是否被分配给与所述用户标识符对应的用户;以及
根据经注册的块卷被分配给所述用户,预留所述经注册的块卷;
根据经注册的块卷未分配给与所述用户标识符对应的用户,从空卷池中预留空卷,所述空卷被预格式化以与安全云壳层对接。
14.如权利要求13所述的计算机可读存储介质,其中,执行所述计算机可执行指令还使所述一个或多个处理器执行步骤,包括:
接收恢复所述块卷的请求,该请求是从所述会话管理器服务接收的;
使用所述块卷的所述备份创建恢复卷,所述恢复卷包括存储在所述块卷中的所述数据;以及
将所述恢复卷的数据中心标识符返回给所述会话管理器服务。
15.如权利要求14所述的计算机可读存储介质,其中,所述块卷的所述备份还包括所述备份的标识符,并且其中创建所述恢复卷包括:
从空卷池中预留空块卷,所述空块卷被预格式化以与安全云壳层对接;
使用所述备份的所述标识符检索所述块卷的所述备份;
至少部分地通过将所述块卷的所述备份加载到所述空块卷上来供应所述空块卷;以及
将所述空块卷的数据中心标识符标识为所述恢复卷的所述数据中心标识符。
16.如权利要求13所述的计算机可读存储介质,其中,执行所述计算机可执行指令还使所述一个或多个处理器执行包括在保留时段期间保留块卷的步骤。
17.如权利要求13所述的计算机可读存储介质,其中,创建所述块卷的所述备份包括:
将所述块卷的数据转换成对象数据;以及
将所述对象数据存储在对象存储系统中。
CN202180055623.7A 2020-08-14 2021-08-12 用于跨云壳层的实例持久化数据的技术 Active CN116018580B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311768998.5A CN117931515A (zh) 2020-08-14 2021-08-12 用于跨云壳层的实例持久化数据的技术

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US16/993,973 US11374792B2 (en) 2020-08-14 2020-08-14 Techniques for utilizing multiple network interfaces for a cloud shell
US16/993,970 2020-08-14
US16/993,970 US11368306B2 (en) 2020-08-14 2020-08-14 Techniques for using signed nonces to secure cloud shells
US16/993,973 2020-08-14
US17/078,835 US11327673B1 (en) 2020-10-23 2020-10-23 Techniques for persisting data across instances of a cloud shell
US17/078,835 2020-10-23
PCT/US2021/045797 WO2022036134A1 (en) 2020-08-14 2021-08-12 Techniques for persisting data across instances of a cloud shell

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311768998.5A Division CN117931515A (zh) 2020-08-14 2021-08-12 用于跨云壳层的实例持久化数据的技术

Publications (2)

Publication Number Publication Date
CN116018580A CN116018580A (zh) 2023-04-25
CN116018580B true CN116018580B (zh) 2023-12-29

Family

ID=77595665

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202180055623.7A Active CN116018580B (zh) 2020-08-14 2021-08-12 用于跨云壳层的实例持久化数据的技术
CN202311768998.5A Pending CN117931515A (zh) 2020-08-14 2021-08-12 用于跨云壳层的实例持久化数据的技术

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311768998.5A Pending CN117931515A (zh) 2020-08-14 2021-08-12 用于跨云壳层的实例持久化数据的技术

Country Status (4)

Country Link
EP (1) EP4196899A1 (zh)
JP (1) JP2023538870A (zh)
CN (2) CN116018580B (zh)
WO (1) WO2022036134A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114491652A (zh) * 2022-04-19 2022-05-13 广州市保伦电子有限公司 一种数据库数据加密备份及解密还原的方法及处理终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101067779A (zh) * 2006-04-04 2007-11-07 株式会社东芝 用于处理来自主机的访问请求的存储系统及方法
CN103034453A (zh) * 2011-09-30 2013-04-10 国际商业机器公司 管理虚拟机实例中预安装应用的持久数据的方法和装置
US8954574B1 (en) * 2012-05-23 2015-02-10 Amazon Technologies, Inc. Best practice analysis, migration advisor
CN110070182A (zh) * 2019-04-01 2019-07-30 京微齐力(北京)科技有限公司 适合人工智能的平台芯片及其制造和设计方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304867B2 (en) * 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
US9003141B2 (en) * 2011-11-14 2015-04-07 Ca, Inc. Enhanced software application platform
US10331374B2 (en) * 2017-06-30 2019-06-25 Oracle International Corporation High-performance writable snapshots in data storage systems
US10866888B2 (en) * 2018-01-11 2020-12-15 Intel Corporation Reservation architecture for overcommitted memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101067779A (zh) * 2006-04-04 2007-11-07 株式会社东芝 用于处理来自主机的访问请求的存储系统及方法
CN103034453A (zh) * 2011-09-30 2013-04-10 国际商业机器公司 管理虚拟机实例中预安装应用的持久数据的方法和装置
US8954574B1 (en) * 2012-05-23 2015-02-10 Amazon Technologies, Inc. Best practice analysis, migration advisor
CN110070182A (zh) * 2019-04-01 2019-07-30 京微齐力(北京)科技有限公司 适合人工智能的平台芯片及其制造和设计方法

Also Published As

Publication number Publication date
EP4196899A1 (en) 2023-06-21
CN116018580A (zh) 2023-04-25
CN117931515A (zh) 2024-04-26
JP2023538870A (ja) 2023-09-12
WO2022036134A1 (en) 2022-02-17

Similar Documents

Publication Publication Date Title
US11764961B2 (en) Techniques for using signed nonces to secure cloud shells
US11757636B2 (en) Access control for short-lived resource principals
US11789627B2 (en) Techniques for persisting data across instances of a cloud shell
US11711241B2 (en) Techniques for utilizing multiple network interfaces for a cloud shell
US11811679B2 (en) Stacked identities for resource principals
US11418343B2 (en) Access control for long-lived resource principals
US11683299B2 (en) Semi-interactive one-way transfer of data to an isolated network
CN116018580B (zh) 用于跨云壳层的实例持久化数据的技术
US20230224146A1 (en) Quorum-based authorization
CN117897693A (zh) 不同租赁拥有的计算实例的附接和分离
US20230109109A1 (en) Applications as resource principals or service principals
US20230171233A1 (en) Secure transfer of workloads across security regions
US20240119133A1 (en) Authorization between integrated cloud products using association
US11924340B2 (en) Cryptographically secure shuffle with multi-layer randomness
US20230113325A1 (en) External identity provider as a domain resource
US20230132934A1 (en) Techniques for dynamically assigning client credentials to an application
US20230283600A1 (en) Network management service for a restricted region
CN118077173A (zh) 应用作为资源主体或服务主体
WO2023055734A1 (en) Applications as resource principals or service principals
CN118043787A (zh) 用于域内实体的组合授权
CN117751554A (zh) 作为域资源的外部身份提供者
CN118120181A (zh) 单点注销

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