CN112912880A - 用于个性化的网络服务的容器构建器 - Google Patents

用于个性化的网络服务的容器构建器 Download PDF

Info

Publication number
CN112912880A
CN112912880A CN201980069810.3A CN201980069810A CN112912880A CN 112912880 A CN112912880 A CN 112912880A CN 201980069810 A CN201980069810 A CN 201980069810A CN 112912880 A CN112912880 A CN 112912880A
Authority
CN
China
Prior art keywords
container
builder
data
image
database
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.)
Pending
Application number
CN201980069810.3A
Other languages
English (en)
Inventor
T·内奇
T·E·阿姆托尔
J·伯格特
M·G·赫勒
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of CN112912880A publication Critical patent/CN112912880A/zh
Pending legal-status Critical Current

Links

Images

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
    • G06F21/6281Protecting 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 at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一些实施例涉及一种用于构建容器镜像的容器构建器(110),所述容器镜像用于基于数据库(121)中的敏感数据(122)来提供个性化的网络服务。所述容器构建器(110)从所述数据库(121)中检索所述敏感数据(122),构建所述容器镜像(140),并且向云服务提供商(111)提供用于部署的所述容器镜像。所述容器镜像(140)包括所述敏感数据(122)和指令,当所述容器镜像被部署为容器时,所述指令使所述容器基于所述容器镜像(140)中包括的所述敏感数据(122)来提供所述个性化的网络服务。

Description

用于个性化的网络服务的容器构建器
技术领域
本发明涉及容器构建器、云服务提供商、容器构建器方法、云服务提供商方法和计算机可读介质。
背景技术
US 2011/314466 A1公开了创建云计算环境的实例。
EP 3267351 A1公开了安全地管理Docker镜像(Docker image)。
在各种设置中,基于诸如互联网之类的公共网络上的敏感信息来提供诸如Web应用程序之类的网络服务是有益的。例如,可以基于关于患者的医学信息来提供各种服务,从而例如允许患者检查电子病历或者填写在线评估(例如,问卷)。还可以基于其他种类的敏感信息来提供服务,例如,关于公司的商业敏感信息可以用于标杆管理、会计等。
通过公共网络提供服务可能会带来各种安全风险。特别地,攻击者可能试图以各种方式破坏敏感信息的机密性和/或完整性。例如,攻击者可能试图闯入存储有敏感信息的数据库服务器,该敏感信息例如与向其提供服务的患者或公司有关。或者,攻击者可能试图闯入提供网络服务的服务器,例如,Web应用程序。在这样做时,攻击者可能使用各种已知的技术,例如使用由服务器使用的各种软件中的漏洞和/或使用旁路。例如,现代处理器的最新的Spectre漏洞和Meltdown漏洞可能允许没有特定权限来访问服务器的攻击者从服务器上同时运行的进程中非法获取数据。攻击者可以是外部攻击者,但也可以是网络服务的内部人员和/或合法用户,例如,试图获取或编辑另一用户的信息的用户。
因此,可能需要应对与基于敏感数据来提供网络服务有关的各种安全风险。
一种已知的应对这些风险中的至少一些风险的技术是容器化。例如,在US 2017/0098092 A2中,公开了用于生成虚拟私有容器的技术。虚拟私有容器定义了一个自包含的软件环境,该软件环境包括一个或多个分析部件,这些分析部件被配置为对容器内的数据执行指定的分析功能。分析部件被隔离以在容器内运行,以便防止容器之间的数据共享。虚拟私有容器可以从诸如HDFS商店之类的外部系统访问用户数据,服务的用户可以为该用户数据提供授权信息(例如,身份)。
发明内容
用于基于敏感数据来提供网络服务系统的现有系统(例如,US2017/0098092A2)的缺点是它们不足以应对与基于敏感数据来提供网络服务有关的各种安全风险。例如,可以将敏感数据存储在诸如数据库之类的外部存储设备中。在现有系统中,各种设备可能需要访问该外部存储设备。例如,被部署在各种主机上的虚拟私有容器可能各自都需要访问外部存储设备。因此,外部存储设备可能需要是能够公开或者至少广泛访问的,从而成为攻击的诱人目标。此外,US 2017/0098092 A2的现有系统不允许将更新的数据写回存储设备。更一般地,在现有系统中,可以将关于系统的多个用户或潜在用户的敏感信息存储在可能并未足够安全的中央位置中。
为了更好地解决这些关心问题中的一个或多个关心问题,提出了如独立权利要求中所定义的容器构建器和/或云服务提供商。容器构建器构建用于基于数据库中的敏感数据来提供个性化的网络服务(例如,Web应用程序)的容器镜像。发明人认识到:如果敏感数据被包括在容器镜像中,则可能会限制敏感数据的暴露。该数据库能够是容器构建器的私有数据库。容器构建器从数据库中检索敏感数据,构建容器镜像,并且向云服务提供商提供用于部署的容器镜像。容器镜像包含敏感数据和指令,当所述容器镜像被部署为容器时,所述指令使容器基于敏感数据来提供个性化的网络服务。云服务提供商接收这样的用于部署的容器镜像并将其部署为容器。
这种布置提高了安全性,例如,因为数据库的暴露较低;例如,云服务提供商和/或其中部署了容器的容器主机不需要直接访问数据库,因此无需使数据库对其可用,例如能够将其部署在容器构建器处或附近。此外,容器构建器的暴露是有限的,例如,容器构建器确实需要接受传入的连接,可能在防火墙后面,并且/或者可能仅为了提供容器镜像而连接到网络。虽然容器主机暴露较高,例如容器主机可以接受传入的网络连接以提供网络服务,但是容器主机只存储了有限数量的数据,因此破坏的影响较小。而且,由于容器主机无需访问外部源来获取敏感数据,因此容器主机可能需要的网络连接较少。
在一个实施例中,敏感数据包括关于向其提供个性化的网络服务的用户的个人信息。在一个实施例中,个人信息包括电子病历。在这样的实施例中,鉴于数据的高敏感性,对敏感信息进行保护是特别有益的。
在一个实施例中,容器镜像在时限之后和/或在对个性化的网络服务的使用完成之后终止,从而进一步减少暴露。
在一个实施例中,容器构建器获取由个性化的网络服务更新的更新的数据,并将该更新的数据存储在数据库中。以这种方式,网络服务不仅可以使用来自数据库的敏感数据,还可以为数据库产生数据而无需将数据库暴露给外部。为了提高保护,容器可以对更新的数据进行加密。容器构建器还可以向个性化的网络服务的预期用户提供认证信息(例如,私有地址和/或令牌),从而降低未经授权访问网络服务的风险。
本发明的另外的方面涉及容器构建器方法和云服务提供商方法。这些方法的实施例可以作为计算机实施的方法在计算机上实施,或者在专用硬件中实施,或者在这两者的组合中实施。针对方法的实施例的可执行代码可以被存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括被存储在计算机可读介质上的非瞬态程序代码,当在计算机上执行所述程序产品时,所述非瞬态程序代码执行方法的实施例。
在一个实施例中,计算机程序包括计算机程序代码,当计算机程序在计算机上运行时,所述计算机程序代码适于执行容器构建器方法或云服务提供商方法的实施例的所有步骤。优选地,计算机程序被实施在计算机可读介质上。
本发明的另外的方面涉及一种计算机可读介质,所述计算机可读介质包括表示用于提供个性化的网络服务的容器镜像的数据。容器镜像包括敏感数据和用于基于敏感数据来提供个性化的网络服务的指令,从而允许向服务提供有限的数据暴露。
本发明的另一方面提供了一种使计算机程序可用于下载的方法。当计算机程序被上传到例如苹果的苹果商店、谷歌的Play商店或微软的Windows商店时并且当可从这样的商店下载该计算机程序时,将使用这方面。
附图说明
参考附图,将仅通过举例的方式来描述本发明的进一步的细节、方面和实施例。为了简单和清楚,图示了附图中的元件,并且附图中的元件不一定是按比例绘制的。在附图中,与已经描述过的元件相对应的元件可以具有相同的附图标记。在附图中,
图1示意性地示出了网络服务系统的实施例的示例,
图2示意性地示出了网络服务系统的实施例的示例,
图3示意性地示出了网络服务系统的实施例的示例,
图4a示意性地示出了云服务器的实施例的示例,
图4b示意性地示出了个性化的网络服务的实施例的示例,
图4c示意性地示出了容器构建器的实施例的示例,
图5示意性地示出了网络服务系统的实施例的示例,
图6示出了根据实施例的用于实施设备的硬件图,
图7a示意性地示出了容器构建器方法的实施例的示例,
图7b示意性地示出了云服务提供商方法的实施例的示例,
图7c示意性地示出了根据实施例的具有包括容器镜像的可写部分的计算机可读介质,
图7d示意性地示出了根据实施例的具有包括计算机程序的可写部分的计算机可读介质。
附图标记列表:
100 网络服务系统
110 容器构建器
111 云服务提供商
112 容器主机
113 用户设备
120 数据接口
121 数据库
122 敏感数据
131 数据处理单元
132 图像处理单元
133 云处理单元
135 构建器处理单元
136 部署单元
140 容器镜像
141 用于提供个性化的网络服务的指令
143 终止指令
150、151 通信接口
160 容器平台
170、171、172 容器
190 计算机网络
191 防火墙
200 网络服务系统
210 容器构建器
211 云服务提供商
212 容器主机
213 用户设备
220 数据接口
221 数据库
223 更新的数据
231 数据处理单元
232 图像处理单元
233 云处理单元
235 构建器处理单元
236 部署单元
240 容器镜像
244 加密密钥
245 解密密钥
246 加密指令
250、251 通信接口
260 容器平台
270 容器
280 存储设备
290 计算机网络
300 网络服务系统
310 容器构建器
311 云服务提供商
312 容器主机
313 用户设备
332 图像处理单元
336 部署单元
340 容器镜像
347 令牌
348 私有地址
349 用于验证令牌拥有权的指令
350、351 通信接口
370 容器
390 计算机网络
400 云服务器
401 认证数据库
402 记录数据库
403 应用程序数据库
410 管理控制台
411 应用软件
420 SSH接口
421 HTTP接口
422 Web API
430 个性化的网络服务
431 认证数据库
432 记录数据库
433 应用程序数据库
441 特定用户的凭证
442 特定于特定用户的数据
443 特定服务所需的数据
450 应用软件
451 特定服务所需的部件
460 用于特定服务的接口
470 容器构建器
471 认证数据库
472 数据库
473 应用程序数据库
474 软件部件
480、488、489 容器镜像
481 敏感数据
482 软件部件子集
500 网络服务系统
510 容器构建器
512 容器主机
513 用户设备
514 云服务器
521 数据库
522 敏感数据
534 应用软件
560 容器平台
570 容器
580 网络服务
581、582 重新定向
1100 用于实施设备的硬件图
1110 系统总线
1120 处理器
1130 存储器
1140 用户接口
1150 通信接口
1160 存储设备
1161 基本操作系统
1162-1164 用于数据处理单元/图像处理单元/…的指令
1200 容器构建器方法
1210 提供对数据库的访问
1220 提供数字通信
1230 检索敏感数据
1240 构建容器镜像
1250 提供容器镜像
1300 云服务提供商方法
1310 提供数字通信
1320 接收容器镜像
1330 部署容器镜像
1900 计算机可读介质
1910 可写部分
1920 容器镜像
1921 敏感数据
1922 用于提供个性化的网络服务的指令
2000 计算机可读介质
2010 可写部分
2020 计算机程序
具体实施方式
虽然本发明可以有许多不同形式的实施例,但是在附图中示出并且将在本文中详细描述一个或多个特定实施例,应当理解,本公开内容被认为是本发明原理的示例,并非旨在将本发明限于所示和所述的特定实施例。
在下文中,为了便于理解,在操作中描述了实施例的元件。然而,很明显,各个元件被布置为执行所描述的由它们执行的功能。
另外,本发明不限于这些实施例,并且本发明在于本文描述的或在互不相同的从属权利要求中记载的每一个新颖特征或特征组合。
在讨论图1-图3的详细实施例之前,首先参考图4a-图4c来讨论本发明的各个方面。
作为解释以下阐述的实施例的各个方面的激励示例,考虑用于患者评估的基于Web的门户。例如,患者在接受某种治疗后可以使用这样的门户来提供关于其健康状况的信息。这样的系统通常基于医学数据,例如,向患者提出的问题可能取决于所接受的特定处置,并且/或者用户可能能够检查其电子病历的至少部分。此外,该系统还可以产生新的数据(例如,关于由患者提供的健康状况的信息),新的数据需要得到存储和进一步处理,例如被提供给参与治疗的医疗保健专业人员。由门户使用的医学信息和由门户产生的信息通常都是关于患者的敏感个人信息。除此之外,所使用的软件(例如,决定要提出哪些问题或者要给出哪些建议的临床决策支持算法)也可能是敏感资产。因此,需要安全措施来确保数据和/或软件不会落入错误的人手中。
图4a示出了基于云服务器400上的敏感数据的系统的实施方式,该云服务器400例如上面讨论的用于患者评估的基于Web的门户,其并不利用私有数据库或容器镜像。Web应用程序可以在这样的云服务器400(例如,远程云服务器)上运行,并且例如使用请求-响应模式向客户端提供网络服务。云服务器400可以包括例如提供网络服务的应用软件411以及一个或多个数据库。例如,数据库可以包括:认证数据库401(其例如包括加密密钥、口令、令牌等);记录数据库402(其例如包括电子病历或其他敏感信息)和/或应用程序数据库403(其例如包含应用程序数据)。用户可以使用Web浏览器来访问由应用软件411(例如经由HTTP接口421)提供的Web应用程序。应用软件411还可以经由Web API 422提供一个或多个Web服务(例如,REST服务)。在访问该应用程序之前,用户可能需要向应用软件411标识自己,例如,其中,应用软件411对由该用户基于认证数据库401中的信息给出的凭证进行认证。应用软件411可以在记录数据库402中检索和/或存储敏感信息,例如,用户能够检索和/或更新记录数据库402的记录而作为应用程序的部分。
在例如图4a的系统之类的系统中,多个用户的数据可以被存储在云服务器400上,例如被存储在数据库401和/或402中。加密和/或其他安全措施可以用于提高数据安全性、隐私性和/或防止数据泄露,利用漏洞或其他访问用户数据的尝试。云服务器400可能具有安全风险,如果黑客能够破坏云服务器400,则可能窃取所有用户(可能是成千上万个用户)的数据而用于其他攻击和/或将其公开。
为了使数据泄露的风险最小化,可以高度控制对应用软件411的访问,从而潜在地导致用户体验降级。尽管如此,在与云服务器400类似布置的系统中仍可能存在各种与安全有关的问题。例如,除了单个用户帐户的无效(例如由于密码被盗所致)之外,应用软件411中的编程错误或漏洞也可能允许攻击者从记录数据库402访问大量帐户和/或大量数据。发明人认为:用户数据(例如,记录数据库402中包括的关于多个用户的用户数据)和应用软件411驻留在同一位置或者至少该应用软件411可能具有访问关于多个用户的用户数据的权限是造成该问题的原因。此外,云服务器400还可以包括例如可经由SSH接口420访问的管理控制台410,并且这样的额外访问信道的存在可能构成进一步的安全问题。下面描述的各种实施例可以减少数据泄露的风险和/或避免对额外管理通道的需要。
各种实施例涉及基于敏感数据来提供个性化的网络服务。发明人认识到:为了向特定用户提供特定服务,可能并不需要系统400的所有部分,例如,可以将系统400针对特定用户和/或针对特定服务实施个性化。图4b示出了个性化的网络服务430的实施例的示例。个性化可以指的是基于特定于一个或多个特定用户的敏感数据(例如,来自数据库的数据子集)来向一个或多个特定用户(例如,特定的人、系统或设备)提供特定服务。例如,数据可以包括特定于特定服务和/或特定用户或用户集合的数据。例如,数据可以是关于一个或多个用户的数据和/或一个或多个用户有特殊权限访问的数据。例如,个性化的网络服务可以使用敏感数据作为输入和/或提供更新的数据作为输出。
作为示例,个性化的网络服务可以是实施个性化以允许特定患者或患者集合填写专用问卷的Web应用程序(例如,上面讨论的基于Web的患者评估门户)。作为另一示例,个性化的Web服务可以是针对特定用户实施个性化的Web服务(例如,REST Web服务)。个性化的网络服务并不需要基于HTTP,实际上,个性化的网络服务可以是基于敏感数据(例如,使用已知协议(例如,FTP、IMAP、POP或非基于IP的协议(例如,基于NetBIOS的协议))提供的敏感数据)实施个性化的任何类型的网络服务。
根据各种实施例,基于特定于该用户的敏感数据向该用户提供个性化的Web服务可以具有的优点是:可以有效地屏蔽特定于其他用户的数据而不受该个性化的Web服务的影响,从而对于特定用户来说降低了该用户的数据被其他用户或第三方无意访问的风险。在一个实施例中,敏感数据可以包括关于用户的个人信息。可以向该用户提供个性化的网络服务。在一个实施例中,个人信息包括电子病历。由于数据的特殊敏感性和/或特别是在处理个人信息和医学数据方面的特殊法律要求,因此在这种情况下个性化特别重要。
如所提及的,个性化的网络服务430可能并不需要云服务器400的所有数据和/或部件来操作。例如,认证数据库431可能仅需要包含一个或多个特定用户的认证信息441。记录数据库432可能仅需要包含特定于一个或多个用户的数据442。类似地,应用程序数据库433可能仅需要包含特定服务所需的数据443,例如,用于特定服务但不用于在另一时间点可能被提供给相同用户或其他用户的其他服务的图像、UI元素或其他类型的数据。应用软件还可能仅需要包含特定服务所需的部件451,例如,软件模块、库等。对于特定服务,可能仅需要提供到外部的接口460,例如,在这种情况下,不需要Web API或SSH接口。与云服务400相比,个性化的网络服务430可以被视为简化版本,但是实际上,可以通过移除完整的云服务器部署的部件或者通过仅使用选定的部件从头构建个性化的网络服务或者将这两者结合来构建个性化的网络服务。与云服务器400相比,使这样的个性化的网络服务可用的优点在于:在最坏的情况下,潜在的数据泄漏将揭示特定于网络服务的个性化所针对的一个或多个用户的凭证和/或数据。此外,更少的接口和/或更少的软件降低了利用漏洞和/或破坏有价值的软件资产的风险。
在各种实施例中,借助于容器化技术来提供网络服务的个性化。当使用容器化时,通常将应用程序打包到容器镜像中。例如,容器镜像可以包括用于在容器主机(例如包括一个或多个部件,例如,应用程序部件和/或用于运行应用程序的运行时部件)上运行应用程序的自包含包。例如,容器镜像可以用于在容器平台上运行应用程序。在一些实施例中,运行时部件并不包括操作系统,从而减小了图像大小并且提高了性能。在其他实施例中,运行时部件可以包括操作系统,从而使图像更加自包含。容器镜像中的部件可以包括例如Web服务器、数据库服务器、数据分析工具箱、模拟器等。通常,使用容器镜像可能具有以下优点:它们轻巧但自包含,例如,它们包含应用程序代码、运行时、系统工具、库和/或运行应用程序的设置中的一项或多项。例如,这可以消除为运行在容器主机上的应用程序单独安装和/或维护库的需要。
现今,基于各种类型的容器镜像,可以使用各种容器化技术。例如,Docker技术允许基于被称为“Dockerfile”的配置文件来构建Docker容器镜像并然后将该Docker容器镜像在例如运行Docker Engine的系统上或者部署在市场上可获得的各种云提供商(例如,Heroku、Amazon Elastic Container Service等)上部署为容器。其他类型的容器镜像能够是JAR文件;WAR文件;Heroku slug文件;磁盘镜像(例如,用于在管理程序上运行的磁盘镜像);压缩文件(例如,ZIP或TAR文件)(例如,在chroot环境中运行的压缩文件)等。取决于所使用的容器化技术和目标平台上可用的软件,各种软件库可以被包括在容器镜像中,也可以按平台提供的方式被使用,例如,针对Ruby on Rails应用程序的容器镜像可以包括应用程序本身,但是还可以包括Ruby on Rails平台、Web服务器、系统库和/或操作系统,例如具体取决于这些部件中的哪个部件在部署平台上可用。可以使用通过接受用于部署的容器镜像并将其在其基础架构上部署为容器来实施容器化技术的各种云服务提供商,例如,Heroku和Amazon Elastic Container Service是接受Docker容器镜像以及其他类型的容器镜像的云服务提供商的示例。
特别地,各种实施例涉及容器构建器。容器构建器(也被称为容器工厂或容器构建器设备)可以是用于构建容器镜像的设备,例如,可以使用以上讨论的容器化技术之一来部署的容器镜像。在图4c中示意性地示出了这样的容器构建器的实施例的示例。图4c中的容器构建器470基于数据库中的敏感数据来构建用于提供个性化的网络服务的容器镜像。容器构建器470可以例如通过数据接口来访问包括敏感数据的私有数据库472(例如,如上所述的记录数据库)。容器构建器470还可以有权访问各种其他数据源和/或软件源(例如,认证数据库471、应用程序数据库473和/或用于提供个性化的网络服务的软件部件子集474)。在较高级别上,容器构建器470构建容器镜像并且例如使用通信接口向云服务提供商提供用于部署的容器镜像。容器镜像(例如,容器镜像480、488或489)可以基于数据库471、472和473和软件部件474中的一项或多项。例如,容器镜像480可以包括敏感数据481和指令,基于敏感数据481,从私有数据库472和/或其他数据库提供(例如,获取)个性化的网络服务,当容器镜像480被部署为容器时,所述指令使容器基于敏感数据来提供个性化的网络服务。例如,指令可以包括软件部件子集482,其用于提供来自软件部件集合474的个性化的网络服务,并且类似地用于其他容器镜像。个人信息可以例如被存储在容器镜像内的数据库中。下面描述了容器构建器的各种实施例。
有趣的是,容器构建器470可以有权访问相对大量的信息(例如,包括涉及多个用户的信息的数据库472),但是容器构建器470可能仅具有有限的网络暴露,例如,容器构建器470不需要直接向用户提供服务。另一方面,根据由容器构建器470构建的容器镜像(例如,容器镜像480、488和489)部署的容器可能需要比容器构建器470更为暴露,因为它们需要向用户提供个性化的网络服务。然而,它们仅存储和/或有权访问容器构建器470有权访问的信息的子集(通常仅为一小部分)。由于减少了敏感数据的暴露,因此这种布置在数据保护方面提供了总体上的改进。
图1示意性地示出了用于提供个性化的网络服务的网络服务系统100的实施例的示例。网络服务系统100可以包括容器构建器110(例如,容器构建器设备)。网络服务系统100可以包括用于将容器镜像部署为容器的云服务提供商111(例如,云服务提供商设备)。容器可以被部署在云服务提供商111本身和/或由云服务提供商管理的单独的容器主机(例如,容器主机设备)上。附图中示出了一个这样的容器主机112,但是在一个实施例中,网络服务系统100包括由云服务提供商111管理的多个容器主机,而在另一实施例中,网络服务系统100并不包括除了云服务提供商111本身之外的容器主机。
如下面进一步讨论的,图1示出了功能单元(例如,单元131、132、133、135和/或136),其可以是相应设备的处理器(例如,容器构建器110或云服务提供商111的处理器)的功能单元。例如,图1的容器构建器110可以用作处理器的可能的功能组织方式的蓝图。处理器未与附图中的单元分开显示。例如,容器构建器110的功能单元可以全部或部分被实施在被存储在容器构建器110中的计算机指令中(例如被实施在容器构建器110的电子存储器中)并且可以由容器构建器110的微处理器来执行。在混合式实施例中,功能单元被部分地实施在硬件(例如被实施为协处理器(例如,加密协处理器))中并且被部分地实施在容器构建器110上存储和执行的软件中,并且对于各幅附图中的其他设备来说也是类似的情况。
网络服务系统100的各种设备可以协作以基于数据库121中的敏感数据122向用户设备113提供个性化的网络服务。在一个实施例中,敏感数据包括关于用户的个人信息;例如,网络服务系统100可以用于例如通过用户设备113向该用户提供个性化的网络服务。在一个实施例中,个人信息包括电子病历。在一个实施例中,敏感数据不包括认证或授权信息,例如,敏感数据不包括数据库凭证。用户设备113可以是具有网络连接性的任何设备(例如,膝上型计算机、台式电脑或诸如移动电话或平板电脑之类的移动设备(例如当个性化服务是Web应用程序时)或服务器(例如当个性化服务是Web服务时))。
在一个实施例中,将个性化的网络服务提供给多个用户,例如,该服务的潜在用户的严格子集,其例如与数据库121的条目的严格子集相对应。例如,用户数量可以是可配置的。这可以允许在以更高的安全性和更低的效率针对单个用户实施个性化的网络服务的极端情况与以更低的安全性和更高的效率同时向所有用户提供的网络服务的极端情况之间进行动态的安全性/效率的权衡。
系统100的各种设备通过计算机网络190彼此通信。计算机网络可以是互联网、内联网、LAN、WLAN等。计算机网络190可以是互联网。该计算机网络可以是全部或部分有线的和/或全部或部分无线的。例如,计算机网络可以包括以太网连接。例如,计算机网络可以包括无线连接,例如,Wi-Fi、ZigBee等。这些设备包括连接接口,该连接接口被布置为根据需要与系统180的其他设备进行通信。例如,连接接口可以包括连接器,例如,有线连接器(例如,以太网连接器)或无线连接器(例如,天线,例如,Wi-Fi、4G或5G天线)。例如,容器构建器110和云服务提供商111可以分别包括通信接口150和151。计算机网络190可以包括额外的元件(例如,路由器、集线器等)。
网络服务系统100可以利用容器化技术来限制敏感数据的暴露。容器构建器110可以构建容器镜像140并且向云服务提供商111提供用于部署的容器镜像140。云服务提供商111可以在例如容器主机112上部署容器镜像140。有趣的是,容器镜像140可以包括敏感数据122和指令,当容器镜像140被部署为容器时,所述指令使容器基于敏感数据122来提供个性化的网络服务。这可以使得云服务提供商111在本身无权访问敏感信息121的数据库的主机上提供云服务,从而限制数据库121的暴露。
从文献中已知用于操作云服务提供商和/或容器主机本身的各种技术。通常,容器主机112被配置为运行容器平台160和在该容器平台上的一个或多个容器(例如,容器170、171和172)。在一个实施例中,容器平台160在操作系统上运行,并且容器170、171、172并不包括操作系统本身。例如,容器平台160可以包括Docker Engine,并且容器170、171和172可以是Docker容器。在一个实施例中,容器平台160包括管理程序,并且一个或多个容器170、171、172可以是虚拟机(例如,从包括磁盘镜像的容器镜像部署的虚拟机)。在这种情况下,容器170、171、172可以包括操作系统。在一个实施例中,容器平台160可以包括类似Unix的操作系统,并且一个或多个容器170、171、172可以包括在chroot监狱中操作的软件。例如,用于这样的chroot监狱的容器镜像可以包括chroot监狱中的软件有权访问的文件集合。在一个实施例中,170、171、172是Heroku平台160的测功机。
如上面所讨论的,云服务提供商111可以将容器镜像部署在云服务提供商111本身上,而不是部署在单独的容器主机上。在这样的情况下,例如,如上所述,云服务提供商111本身充当容器主机,例如,云服务提供商111本身可以运行容器平台,并且在该容器平台上运行一个或多个容器。在这样的实施例中,服务提供商111被配置为将容器镜像140在该容器平台上部署为容器。
云服务提供商111也可以是管理一个或多个容器主机的管理节点。例如,云服务提供商111可以被配置为Kubernetes集群的主节点,容器主机112和/或其他容器主机被配置为Kubernetes集群的计算节点。或者,云服务提供商111可以被配置为Docker群的群管理器,容器主机112和/或其他容器主机被配置为Docker群的节点。云服务提供商111还可以是例如OpenStack控制器节点,容器主机112和/或其他容器主机被配置为OpenStack集群的计算节点。使用多个容器主机可以提高可扩展性,但也可能难以预测将容器镜像在哪个主机上部署为容器和/或在同一容器主机上运行了哪些其他容器,从而使跨在相同基础架构中运行的容器的攻击变得复杂。在一些实施例中,云服务提供商111可以是常规的云服务提供商111,例如,Heroku、Amazon Elastic Container Service、Amazon EC2等。
特别地,云服务提供商111可以包括通信接口151,该通信接口151被配置用于例如使用计算机网络190与容器构建器110和/或容器主机112和/或网络服务系统100的其他设备进行数字通信。云服务提供商111还可以包括构建器处理单元135,该构建器处理单元135被配置为使用通信接口151例如从容器构建器110接收容器镜像140。云服务提供商111还可以包括被配置为将容器镜像部署为容器的部署单元136。例如,云服务提供商可以将容器镜像140部署在容器主机(例如,容器主机112)上,或者部署在云服务提供商111本身上运行的容器平台上。这对于容器构建器110而言可以是透明的,例如,容器构建器110在部署之前和/或之后可能不知道其容器镜像被部署在哪个特定主机上。
容器镜像140的部署可以由容器构建器110来启动。例如,容器构建器110可以接收指令以构建容器镜像,该容器镜像用于基于敏感数据来提供个性化的网络服务。例如,该指令可以包括例如来自多个网络服务的预定义集合的网络服务的标识和网络服务的一个或多个预期用户的标识中的一项或多项,其中,用户可以例如是人员或其他网络实体,例如,与数据库121存储敏感数据有关的用户。例如,可以从外部网络实体接收指令,例如,容器构建器110可以定期与外部网络实体联系以接收指令;可以例如经由容器构建器110的用户接口从容器构建器110的用户接收指令;或者可以从容器构建器110的另一部件(例如,定期监测数据库和/或任何已部署的容器镜像的状态以确定应当提供一个或多个个性化的网络服务的部件)接收指令。
在一些实施例中,用于提供个性化的网络服务的时间表可能是相对可预测的。例如,在基于Web的患者评估门户中,可以要求患者定期(例如,每周或每月)填写调查问卷。此外,个性化的网络服务可能不会一直提供给同一用户集合,例如,要求患者在三天内填写每月调查问卷,从而使平均而言只有大约十分之一的患者有调查问卷等待他们处理。因此,在一些实施例中,仅同时向潜在用户集合的子集(例如,关于数据库121存储的敏感数据的用户的子集)同时提供个性化的网络服务。在这样的情况下,提供个性化的网络服务可能会特别有益,因为未获得服务的用户的敏感数据没有暴露。
为了访问包括容器镜像140所基于的敏感数据122的数据库121,容器构建器110可以包括数据接口120。数据库121可以存储与多个用户有关的敏感数据,例如,多个敏感记录,每个记录表示涉及一个或多个用户的敏感数据。例如,记录可以包括关于特定人员(例如,患者)的一条医学信息。数据库121可以是本地存储的数据库。数据库121也可以是外部数据库,其中,数据接口120连接到外部数据库。例如,当需要来自数据库的敏感信息时,可以向数据接口120询问该敏感信息,然后数据接口120可以例如从外部数据库中检索该敏感信息。外部数据库对于设备110的其余部分可以是透明的。数据库121可以被配置为容器构建器的私有数据库(例如,本地数据库)。例如,数据库121能够通过或仅通过局域网(LAN)进行访问,或者数据库121可以是在容器构建器110上运行的本地数据库。特别地,可能无法通过计算机网络190来访问数据库121,或者可能至少容器主机112、云服务提供商111和用户设备113中的一项或多项无法访问数据库121。这可以有利地减少数据库121的暴露。
容器构建器110还可以包括数据处理单元131,该数据处理单元131被配置为使用数据接口120从数据库121中检索敏感数据122。例如,在接收到基于与特定用户有关的敏感数据而提供特定的个性化的网络服务的请求时,数据处理单元131可以选择与用户有关的数据(例如记录)子集并从数据库121中检索该数据子集。
容器构建器110还可以包括图像处理单元132,该图像处理单元132被配置为构建用于提供个性化的网络服务的容器镜像140。如上面所讨论的,已知各种类型的容器镜像140(例如,用于提供特定网络服务的容器镜像)和用于构建容器镜像的工具并且可以在这里应用它们。例如,容器镜像140可以是Docker容器镜像,图像处理单元132被配置为使用Docker(例如使用“docker build”命令或类似命令)基于Dockerfile来构建容器镜像140。例如,如以上参考图4c所讨论的,构建容器镜像140可以包括选择提供特定的个性化的网络服务所需的软件部件(例如,模块和/或库)。仅选择所需的软件部件可以具有的优点是:容器基于该软件部件的可能性降低和/或可能从该容器中提取的软件资产的价值减少,例如,可能仅需要包括与当前病例相关的临床决策支持或MRI重建部件的受限集合,而未包括在内的部件则不会暴露。
图像处理单元132可以被配置为基于配置(例如,配置文件)来构建容器镜像140,并且任选地还被配置为生成该配置。例如,在基于Docker的实施例中,该配置可以包括Dockerfile。图像处理单元132可以例如通过对模板配置进行实例化来生成该配置,例如通过选择这样的模板的部分和/或通过填写字段来生成该配置。例如,这可以基于要提供的特定网络服务和/或要向其提供网络服务的一个或多个特定用户。图像处理单元132也可以重新使用相同的配置,例如,构建个性化的容器镜像140可以包括基于要提供的特定网络服务和/或要向其提供该服务的一个或多个特定用户来布置在该配置中所引用的各种文件。可以类似地使用其他各种镜像构建工具,例如,OpenStack的diskimage-builder或jailkit工具来构建chroot环境。
如所提及的,容器镜像140包括敏感数据122。例如,敏感数据可以以本地数据库的形式被包括在容器镜像140中,例如,图像处理单元132可以向容器镜像140添加数据库软件和指令和/或数据以设置具有敏感数据的数据库软件122。例如,数据库软件可以是诸如sqlite之类的无服务器数据库软件。所包括的数据库可以是数据库121的子数据库。例如,图像处理单元132可以将所包括的数据库设置为提供个性化的网络服务所需的数据库121(例如包括敏感数据122)的表、列和/或行的子集。例如,该数据可以包括凭证441、用户数据442和/或服务数据443,如参考图4b所讨论的那样。可以将容器镜像140中的软件(例如,指令141)设置为使其连接到本地数据库(例如而不是连接到远程数据库121)。这对于访问数据库的容器镜像140中的软件是透明的,例如,除了调节数据库连接参数之外,可能不需要对该软件进行其他调整即可使其使用来自容器镜像140的而不是来自远程数据库的敏感数据122。然而,这不是必须的,例如,也可以通过调整容器140的软件来实现对本地敏感数据的使用,以使其使用例如文本文件而不是数据库,或者使得在指令中对敏感数据122进行硬编码。在一个实施例中,容器镜像140不包含这样的指令:当容器镜像140被部署为容器时,所述指令使容器从外部数据库中检索敏感数据。通常,在容器镜像140中包括敏感数据122可以减轻对云服务提供商111和/或容器主机120和/或用户设备113访问数据库131的需要,从而提高了安全性。
在一个实施例中,容器镜像140包括终止指令143。当容器镜像140被部署为容器时,终止指令143可以使容器在时限之后终止。这可以具有不需要通知和/或定期检查终止的优点。另一优点是不会不必要地延长服务的暴露时间。终止指令143可以替代地或额外地使容器在对个性化的网络服务的使用完成之后终止。例如,在对个性化的网络服务进行预定义次数的成功访问之后(例如在单次访问之后或者在至少或最多三次或十次访问之后),容器终止。例如,提供基于Web的患者评估门户的容器可以在评估完成后终止。使用后终止可以具有以下优点:不会不必要地延长服务的暴露时间和/或可以例如由容器构建器110将检测用作完成对个性化的网络服务的使用的指示。终止指令143还可以包括从容器中删除某些数据(例如,包括不需要保留的敏感软件资产或敏感数据的软件模块)的指令,这可以进一步减少敏感信息的暴露。
在一个实施例中,图像处理单元132被配置为通过以下操作来构建容器镜像140:例如在接收到对构建容器镜像的请求之前首先准备容器镜像,并且在接收到该请求时基于敏感数据122来定制容器镜像。例如,构建容器镜像140可以包括多个构建步骤,准备容器镜像包括构建步骤的第一集合,并且定制容器镜像包括构建步骤的第二集合,构建步骤的第二集合包括将特定的用户凭据和/或敏感数据添加到容器镜像的步骤。图像处理单元132还可以使用占位符数据而不是敏感数据122来构建容器镜像,然后在从数据库121中检索到敏感数据122之后用敏感数据122替换占位符数据。例如,占位符数据可以被包括在容器镜像的一个或多个特定文件中。图像处理单元132可以基于敏感数据122将这些特定文件替换为个性化的文件。例如,如上面所讨论的,这些特定文件可以是用于数据库软件的文本文件或数据库文件。无论如何,在定制时执行的工作量可能相对较小,从而提高了总体可扩展性。
容器构建器110还可以包括通信接口150,该通信接口150被配置用于例如通过计算机网络190与云服务提供商111和/或网络服务系统100的其他设备进行数字通信,如上面更详细地解释的那样。在一个实施例中,容器构建器110在防火墙191后面连接到云服务提供商111。例如,防火墙191可以包括控制容器构建器110与其他设备之间的交流的网络防火墙。在一个实施例中,容器构建器不接受从容器构建器111和/或容器主机112和/或用户设备113传入的网络连接。例如,对于从计算机网络190传入的连接,云服务提供商111可能根本无法直接访问。防火墙191可以替代地或额外地包括基于主机的防火墙(例如,在容器构建器110上运行的基于主机的防火墙,例如,阻挡从计算机网络190传入的一些或全部连接的防火墙)。使用防火墙会使得敏感数据(例如,来自数据库121的敏感数据)的暴露进一步减少。容器构建器110可以不需要连续连接到计算机网络190。在一个实施例中,容器构建器110被配置为:在提供用于部署的容器镜像140之前连接到计算机网络190,并且/或者在提供容器镜像140之后与计算机网络190断开连接,从而进一步减少其暴露。
容器构建器110还可以包括云处理单元133,该云处理单元133被配置为使用通信接口150向云服务提供商111提供用于部署的容器镜像140。例如,云处理单元133可以将容器镜像140上传到云提供商111并且例如经由SSH、RESTful API等将用于部署容器镜像的指令发送到云提供商111,例如在使用Docker时,使用“docker stack deploy”shell命令或Docker Engine API的对应调用。云处理单元133还可以将容器镜像140存储在私有注册表中并且用指令指示云服务提供商111从私有注册表中拉出图像并部署该图像。
总而言之,上述各种步骤可以使得以减少敏感数据暴露的方式将个性化的网络服务提供给用户设备113。容器构建器110可以从私有数据库121中检索敏感数据122并且将该敏感数据122放入容器镜像140中。然而,其他设备(例如,云服务提供商111、容器主机112和用户设备113)(例如由于防火墙191)都不能直接访问数据库121。容器构建器110将容器镜像140提供给云服务提供商111,并且云服务提供商将容器镜像140部署在容器主机112上,使得容器主机112能够向用户设备113提供个性化的服务。虽然这些步骤可能会引起当前的个性化的网络服务所需的敏感数据122产生一些暴露,但是数据库121中的其他敏感数据(例如,与其他用户有关的敏感数据)不会被暴露,例如,在提供个性化的网络服务期间发生的破坏可能对其他用户的影响较小。此外,各种容器化技术可以允许相对良好的可扩展性,例如因为可以使用任意数量的容器主机并且/或者可以动态调节容器主机的数量,并且/或者因为容器主机可以允许相对高效地运行相似或部分重叠的容器。
图2示意性地示出了网络服务系统200的实施例的示例,该网络服务系统200涉及要在数据库中存储的更新的数据。网络服务系统200可以是如上所述的网络服务系统100。例如,网络服务系统200可以包括存储敏感数据223的私有数据库221(例如,容器构建器210的私有数据库)以及允许基于敏感数据来提供个性化的网络服务的各种部件。
除了使用敏感数据之外,提供个性化的网络服务还会涉及获取由个性化的网络服务更新的更新的数据。例如,更新的数据223可以包括个性化的网络服务的用户的输入和/或由容器进行的数据处理的结果。更新的数据可以包括敏感的更新的数据(例如,对敏感数据122的更新)。更新的数据可以包括关于个性化的网络服务的用户的信息(例如,个人信息,例如,医学信息)。继续以上基于Web的患者评估门户的激励示例,可以向患者呈现与他们的健康有关的各种问题,其中,更新的数据包括对这些问题的答案。通常,由于使用个性化的网络服务而产生的更新的数据可以包括对提供服务所基于的现有敏感数据和/或在提供服务之前未被存储在数据库中的新的数据的更新。这里讨论了各种实施例,其中,更新的数据223是由容器构建器210获取的并且被存储在数据库221中。
网络服务系统200可以包括容器主机212(例如,图1的容器主机112)。容器主机112可以包括容器270。容器270可以在容器平台260上运行。可以将容器镜像(例如,容器镜像240)部署为容器270,以基于敏感数据223来提供个性化的网络服务。网络服务系统200还可以包括向其提供服务的用户设备213(例如,图1的用户设备113)。类似于图1,本附图示出了功能单元,例如,单元231、232、233、235和/或236,它们可以是相应设备的处理器的功能单元。
特别地,网络服务系统200可以包括容器构建器210(例如,图1的容器构建器110)。容器构建器210可以用于基于敏感数据223来提供个性化的网络服务。容器构建器240可以包括用于访问数据库221的数据接口220。容器构建器240还可以包括用于例如经由计算机网络290与云服务提供商211连接的通信接口250。容器构建器240还可以包括:数据处理单元,其被配置为使用数据接口223从数据库221中检索敏感数据223;图像处理单元232,其被配置为构建包括敏感数据的容器镜像240;和/或云处理单元233,其被配置为使用通信接口250向云服务提供商211提供用于部署的容器镜像223。容器镜像240可以包括指令,当容器镜像240被部署为容器时,所述指令使该容器基于在容器镜像240中包括的敏感数据223来提供个性化的网络服务。
网络服务系统200还可以包括与容器构建器一起使用的云服务提供商211(例如,图1的云服务提供商111)。云服务提供商211可以包括用于与容器构建器210和/或容器主机212连接的通信接口251。云服务提供商211还可以包括构建器处理单元235,该构建器处理单元235被配置为使用通信接口251从容器构建器210接收容器镜像240以用于部署。云服务提供商211还可以包括被配置为将容器镜像240部署为容器的部署单元236。在图2所示的示例实施例中,容器镜像240在容器主机212上被部署为容器270,但是如上面所讨论的,容器主机212也可以与云服务提供商211一致。
如上面所讨论的,作为提供个性化的网络服务的结果,容器270可以包括更新的数据223。例如,可能已经修改和/或删除了在容器270中部署的一个或多个文件,并且/或者可能已经在容器270中创建了一个或多个新的文件。例如,更新的数据可以包括对在容器镜像240中包括的一个或多个文件的更新。更新的数据可以被存储在存储器和/或容器270的存储设备中。
在各种实施例中,容器构建器210获取容器270的更新的数据223。例如,图像处理单元232可以被配置为在容器镜像240中包括用于容器270收集更新的数据223并将其提供给容器构建器210和/或云服务提供商211的指令。例如,容器270可以将所收集的更新的数据223上传到远程存储设备280(例如,远程数据库或远程文件系统);容器270可以将所收集的更新的数据通过电子邮件发送到容器构建器211等可访问的电子邮件地址。远程存储设备280在这里被示为单独的网络实体,但是它也可以是例如云服务提供商211的外部可访问的存储设备。容器构建器210可以被配置为例如通过从远程存储设备280中检索更新的数据223来获取更新的数据223。也可以例如通过容器构建器210、云服务提供商212或容器平台260从容器270获取更新的数据223。例如,容器270在处理期间将更新的数据223存储在外部可访问的存储设备(例如,可以由云服务提供商212或容器平台260访问存储设备,例如,Docker绑定安装或卷、网络共享等)中。在这样的情况下,云服务提供商212或容器平台260可以被配置为例如通过将更新的数据223上传到远程存储设备280来收集更新的数据223并将其提供给容器构建器210。例如,收集更新的数据可以由在容器270终止后执行的后处理脚本来执行,这可以具有以下优点:需要对容器中的软件的定制较少。
更新的数据223可以以各种格式(例如,以一个或多个数据库文件、文本文件等的形式)被提供给容器构建器210。在一个实施例中,云处理单元233从云服务提供商211中检索更新的容器镜像,并且图像处理单元132从更新的容器镜像中提取更新的数据244。例如,更新的容器镜像可以具有与容器镜像240类似的格式。这可以具有以下优点:需要对容器中的软件的定制较少,例如,提供更新的数据223对容器中的软件而言会是透明的。
在各种实施例中,更新的数据223在被收集时用加密密钥244进行加密,并且云处理单元233被配置为使用与加密密钥244相对应的解密密钥245对所获取的更新的数据223进行解密。例如,图像处理单元232可以在容器镜像240中包括加密指令246,以用于在收集时使用加密密钥244对收集的更新的数据223进行加密,或者云处理单元233可以将加密密钥244提供给云服务提供商211和/或容器主机212,以用于在收集时进行加密。图像处理单元232可以被配置为生成加密密钥244和解密密钥245,或者以其他方式获取加密密钥244和解密密钥245。使用加密可以减少更新的数据223的暴露。在一些实施例中,加密密钥244和解密密钥245都是相同的对称密钥;在其他实施例中,加密密钥244和解密密钥245形成公钥/私钥对。后者具有的优点是:一旦更新的数据223得到加密,即使执行加密的一方或损害其密钥材料的一方也不能对更新的数据223进行解密。
通常,云处理单元233在容器270终止时获取更新的数据223。例如,云处理单元233可以被配置为定期检查容器是否已经终止。例如,云处理单元232可以联系云服务提供商211以获取关于容器270的状态更新,云服务提供商232的构建器处理单元235被配置为在请求时向容器构建器210提供这样的状态更新。云处理单元232还可以例如通过尝试访问由容器270提供的个性化的网络服务或者通过以另一方式联系容器270来直接联系容器270以获取状态更新。存储设备280中的更新的数据的存在还可以指示云处理单元233的终止。由云处理单元232进行的定期检查可以具有以下优点:容器构建器210不需要接受传入的连接来检测终止,例如,它不需要需要接收通知。然而,也可以使用除了这里描述的定期检查之外的其他选项,例如,云服务提供商211可以被配置为在容器270终止时通知容器构建器210,例如使用由容器构建器210提供的RESTful API,通过电子邮件或者使用任何适当的通知机制来通知容器构建器210。然而,可能并不一定要检查终止,例如,容器270可以被配置为在如上面所讨论的时限之后终止,云处理单元232被配置为在该时限之后检索更新的数据223。而且,可能根本不需要等待终止,例如,云处理单元233可以从运行中的容器获取更新的数据223。
容器构建器210的数据处理单元231可以被配置为使用数据接口220将更新的数据223存储在数据库221中。存储更新的数据223可以包括检查更新的数据223的有效性。如果发现更新的数据223有效,则数据处理单元231可以仅将更新的数据223存储在数据库221中。例如,检查有效性可以包括:检查更新的数据仅包括与个性化的网络服务的预期用户有关的数据;检查更新的数据223仅包括与个性化的网络服务有关的数据;并且/或者例如通过核实数据上的校验和和/或数字签名来检查更新的数据223是否未被篡改。例如,数据处理单元231可以将标识符(例如,(例如随机生成的)独特标识符)分配给所提供的用于部署的每个容器镜像。这样的标识符可以被包括在容器镜像240中。数据处理单元231还可以保持条目列表,条目包括容器镜像的标识符、针对其实施个性化的用户或用户集合和/或允许修改的数据字段的规范。在检索更新的数据223时,数据处理单元231可以获取例如作为更新的数据223中的部分而被包括在对应的容器镜像中的标识符,并且可以检查更新的数据223涉及用户或用户集合和/或对应条目的数据字段的规范。检查更新的数据223可以具有以下优点:即使包括提供个性化的网络服务的容器,这样的破坏也可能仅影响与特定用户和/或特定网络服务有关的数据并且/或者不会影响数据有效性。
总体而言,上面描述的并且由在图2所示的系统举例说明的各种实施例可以允许利用更新的数据223来更新数据库221。可以将更新的数据223提供给容器270,例如由用户设备213插入或输入到容器270,如虚线所示。然后可以由容器构建器210获取更新的数据223,例如,容器270将更新的数据223上传到远程数据库,如另一虚线所示,并且容器构建器210从远程数据库下载更新的数据223。最后,容器构建器210可以将更新的数据223存储在数据库221中。因此,可以在不将数据库221暴露于远程访问的情况下更新数据库221。
图3示意性地示出了涉及用户认证的网络服务系统300的实施例的示例。网络服务系统300可以包括容器构建器310、云服务提供商311、容器主机312和用户设备313中的一项或多项。
例如,容器构建器310可以是如上所述的容器构建器(例如,图1的容器构建器110或图2的容器构建器210)。特别地,容器构建器310可以包括图像处理单元332(例如,图像处理单元132或图像处理232)。虽然未示出,但是容器构建器310还可以包括数据接口、数据处理单元和/或云处理单元(例如,单元120、131、133、220、231和/或233)。
类似地,云服务提供商311可以是如上所述的云服务提供商(例如,云服务提供商111或211(例如包括诸如部署单元136或部署单元236之类的部署单元336))。虽然附图中并未示出,但是云服务提供商311还可以包括构建器处理单元(例如,单元135或235)。
容器主机312可以是容器主机112或212(例如包括诸如容器170或270之类的容器370)。用户设备313可以是用户设备113或用户设备213。该设备可以使用计算机网络390(例如,计算机网络190或290)进行通信。类似于图1,本附图示出了功能单元(例如,单元332和/或236),其可以是相应设备的处理器的功能单元。
容器构建器310的图像处理单元332可以将容器370布置为使得容器370仅向拥有某些认证信息的用户提供对个性化的网络服务的访问。图像处理单元332还可以将该认证信息提供给个性化的网络服务的预期用户,例如提供给用户设备313或其所有者。这会具有进一步限制数据暴露的优点,因为攻击者会需要付出额外的努力来获取认证信息。可以使用各种认证信息或其各种组合(例如,多因素认证,例如,双因素认证)。
在一个实施例中,认证信息包括用于连接到容器的私有地址348(例如,URL、域名等)。私有地址348对于给定的用户或用户集合而言可以是独特的。例如,私有地址348可以是隐藏的子域。当提供用于部署的容器镜像340时,容器构建器310可以请求云服务提供商311在私有地址处部署容器镜像340。云服务提供商311可以在容器主机312处部署容器镜像340,生成诸如“a0123.networkservice.com”之类的私有地址,并且例如在DNS条目中将私有地址映射到容器。私有地址可以包括诸如4824之类的随机端口号,可以在该随机端口号处部署网络服务(例如,Web应用程序)。云服务提供商311可以将私有地址提供给容器构建器310,或者容器构建器310选择或建议私有地址的至少部分。在任何情况下,容器构建器都可以用指令指示用户设备313连接到私有地址348,例如使用电子邮件发送到私有地址348的链接(例如,http://a0123.networkservice.com:4824/,例如,填写患者评估的邀请)来指示用户设备313连接到私有地址348。私有地址是用户友好的,同时由于难以猜测,因此很难破坏系统的安全性。
在一个实施例中,认证信息包括令牌347(例如,秘密令牌)。容器镜像340可以包含指令349,当容器镜像340被部署为容器时,所述指令使容器验证连接的用户是否拥有令牌347。例如,令牌347可以是随机字符串(例如,具有最小长度或最小熵的随机字符串,例如,至少5个或至少10个字符或至少10位或20位熵,例如,“XHnRRIdykv”)。例如,图像处理单元332可以随机生成令牌347。可以将容器配置为例如仅在使用令牌访问容器时容器才提供Web应用程序,例如,令牌被包括在私有地址348(例如,“http://a0123.networkservice.com:4824/?token=XHnRRIdyk”)中。或者,令牌347可以是用于个性化的Web服务/Web API的参数。令牌的使用会使得更难以破坏系统,而不会给用户带来沉重负担。
上面给出的认证信息的示例可以彼此结合并且可以与其他类型的认证信息结合以进一步提高安全性。例如,如参考图4a和图4b所解释的,可以要求Web应用程序的用户使用普通凭证进行登录。容器镜像340可以包括来自认证数据库的预期用户的凭证441,该认证数据库通常也将用于用户认证。可以替代地或额外地使用其他类型的认证,例如使用硬件令牌。有趣的是,当将普通认证机制与由容器构建器310提供的认证信息相结合时,容器的使用对用户而言会是透明的,例如,用户可以以与使用如图4a所示的非个性化的网络服务相同的方式来使用个性化的网络服务。
图5示出了网络服务系统500的实施例的示例,其中,由容器提供的个性化的网络服务与另一网络服务(例如,非个性化的网络服务)相结合。这样的实施例可以允许限制敏感数据522的暴露而不会引起不必要的开销,例如通过只有在实际使用敏感数据522的情况下且在使用敏感数据522时才应用容器化来实现这一点。
在图5中示出了云服务器514(例如,图4的云服务器400),其例如通过应用软件534来提供非个性化的网络服务。云服务器514可以是向用户设备提供网络服务580(例如,Web应用程序)的任何传统服务器。还示出了向其提供这样的服务的用户设备513,这里仅出于说明性目的而将其示为膝上型计算机(例如,如上面所讨论的用户设备113、213或313)。作为激励示例,应用软件534可以向用户设备513的用户提供Web商店应用,用户可以使用该Web商店应用来选择各种要购买的物品。在浏览时,应用程序可能不需要敏感数据522(例如,用户的地址和/或信用卡信息)。
在某个时刻,所提供的应用程序可能需要访问敏感信息522。此时,应用软件534可以提供重新定向581,该重新定向581将用户设备513重新定向到在容器主机512上运行的容器570。重新定向481可以包括针对容器570的应用软件534的传入信息。容器570是根据由容器构建器510构建的容器镜像来部署的,并且有权访问包括如上所述的敏感信息522的数据库521,例如,容器构建器510可以是如上所述的容器构建器110、容器构建器210或容器构建器310。例如,云服务器514可以用指令指示容器构建器510以部署容器,并且容器构建器510可以被配置为提供用于部署的容器镜像。鉴于期望使用户的等待时间最小化,在这种设置中,如上所述,预先准备容器镜像并且基于敏感数据522来定制容器镜像会特别有益。在提供了用于部署的容器镜像之后,容器构建器510随后可以将能够实现个性化的网络服务的地址提供给云服务器514。然后,云服务器514可以将用户设备513重新定向581到该地址。替代地,可以例如通过容器主机512的容器平台560来检测对容器570的访问,在容器主机512的容器平台560中,容器构建器510可以提供用于部署的容器镜像。
在被重新定向到容器570的情况下,用户设备513现在可以利用由容器提供的个性化的网络服务。继续以上示例,可以通过重新定向581到用于购物卡结账的容器570来重新定向用户设备513。在这种情况下,在容器镜像中包括的敏感信息522可以包括例如关于用户的信用卡信息和/或地址信息。重新定向581中包括的传入信息可以包括例如购物车的内容。容器镜像570可以提供个性化的网络服务,例如,处理用户的支付。在提供了个性化的网络服务之后,容器570可以提供重新定向582,该重新定向582将用户设备513重新定向到云服务器,例如返回到云服务器514。重新定向582可以包括个性化的网络服务的返回值,例如在支付示例中指示支付是否成功。用户设备513可以继续使用Web应用程序,而基于敏感信息522的容器570可以被清理或终止。
因此,在图5中示意性示出的各种实施例可以允许向用户设备513提供应用程序,该应用程序部分地基于来自数据库521的信息,并且在应用程序中来自数据库521的信息的暴露受到限制,而同时允许使用诸如更传统的云服务器514之类的不同技术来提供不需要访问数据库的应用程序的部分。
图6图示了用于实施容器构建器、云服务提供商、容器主机或用户设备的示例性硬件图1100。示例性硬件1100可以例如对应于以下各项中的任一项:容器构建器110、210、310、470或510;云服务提供商111、211或311;容器主机112、212、312或512;或用户设备113、213、313或513。如图所示,设备1100包括经由一条或多条系统总线1110互连的处理器1120、存储器1130、用户接口1140、通信接口1150和存储设备1160。应当理解,在某些方面,图6a构成了一种抽象情况,并且设备1100的部件的实际组织方式可能比所示出的更为复杂。
处理器1120可以是能够执行在存储器1130或存储设备1160中存储的指令或以其他方式处理数据的任何硬件设备。正因如此,处理器可以包括微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或其他类似设备。可以例如在云计算架构等中提供处理器1120。在本文中示出了其他示例。处理器1120可以以分布式方式来实施,例如被实施为多个子处理器(例如,子处理器电路)。
存储器1130可以包括各种存储器(例如,L1,L2或L3高速缓冲存储器或系统存储器)。正因如此,存储器1130可以包括静态随机存取存储器(SRAM)、动态RAM(DRAM)、闪速存储器、只读存储器(ROM)或其他类似的存储设备。显而易见的是,在处理器包括以硬件实施本文描述的功能中的一个或多个功能的一个或多个ASIC(或其他处理设备)的实施例中,可以省去在其他实施例中描述为与这样的功能相对应的软件。存储器的部分或全部可以是电子存储器、磁性存储器等。
用户接口1140可以包括用于使得能够与诸如管理员之类的用户进行通信的一个或多个设备。例如,用户接口1140可以包括用于接收用户命令的触摸屏、显示器、鼠标和/或键盘。在一些实施例中,用户接口1140可以包括可以经由通信接口1150被呈现给远程终端的命令行接口或图形用户接口。
通信接口1150可以包括用于使得能够与其他硬件设备进行通信的一个或多个设备。该通信接口可以是网络接口。例如,通信接口1150可以包括被配置为根据以太网协议进行通信的网络接口卡(NIC)。网络接口可以是局域网或广域网(例如,互联网)。另外,通信接口1150可以实施用于根据TCP/IP协议进行通信的TCP/IP栈。通信接口也可以是内部或外部数据存储设备、键盘、应用程序接口(API)等的存储接口。针对通信接口1150的各种替代或额外硬件或配置将是显而易见的。
存储设备1160可以包括一个或多个机器可读存储介质,例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存设备或类似的存储介质。存储设备1160可以包括一起构成所述存储设备的多个离散的存储器。存储设备1160也可以是暂存存储器(例如,RAM)。在暂存存储设备的情况下,所述存储设备包含一些在使用前获取数据(例如通过任选的网络连接(未示出)获取数据)的手段。在各种实施例中,存储设备1160可以存储由处理器1120执行的指令或者处理器1120可以操作的数据。例如,指令可能已经被下载和/或被存储在对应的存储器(例如,诸如RAM之类的易失性存储器或诸如闪存之类的非易失性存储器)中。例如,存储设备1160可以存储用于控制硬件1100的各种基本操作的基本操作系统1161。根据本文描述的各种实施例,存储设备还可以存储用于执行上述各种单元(例如,数据处理单元、图像处理单元、云处理单元、构建器处理单元或部署单元)的功能的指令1162-1164。存储设备可以被分布在多个分布式子存储设备上。例如,存储设备可以具有易失性部分和非易失性部分。存储设备的部分可以是只读的。
显而易见的是,被描述为在存储设备1160中存储的各种信息可以被额外地或替代地存储在存储器1130中。在这方面,存储器1130也可以被认为构成“存储设备”,并且存储设备1160可以被认为是“存储器”。各种其他布置将是显而易见的。另外,存储器1130和存储设备1160都可以被认为是“非瞬态机器可读介质”。如本文所使用的,术语“非瞬态”将被理解为排除瞬态信号,而是包括所有形式的存储设备(包括易失性存储器和非易失性存储器)。
虽然设备1100被示为包括每个所描述的部件之一,但是在各种实施例中可以复制各种部件。例如,处理器1120可以包括多个微处理器,这多个微处理器被配置为独立执行本文描述的方法或者被配置为执行本文描述的方法的步骤或子例程,使得这多个处理器协作以实现本文描述的功能。另外,在设备1100被实施在云计算系统中的情况下,各种硬件部件可以属于单独的物理系统。例如,处理器1120可以包括第一服务器中的第一处理器和第二服务器中的第二处理器。设备1100还可以配备有微处理器和存储器。替代地,这些设备可以全部或部分地被实施在可编程逻辑单元中(例如被实施为现场可编程门阵列(FPGA))。这些设备可以全部或部分地被实施为所谓的专用集成电路(ASIC)(例如,针对其特定用途而定制的集成电路(IC))。
在一个实施例中,容器构建器可以包括数据电路、处理器电路和通信电路。在一个实施例中,云服务提供商可以包括通信电路和处理器电路。容器构建器可以包括数据处理电路、图像处理电路和云处理电路中的一项或多项。云服务提供商可以包括构建器处理电路和部署电路中的一项或多项。这些电路实施本文描述的对应单元。这些电路可以是处理器电路和存储电路,所述处理器电路执行在所述存储电路中以电子方式表示的指令。这些电路也可以是FPGA、ASIC等。
处理器可以是处理器电路,其可以以分布式方式被实施为例如多个子处理器电路。存储设备可以被分布在多个分布式子存储设备上。存储器的部分或全部可以是电子存储器、磁性存储器等。例如,存储设备可以具有易失性部分和非易失性部分。存储设备的部分可以是只读的。
图1、图2、图3、图5示出了可以是处理器1120的功能单元的功能单元。例如,图1的容器构建器110可以用作处理器的可能的功能组织方式的蓝图。处理器未与附图中的单元分开显示。例如,容器构建器110的功能单元可以全部或部分地被实施在被存储在容器构建器110处的计算机指令中(例如被实施在被存储在容器构建器110的电子存储器中),并且能够由容器构建器110的微处理器来执行。在混合式实施例中,功能单元被部分地实施在硬件(例如被实施为协处理器(例如,加密协处理器))中并且被部分地实施在容器构建器110上存储和执行的软件中,并且对于各幅附图中的其他设备来说也是类似的情况。
通常,容器构建器、云服务提供商、容器主机和用户设备均包括微处理器,该微处理器执行在各个设备上存储的适当软件;例如,该软件可能已经被下载和/或被存储在对应的存储器(例如,诸如RAM之类的易失性存储器或诸如闪存之类的非易失性存储器)中。相应设备还可以配备有微处理器和存储器。替代地,这些设备可以全部或部分地被实施在可编程逻辑单元中(例如被实施为现场可编程门阵列(FPGA))。这些设备可以全部或部分地被实施为所谓的专用集成电路(ASIC)(例如,针对其特定用途而定制的集成电路(IC))。例如,可以例如使用诸如Verilog、VHDL等的硬件描述语言在CMOS中实施这些电路。
图7a示意性地示出了用于构建容器镜像的容器构建器方法1200的实施例的示例。容器镜像用于基于数据库中的敏感数据来提供个性化的网络服务。容器构建器方法1200包括:
提供1210对数据库的访问,
提供1220与云服务提供商的数字通信,
从数据库中检索1230敏感数据,
构建1240容器镜像,该容器镜像包括敏感数据,
向云服务提供商提供1250用于部署的容器镜像,该容器镜像包括指令,当容器镜像被部署为容器时,该指令使容器基于在容器镜像中包括的敏感数据来提供个性化的网络服务。
图7b示意性地示出了根据一个实施例的用于与容器构建器一起使用的云服务提供商方法1300的实施例的示例。云服务提供商方法1300包括:
提供1310与容器构建器的数字通信,
从容器构建器接收1320用于部署的容器镜像,其中,容器镜像包括敏感数据和指令,当容器镜像被部署为容器时,该指令使容器基于敏感数据来提供个性化的网络服务,
将容器镜像部署1330为容器。
如本领域技术人员将显而易见的,执行该方法的许多不同方式是可能的。例如,这些步骤的顺序可以改变,或者一些步骤可以并行执行。此外,在这些步骤之间可以插入其他方法步骤。所插入的步骤可以表示例如本文描述的方法的细化,或者可以与该方法无关。例如,步骤1210和1220可以至少部分地并行执行。此外,在开始下一步骤之前,给定步骤可能尚未完全完成。
可以使用软件来执行这些方法的实施例,该软件包括用于使处理器系统执行方法1200或1300的指令。软件可以仅包括由系统的特定子实体采取的那些步骤。该软件可以被存储在合适的存储介质(例如,硬盘、软盘、存储器、光盘等)中。可以将该软件作为信号以有线方式、无线方式或使用数据网络(例如,互联网)进行发送。可以使该软件可用于从服务器下载和/或远程使用。可以使用被布置为配置可编程逻辑单元(例如,现场可编程门阵列(FPGA))的比特流来执行该方法的实施例,从而执行该方法。
应当理解,本发明还扩展到适于将本发明付诸实践的计算机程序(特别是在载体上或载体中的计算机程序)。该程序可以是源代码、目标代码、中间源代码和目标代码的形式,例如部分编译的形式,或者是适合用于在该方法的实施例的实施方式中使用的任何其他形式。与计算机程序产品有关的实施例包括与所阐述的方法中的至少一个方法的处理步骤中的每个处理步骤相对应的计算机可执行指令。这些指令可以被细分成子例程和/或被存储在可以静态或动态链接的一个或多个文件中。与计算机程序产品有关的另一实施例包括与所阐述的系统和/或产品中的至少一个统和/或产品的单元中的每个单元相对应的计算机可执行指令。
图7c示出了具有可写部分1910的计算机可读介质1900,该可写部分1910包括用于基于敏感数据来提供个性化的网络服务的容器镜像1920。容器镜像1920包括敏感数据1921。容器镜像1920还包括指令1922,当容器镜像1920被部署为容器时,该指令使容器基于敏感数据1921来提供个性化的网络服务。作为物理标记或者借助于计算机可读介质1900的磁化,容器镜像1920可以被实施在计算机可读介质1900上。然而,任何其他合适的实施例也是可以想到的。此外,将意识到,虽然计算机可读介质1900在这里被示为光盘,但是计算机可读介质1900也可以是任何合适的计算机可读介质(例如,硬盘、固态存储器,闪速存储器等)并且可以是不可记录的或可记录的。
图7d示出了具有包括计算机程序2020的可写部分2010的计算机可读介质2000,该计算机程序2020包括用于使处理器系统执行根据实施例的容器构建器方法或云服务提供商方法的指令。作为物理标记或者借助于计算机可读介质2000的磁化,计算机程序2020可以被实施在计算机可读介质2000上。然而,任何其他合适的实施例也是可以想到的。此外,将意识到,虽然计算机可读介质2000在这里被示为光盘,但是计算机可读介质2000也可以是任何合适的计算机可读介质(例如,硬盘、固态存储器,闪速存储器等)并且可以是不可记录的或可记录的。计算机程序2020包括用于使处理器系统执行所述容器构建器方法或云服务提供商方法的指令。
应当注意,上述实施例说明而不是限制本发明,并且本领域技术人员将能够设计出许多替代实施例。
在权利要求中,括号之间的任何附图标记都不应被解释为对权利要求的限制。对动词“包括”及其词形变化的使用并不排除存在权利要求中未提及的其他元件或步骤。元件前面的词语“一”或“一个”并不排除存在多个这样的元件。本发明可以借助于包括若干不同元件的硬件以及借助于经适当编程的计算机来实施。在列举了若干单元的装置型权利要求中,这些单元中的若干单元可以由同一硬件项来实施。在互不相同的从属权利要求中记载某些措施的事实并不意味着不能有利地使用这些措施的组合。

Claims (15)

1.一种用于构建容器镜像的容器构建器(110),所述容器镜像用于基于数据库中的敏感数据来提供个性化的网络服务,所述容器构建器包括:
数据接口(120),其被配置用于访问所述数据库(121),所述数据库被配置为所述容器构建器的私有数据库,
通信接口(150),其被配置用于与云服务提供商(111)进行数字通信,
处理器,其被配置为:
使用所述数据接口从所述数据库(121)中检索所述敏感数据(122),
构建所述容器镜像(140),所述容器镜像包括所述敏感数据(122),
使用所述通信接口(150)向所述云服务提供商(111)提供用于部署的所述容器镜像(140),所述容器镜像(140)包含指令,当所述容器镜像被部署为容器时,所述指令使所述容器基于所述容器镜像中包括的所述敏感数据(122)来提供所述个性化的网络服务。
2.根据权利要求1所述的容器构建器(110),其中,所述个性化的网络服务是Web应用程序。
3.根据前述权利要求中的任一项所述的容器构建器(110),其中,所述敏感数据(122)包括关于用户的个人信息,所述容器镜像(140)被布置为向所述用户提供所述个性化的网络服务。
4.根据前述权利要求中的任一项所述的容器构建器(110),其中,所述容器镜像(140)包括指令,当所述容器镜像被部署为容器时,所述指令使所述容器在时限之后和/或在对所述个性化的网络服务的使用完成之后终止。
5.根据前述权利要求中的任一项所述的容器构建器(210),其中,所述处理器还被配置为:
获取更新的数据(223),所述更新的数据通过所述个性化的网络服务来更新,
使用所述数据接口将所述更新的数据(223)存储在所述数据库(221)中。
6.根据权利要求5所述的容器构建器(210),其中,所述容器镜像(240)还包含指令,当所述容器镜像被部署为容器时,所述指令使所述容器收集所述更新的数据(223)并将所述更新的数据提供给所述容器构建器(210)或所述云服务提供商(211)。
7.根据权利要求5-6中的任一项所述的容器构建器(210),其中,所述容器镜像(240)还包括加密指令,当所述容器镜像被部署为容器时,所述加密指令使所述容器镜像对所述更新的数据进行加密,获取所述更新的数据包括用与加密密钥相对应的解密密钥对加密的更新的数据进行解密。
8.根据权利要求5-7中的任一项所述的容器构建器(210),其中,所述容器构建器(210)还被配置为:检查所述更新的数据的有效性,并且仅在所述更新的数据有效的情况下将所述更新的数据存储在所述数据库(221)中。
9.根据前述权利要求中的任一项所述的容器构建器(310),其中,所述容器构建器(310)还被配置为向所述个性化的网络服务的预期用户提供认证信息,所述容器被布置为仅对拥有所述认证信息的用户提供对所述个性化的网络服务的访问。
10.根据权利要求9所述的容器构建器(310),其中,所述认证信息包括令牌(347),并且所述容器镜像(340)包括指令(349),当所述容器镜像被部署为容器时,所述指令使所述容器验证连接的用户拥有所述令牌。
11.一种用于与根据前述权利要求中的任一项所述的容器构建器(110)一起使用的云服务提供商(111),所述云服务提供商包括:
通信接口(151),其被配置用于与所述容器构建器(110)进行数字通信,
处理器,其被配置为:
使用所述通信接口(151)从所述容器构建器(110)接收(135)用于部署的容器镜像(140),其中,所述容器镜像(140)包括敏感数据(122)和指令,当所述容器镜像被部署为容器时,所述指令使所述容器基于所述敏感数据(122)来提供个性化的网络服务,
将所述容器镜像部署(136)为容器以基于所述敏感数据(122)来提供所述个性化的网络服务。
12.一种用于构建容器镜像的容器构建器方法(1200),所述容器镜像用于基于数据库中的敏感数据来提供个性化的网络服务,所述容器构建器方法包括:
提供(1210)对所述数据库的访问,
提供(1220)与云服务提供商的数字通信,
从所述数据库中检索(1230)所述敏感数据,
构建(1240)所述容器镜像,所述容器镜像包括所述敏感数据,
向所述云服务提供商提供(1250)用于部署的所述容器镜像,所述容器镜像包括指令,当所述容器镜像被部署为容器时,所述指令使所述容器基于所述容器镜像中包括的所述敏感数据来提供所述个性化的网络服务。
13.根据前述权利要求1-10中的任一项所述的用于与容器构建器(110)一起使用的云服务提供商方法(1300),所述云服务提供商方法包括:
提供(1310)与所述容器构建器的数字通信,
从所述容器构建器(110)接收(1320)用于部署的容器镜像(140),其中,所述容器镜像(140)包括敏感数据(122)和指令,当所述容器镜像被部署为容器时,所述指令使所述容器基于所述敏感数据来提供个性化的网络服务,
将所述容器镜像部署(1330)为容器以基于所述敏感数据(122)来提供所述个性化的网络服务。
14.一种计算机可读介质(1900),包括瞬态或非瞬态数据(1920),所述瞬态或非瞬态数据表示用于基于敏感数据来提供个性化的网络服务的容器镜像,所述容器镜像包括:
敏感数据(1921),
指令(1922),当所述容器镜像被部署为容器时,所述指令使所述容器基于所述敏感数据来提供所述个性化的网络服务。
15.一种计算机可读存储介质(2000),包括瞬态或非瞬态数据(2020),所述瞬态或非瞬态数据表示使处理器系统执行根据权利要求12和权利要求13中的任一项所述的方法的指令。
CN201980069810.3A 2018-10-22 2019-10-22 用于个性化的网络服务的容器构建器 Pending CN112912880A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18201688.1A EP3644206A1 (en) 2018-10-22 2018-10-22 A container builder for individualized network services
EP18201688.1 2018-10-22
PCT/EP2019/078694 WO2020083891A1 (en) 2018-10-22 2019-10-22 Container builder for individualized network services

Publications (1)

Publication Number Publication Date
CN112912880A true CN112912880A (zh) 2021-06-04

Family

ID=63965216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980069810.3A Pending CN112912880A (zh) 2018-10-22 2019-10-22 用于个性化的网络服务的容器构建器

Country Status (5)

Country Link
US (1) US11914753B2 (zh)
EP (2) EP3644206A1 (zh)
JP (1) JP7434342B2 (zh)
CN (1) CN112912880A (zh)
WO (1) WO2020083891A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114266060A (zh) * 2021-12-28 2022-04-01 航天科工智能运筹与信息安全研究院(武汉)有限公司 一种模型容器加密与部署方法
CN115665172A (zh) * 2022-10-31 2023-01-31 北京凯思昊鹏软件工程技术有限公司 一种嵌入式终端设备的管理系统及管理方法
TWI795262B (zh) * 2022-04-06 2023-03-01 中華電信股份有限公司 高可用服務之部署系統、方法及其電腦可讀媒介

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11200335B2 (en) * 2020-03-05 2021-12-14 Sap Se Secure in-memory database in container
WO2022005914A1 (en) * 2020-06-29 2022-01-06 Illumina, Inc. Temporary cloud provider credentials via secure discovery framework
CN112306626B (zh) 2020-09-01 2024-04-05 北京京东尚科信息技术有限公司 用于更新云平台的方法和装置
US20220066765A1 (en) * 2020-09-03 2022-03-03 Banque Nationale Du Canada Systems and methods for executing dynamic code in a software container
CN114036223A (zh) * 2020-11-13 2022-02-11 武汉联影医疗科技有限公司 医疗信息管理方法、系统、装置、计算机设备和存储介质
US11748489B2 (en) * 2021-04-02 2023-09-05 Dell Products, L.P. Unified software library access and vulnerability correction prioritization
US11665139B2 (en) 2021-04-30 2023-05-30 Palo Alto Networks, Inc. Distributed offload leveraging different offload devices
US11477165B1 (en) * 2021-05-28 2022-10-18 Palo Alto Networks, Inc. Securing containerized applications
EP4363175A1 (en) * 2021-06-29 2024-05-08 Kinova Inc. Containerized plug-in system for robotics
US20230036739A1 (en) * 2021-07-28 2023-02-02 Red Hat, Inc. Secure container image builds
US20230037986A1 (en) * 2021-08-09 2023-02-09 International Business Machines Corporation Autoencryption system for data in a container
US11979746B1 (en) 2023-07-21 2024-05-07 Palo Alto Networks, Inc. Selective intelligent enforcement in mobile networks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110314466A1 (en) * 2010-06-17 2011-12-22 International Business Machines Corporation Creating instances of cloud computing environments
US20150154415A1 (en) * 2013-12-03 2015-06-04 Junlong Wu Sensitive data protection during user interface automation testing systems and methods
US20170154017A1 (en) * 2014-05-08 2017-06-01 Telefonaktiebolaget Lm Ericsson (Publ) Web Application Management
US20180095739A1 (en) * 2016-09-30 2018-04-05 International Business Machines Corporation Secure deployment of applications in a cloud computing platform
CN108353090A (zh) * 2015-08-27 2018-07-31 雾角系统公司 边缘智能平台和物联网传感器流系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2626871A1 (fr) 1988-02-04 1989-08-11 Corning Glass Works Article en vitroceramique, procede pour sa fabrication et verre thermiquement cristallisable
US6618764B1 (en) 1999-06-25 2003-09-09 Koninklijke Philips Electronics N.V. Method for enabling interaction between two home networks of different software architectures
JP6536804B2 (ja) 2015-06-19 2019-07-03 日本電気株式会社 情報処理システム
US9940470B2 (en) 2015-10-06 2018-04-10 Symantec Corporation Techniques for generating a virtual private container
JP6749094B2 (ja) 2015-12-18 2020-09-02 エヌ・ティ・ティ・コミュニケーションズ株式会社 コンテナ収容装置、コンテナ作成方法、及びプログラム
US10002247B2 (en) 2015-12-18 2018-06-19 Amazon Technologies, Inc. Software container registry container image deployment
US10855725B2 (en) 2016-06-02 2020-12-01 Microsoft Technology Licensing, Llc Hardware-based virtualized security isolation
EP3267351A1 (en) * 2016-07-07 2018-01-10 Gemalto Sa Method for securely managing a docker image
JP6616262B2 (ja) 2016-08-16 2019-12-04 日本電信電話株式会社 通信システム及びトラヒック制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110314466A1 (en) * 2010-06-17 2011-12-22 International Business Machines Corporation Creating instances of cloud computing environments
US20150154415A1 (en) * 2013-12-03 2015-06-04 Junlong Wu Sensitive data protection during user interface automation testing systems and methods
US20170154017A1 (en) * 2014-05-08 2017-06-01 Telefonaktiebolaget Lm Ericsson (Publ) Web Application Management
CN108353090A (zh) * 2015-08-27 2018-07-31 雾角系统公司 边缘智能平台和物联网传感器流系统
US20180095739A1 (en) * 2016-09-30 2018-04-05 International Business Machines Corporation Secure deployment of applications in a cloud computing platform

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114266060A (zh) * 2021-12-28 2022-04-01 航天科工智能运筹与信息安全研究院(武汉)有限公司 一种模型容器加密与部署方法
CN114266060B (zh) * 2021-12-28 2024-03-26 航天科工智能运筹与信息安全研究院(武汉)有限公司 一种模型容器加密与部署方法
TWI795262B (zh) * 2022-04-06 2023-03-01 中華電信股份有限公司 高可用服務之部署系統、方法及其電腦可讀媒介
CN115665172A (zh) * 2022-10-31 2023-01-31 北京凯思昊鹏软件工程技术有限公司 一种嵌入式终端设备的管理系统及管理方法

Also Published As

Publication number Publication date
JP2022508899A (ja) 2022-01-19
WO2020083891A1 (en) 2020-04-30
EP3644206A1 (en) 2020-04-29
EP3871126A1 (en) 2021-09-01
JP7434342B2 (ja) 2024-02-20
US11914753B2 (en) 2024-02-27
US20210271777A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
US11914753B2 (en) Container builder for individualized network services
US20220292180A1 (en) Systems and methods for offline usage of saas applications
CN105379223B (zh) 管理对企业资源的访问的方法和装置
CN104903910B (zh) 控制移动装置对安全数据的访问
US9467474B2 (en) Conjuring and providing profiles that manage execution of mobile applications
CN105359486B (zh) 使用代理安全访问资源
CN105393524B (zh) 图像分析和管理
CN105247526B (zh) 提供企业应用商店
CN109558721A (zh) 客户端应用程序的安全单点登录和条件访问
CN109074274A (zh) 虚拟浏览器集成
CN108028845A (zh) 使用导出凭证注册企业移动装置管理服务
CN105378744A (zh) 在企业系统中的用户和设备认证
US11531929B2 (en) Systems and methods for machine generated training and imitation learning
CN105308923A (zh) 对具有多操作模式的应用的数据管理
CN107924431B (zh) 匿名应用程序包装
US11429243B2 (en) Systems and methods for contextual and administrator controlled browser control bar
CN105340239A (zh) 利用环境锁定移动设备
US20200153711A1 (en) Systems and methods for tracking overlay for saas applications
US11592966B2 (en) Systems and methods for SaaS overlays using embedded browser
US10996819B2 (en) Systems and methods for intellisense for SaaS application
CN113574837A (zh) 跟踪客户端设备上的图像发送者
CN117993017B (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