掌桥专利:专业的专利平台
掌桥专利
首页

用于容器中的数据的自动加密系统

文献发布时间:2023-06-19 19:14:59


用于容器中的数据的自动加密系统

技术领域

本公开总体上涉及一种改进的计算机系统,并且更具体地涉及用于自动加密用于容器中的数据的方法、装置、计算机系统和计算机程序产品。

背景技术

容器从底层基础设施分离。容器在操作系统级虚拟化处理器单元、存储器、存储和网络资源。换言之,容器使用操作系统虚拟化,使得多个容器可以在同一操作系统内核上运行。

敏感数据是使用云平台的客户的重要考虑。敏感数据可以包括诸如密码、认证令牌、安全外壳协议(SSH)的信息。容器可以使用此信息来执行包括访问其他系统或资源的操作。不希望将该信息作为明文存储在容器中。敏感信息可以被加密。在用于应用程序员容器的部署代码中手动地加密敏感数据。

例如,敏感数据可以用存储在对象中的加密敏感数据(例如Kubernetes中的secret(秘密))来加密。Kubernetes是开源容器编排系统,其可以用于使计算机应用程序部署、缩放和管理自动化。Kubernetes的开发者是云本机计算机基金会(CNCF)。容器的部署代码包括对秘密和密钥的引用,以对加密的敏感数据解密。

这个敏感数据可以改变。例如,参数的新值可以改变或者新参数可以被添加。通过这些改变,需要在部署代码中手动地加密改变的敏感信息。例如,容器被编码以引用存储加密的敏感数据的秘密。如果敏感数据改变,则敏感数据中的改变被加密并且被放置到另一个秘密中。在这种情况下,容器的部署代码被改变以引用包含更新的加密敏感数据的新秘密。

进一步地,应用程序开发者和敏感数据管理器可以是不同的实体。当敏感数据被敏感数据的管理器改变时,应用程序开发者通常不知道改变已经发生,直到遇到问题并报告应用程序的容器的运行。结果,应用程序可能不能正确地运行,直到部署代码被改变并且用于该应用程序的容器被重新部署。

发明内容

根据一个说明性实施例,一种计算机实施用于管理敏感数据的方法。计算机系统使用一组应用程序容器的配置信息识别该组应用程序容器的敏感数据。计算机系统对识别的该组应用程序容器的敏感数据进行加密,以形成加密的敏感数据。在部署该组应用程序容器时,计算机系统将加密的敏感数据保存到由该组应用程序容器使用的共享存储装置中。根据其他说明性实施例,提供了一种用于管理敏感数据的计算机系统和计算机程序产品。

因此,通过使得能够使用共享加密服务对敏感数据进行自动加密并且在对敏感数据进行加密时支持定制,说明性实施例在敏感数据管理领域中提供了技术效果和实际应用。

说明性实施例还确定在该组应用程序容器的敏感数据被加密以形成加密的敏感数据之后,该敏感数据是否已经发生变化,并且响应于确定对该敏感数据的该变化已经发生,利用该变化重新加密该敏感数据以形成更新的加密的敏感数据。用更新的加密的敏感数据来更新加密的敏感数据。更新的加密敏感数据可被该组应用程序容器使用。因此,说明性实施例可确保敏感数据保持最新以供应用程序容器使用,从而减少容器在使用过期敏感数据时运行的问题。进一步,说明性实施例可避免当加密的敏感数据改变时需要改变容器的编程并且需要重启容器。

附图说明

图1是展示了可以实现说明性实施例的云计算环境的图;

图2是展示了根据说明性实施例的抽象模型层的图;

图3是可以实现说明性实施例的数据处理系统网络的图形表示;

图4是根据说明性实施例的应用程序管理环境的框图;

图5是根据示例性实施例的容器管理器的图示;

图6是根据示例性实施例的管理应用程序容器的敏感数据所执行的步骤的消息流程图;

图7是根据示例性实施例的用于管理敏感数据的数据流图;

图8是根据说明性实施例的配置信息的图示;

图9是根据说明性实施例的用于创建应用程序部署的过程的流程图;

图10是根据说明性实施例的用于管理敏感数据的过程的流程图;

图11是根据示例性实施例的用于获得应用程序容器的加密的敏感数据的过程的流程图;

图12是根据示例性实施例的用于访问应用程序容器的加密的敏感数据的过程的流程图;

图13是根据示例性实施例的用于管理敏感数据的过程的流程图;

图14是根据示例性实施例的用于管理敏感数据的过程的流程图;

图15是根据示例性实施例的用于确定敏感数据是否已经改变的过程的流程图;

图16是根据说明性实施例的用于管理敏感数据的过程的流程图;

图17是根据示例性实施例的用于识别敏感数据的过程的流程图;

图18是根据示例性实施例的用于加密敏感数据的过程的流程图;

图19是根据示例性实施例的用于加密敏感数据的过程的流程图;

图20是根据示例性实施例的用于保存加密的敏感数据的过程的流程图;以及

图21是根据说明性实施例的数据处理系统的框图。

具体实施方式

本发明可以是在集成的任何可能的技术细节水平上的系统、方法、和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。

计算机可读存储介质可以是能够保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。

本文所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载至对应的计算/处理设备或下载至外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。

本文参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的多个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

可以将这些计算机可读程序指令提供给计算机的处理器或其他可编程数据处理装置以产生机器,从而使得经由计算机的处理器或其他可编程数据处理装置执行的这些指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。

该计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置、或其他装置上,以便使得在该计算机、其他可编程装置或其他装置上执行一系列操作步骤以产生计算机实施的过程,这样使得在该计算机、其他可编程装置或其他装置上执行的这些指令实施流程图和/或框图的或多个框中指定的功能/动作。

附图中的流程图和框图展示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。

因此,说明性实施例提供了用于自动地加密敏感数据的方法、装置、系统和计算机程序产品。在说明性实施例中,可以从配置信息中识别的位置获得敏感数据。敏感数据可使用配置信息被自动加密并在应用程序的容器的部署期间被存储。说明性实施例也认识并考虑到,敏感数据的变化可被检测到,其中敏感数据可被自动加密并自动部署以供应用程序的容器使用。可以使用校验和来检测对敏感数据的改变的这种检测。

应当理解的是,尽管本公开包括关于云计算的详细描述,但本文所陈述的传授内容的实现方式不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。

云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。

特征如下:

按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,如服务器时间和网络存储,而不需要与服务的提供者的人类交互。

广泛的网络接入:能力可通过网络获得并且通过促进由异构薄或厚客户端平台(例如,移动电话、膝上计算机、和PDA)使用的标准机制访问。

资源池:提供者的计算资源被池化以使用多租户模型来服务多个消费者,其中根据需求动态地分配和重新分配不同的物理和虚拟资源。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。

快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。

可测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽、和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。

服务模型如下:

软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供商的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。

平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。

基础设施即服务(IaaS):向消费者提供的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用程序。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。

部署模型如下:

私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。

社区云:云基础设施由若干组织共享并且支持已经共享关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。

公共云:使云基础架构对公众或大型行业组可用并且由出售云服务的组织拥有。

混合云:云基础设施是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。

云计算环境是面向服务的,专注于状态性、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点网络的基础设施。

现在参见图1,描绘了展示可以实现说明性实施例的云计算环境的图。在这个说明性的示例中,云计算环境100包括由云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点110的集合,本地计算设备诸如例如个人数字助理或智能电话120A、台式计算机120B、膝上型计算机120C和/或汽车计算机系统120N。

云计算节点110可彼此通信并且可物理地或虚拟地分组成一个或多个网络,诸如上文所述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境100提供基础架构、平台和/或软件作为服务,云消费者无需为其维护本地计算设备(诸如本地计算设备120A-120N)上的资源。应当理解,本地计算设备120A-120N的类型仅旨在是说明性的,并且云计算节点110和云计算环境100例如可以使用网络浏览器通过任何类型的网络和/或网络可寻址连接与任何类型的计算机化设备通信。

现在参见图2,描绘了根据说明性实施例的说明抽象模型层的图。在这个说明性示例中示出的功能抽象层的集合可以由云计算环境提供,诸如图1中的云计算环境100。应当事先理解,图2中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描述,提供以下层和对应功能。

云计算环境200的抽象层包括硬件和软件层202、虚拟化层204、管理层206和工作负荷层208。硬件和软件层202包括云计算环境的硬件和软件组件。硬件组件可包括例如,大型机210、基于RISC(精简指令集计算机)架构的服务器212、服务器214、刀片服务器216、存储设备218、以及网络和网络组件220。在一些说明性实施例中,软件组件可包含(例如)网络应用服务器软件222和数据库软件224。

虚拟化层204提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器226;虚拟存储228;虚拟网络230,包括虚拟专用网络;虚拟应用和操作系统232;以及虚拟客户端234。

在一个示例中,管理层206可以提供以下描述的功能。资源供应236提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价238在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户240为消费者和系统管理员提供对云计算环境的访问。服务水平管理242提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行244提供根据SLA预期未来需求的云计算资源的预安排和采购。

工作负载层208提供可以利用云计算环境的功能的示例。可以由工作负载层208提供的示例工作负载和功能可以包括地图和导航246、软件开发和生命周期管理248、虚拟教室教育交付250、数据分析处理252、事务处理254、以及容器编排256。

在这个实例中,容器编排256提供用于管理图1中的云计算环境100中的应用程序的部署或访问图1中的云计算环境100的物理位置中的网络的服务。在说明性示例中,容器编排256可以提供自动化应用程序部署缩放和管理。例如,容器编排256可以使跨不同主机集群的应用程序容器的部署、缩放和操作自动化。应用程序容器是用于应用程序的进程或功能中的至少一者的容器。

现在参见图3,描绘了可以实现说明性实施例的数据处理系统网络的图形表示。网络数据处理系统300是其中可以实施说明性实施例的计算机网络。网络数据处理系统300包含网络302,网络302是用于在网络数据处理系统300内连接在一起的不同设备和计算机之间提供通信链路的介质。网络302可以包括连接,例如有线、无线通信链路或光纤电缆。

在所描绘的示例中,服务器计算机304和服务器计算机306与存储单元308连接至网络302。此外,客户端设备310连接到网络302。如所描述的,客户端设备310包括客户端计算机312、客户端计算机314和客户端计算机316。客户端设备310可以是例如计算机、工作站或网络计算机。在所描绘的示例中,服务器计算机304向客户端设备310提供信息,诸如引导文件、操作系统映像和应用程序。进一步,客户端设备310还可包括其他类型的客户端设备,诸如移动电话318、平板计算机320和智能眼镜322。在这个说明性的示例中,服务器计算机304、服务器计算机306、存储单元308和客户端设备310是连接到网络302的网络设备,其中网络302是这些网络设备的通信介质。客户端设备310中的一些或全部可以形成物联网(IoT),其中,这些物理设备可以连接到网络302并且通过网络302彼此交换信息。

在本示例中,客户端设备310是服务器计算机304的客户端。网络数据处理系统300可以包括附加的服务器计算机、客户端计算机和未示出的其他设备。客户端设备310利用有线连接、光纤连接或无线连接中的至少一个连接到网络302。

位于网络数据处理系统300中的程序代码可以存储在计算机可记录存储介质上并且被下载到数据处理系统或其他装置中以供使用。例如,程序代码可以存储在服务器计算机304上的计算机可记录存储介质上,并且通过网络302下载到客户端设备310,以在客户端设备310上使用。

在所描绘的示例中,网络数据处理系统300是互联网,其中网络302表示使用传输控制协议/互联网协议(TCP/IP)协议组来彼此通信的网络和网关的全球集合。互联网的核心是主节点或主计算机之间的高速数据通信线路的主干,该主计算机由数千个商业、政府、教育和路由数据和消息的其他计算机系统组成。当然,网络数据处理系统300也可以使用许多不同类型的网络来实现。例如,网络302可以包括互联网、内联网、局域网(LAN)、城域网(MAN)或广域网(WAN)中的至少一个。图3旨在作为实例,而不是作为对于不同说明性实施例的架构限制。

如本文使用的,“多个”当参考项目使用时意指一个或多个项目。例如,“多个不同类型的网络”是一个或多个不同类型的网络。

进一步地,短语“至少一个”当与一系列项目一起使用时,意味着可以使用所列出的项目中的一个或多个的不同组合,并且可能仅需要该列表中的每个项目中的一个。换言之,“至少一个”意味着可以使用列表中的项目和多个项目的任何组合,但是不需要列表中的所有项目。项目可以是特定对象、事物或类别。

例如但不限于,“项目A、项目B、或项目C中的至少一个”可以包括项目A、项目A和项目B、或项目B。该示例还可以包括项目A、项目B和项目C或者项目B和项目C。当然,可以存在这些物品的任何组合。在一些说明性实例中,“至少一个”可以是,例如但不限于,两个项目A;一个项目B;和十个项目C;四个项目B和七个项目C;或其他合适的组合。

容器编排平台330可以是例如

容器编排平台330提供用于使客户应用程序的部署、缩放和操作自动化的平台。容器编排平台330还提供Pod 331的自动部署、缩放和操作。Pod 331中的每个Pod包括跨工作者节点群集334运行客户应用程序333的客户应用程序工作负荷的多个容器332。这些工作节点也称为主机节点或微型组件。虽然术语“Pod”通常用于Kubernetes范例中,但是本文中使用的术语“Pod”不限于该环境,而是指多个容器332的任何分组,其中工作负荷被部署并保持正在运行的应用、库和它们的依赖性。

容器是用于应用程序的软件的标准单元,其将程序指令及其所有依赖性打包,因此该应用程序可以在多个计算环境上运行。容器将软件与容器运行的环境隔离并确保容器在不同的环境中均匀地工作。应用程序的容器可以与用于其他应用程序的其他容器共享机器上的操作系统内核。因此,不是在机器上运行的每个容器都需要一个操作系统。

控制器节点336对应于执行客户应用程序工作负荷的工作者节点334的群集。控制器节点336从客户端装置用户接收并跟踪请求对应于客户应用程序333的服务的执行的服务请求。控制器节点336是工作者节点334的集群的主控制单元,管理集群的客户应用程序并且引导跨集群的通信。工作者节点334中的工作者节点为物理的或虚拟的机器,其中部署用于应用程序的容器。虽然术语“控制器节点”和“工作节点”通常用于Kubernetes范例中,但是本文中使用的这些术语不限于该环境,而是指能够控制和运行客户应用333的任何类型的节点。

在这个说明性实例中,容器编排平台330可管理敏感数据338,敏感数据338由在工作者节点334上运行的Pod 331中的多个容器332使用。敏感数据338的管理可以以增加敏感数据338的保护同时提供更新容器332使用的敏感数据338的灵活性的方式来执行。

现在参见图4,描绘了根据说明性实施例的应用程序管理环境的框图。在这个说明性示例中,容器环境400包括可以在硬件(诸如图1中的云计算环境100中所示的硬件和图3中的网络数据处理系统300)中实现的组件。

在这个说明性例子中,容器环境400包括计算机系统404和容器管理器406。如图所示,容器管理器406位于计算机系统404中。在这个说明性示例中,容器管理器406系统可以操作用于管理多个应用程序410的一组应用程序容器408。容器管理器406可以操作以管理用于该应用程序容器组408针对该多个应用410所使用的敏感数据412。

如本文中所使用的,当参考项目使用时,“一组”意指一个或多个项目。例如,一组应用程序容器408是一个或多个应用程序容器。

容器管理器406可以在软件、硬件、固件或其组合中实现。当使用软件时,由容器管理器406执行的操作可以在被配置为在诸如处理器单元的硬件上运行的程序指令中实现。当使用固件时,由容器管理器406执行的操作可以在程序指令和数据中实现,并且存储在持久性存储器中以在处理器单元上运行。当采用硬件时,硬件可包括操作以执行容器管理器406中的操作的电路。

在说明性示例中,硬件可以采取选自以下各项中的至少一项的形式:电路系统、集成电路、专用集成电路(ASIC)、可编程逻辑器件、或被配置成用于执行多个操作的一些其他合适类型的硬件。利用可编程逻辑器件,该器件可以被配置为执行多个操作。该装置可以在稍后被重新配置或者可以被永久地配置为执行多个操作。可编程逻辑设备包括例如可编程逻辑阵列、可编程阵列逻辑、现场可编程逻辑阵列、现场可编程门阵列和其他合适的硬件设备。此外,该过程可以在与无机组件集成的有机组件中实现,并且可以完全由除人类之外的有机组件组成。例如,这些方法可以被实现为有机半导体中的电路。

计算机系统404是物理硬件系统并且包括一个或多个数据处理系统。当多于一个数据处理系统存在于计算机系统404中时,那些数据处理系统使用通信介质彼此通信。通信介质可以是网络。数据处理系统可以选自计算机、服务器计算机、平板计算机或一些其他合适的数据处理系统中的至少一个。

在这个说明性实例中,容器管理器406以减少错误并增加敏感数据412的改变可以传播到应用程序容器408的速度的方式管理由一组应用程序容器408使用的敏感数据412。容器管理器406可以使用应用程序容器组408的配置信息414来识别应用程序容器组408的敏感数据412。配置信息414可包括敏感数据412的位置416、用于加密的敏感数据412的标识418、以及用于加密敏感数据412的加密算法420。

位置416可以是例如秘密、配置图、数据库、数据存储、文件或敏感数据412可以位于其中的某个其他位置。另外,位置416可识别敏感数据412可位于其中的多个对象。例如,位置416可将第一秘密、第二秘密和配置图,配置图作为敏感数据412可位于其中的对象。换言之,敏感数据412可以存在于由位置416标识的多于一个的对象中。

标识418从可以存在于位置416处的其他敏感数据或信息中识别敏感数据412。加密算法420识别可以对敏感数据412执行的加密的类型,以生成加密的敏感数据422。例如,加密算法420可以是例如高级加密标准(AES)、高级加密标准256、Rivest-Shamir-Adleman(RSA)、数据加密标准(DES)和其他合适的加密方法。由此,利用配置信息414,容器管理器406可以识别什么敏感数据412要由应用程序容器组408和敏感数据412的位置416使用。

配置信息414的这种展示不旨在将本发明限制于用于管理敏感数据412的这些类型的信息。例如,在一些实现方式中,可以省略加密算法420。例如,可以将标准加密方法和加密等级设置为默认值。在另一示例中,位置416可以是其中可以找到敏感数据412的扩展位置。

在这个说明性例子中,容器管理器406可以对为该组应用程序容器408识别的敏感数据412进行加密,以形成加密的敏感数据422。在加密敏感数据412以形成加密的敏感数据422时,容器管理器406可以使用由用于该组应用程序容器408的配置信息414指定的加密算法420来加密敏感数据412以形成加密的敏感数据422。

容器管理器406可以在部署该组应用程序容器408时将加密的敏感数据422保存到该组应用程序容器408所使用的共享存储装置424中。在这个说明性实例中,共享存储装置424可以是可由该组应用程序容器408访问的任何存储装置。

例如,共享存储装置424可以是一组应用程序容器408所位于的Pod 426中的卷。在一个例示性示例中,共享存储装置424可以是当Pod 426被分配一个节点时首先创建的、并且只要Pod 426在该节点上运行就存在的emptyDir卷。本文描绘的示例中,emptyDir卷最初为空,并且Pod426中的所有容器可以读取和写入相同的文件。在Pod 426中的每个容器的相同或不同路径上管理该卷。因此,当共享存储装置424采用卷的形式时,容器管理器406可以将加密的敏感数据422保存为由该组应用程序容器408使用的卷。

在这个说明性示例中,容器管理器406可以考虑,当多个应用程序410中的应用程序的一组应用程序容器408运行时,敏感数据412可以随时间改变。例如,容器管理器406可以周期性地或响应于可能是非周期性的事件来确定是否已经发生对敏感数据412的改变。例如,非周期事件可以是用户发起的对改变的检查。作为另一示例,非周期事件可以是对敏感数据412位于其中的存储的访问。

如所描绘的,容器管理器406可以确定在对该组应用程序容器408的敏感数据412进行加密以形成加密敏感数据422之后在敏感数据412中是否已经发生变化。容器管理器406可以响应于确定对敏感数据412的改变已经发生而对已经被改变的敏感数据412重新加密以形成更新的加密的敏感数据428。容器管理器406可以利用更新的加密的敏感数据428更新的加密的敏感数据422。在该示例中,更新的加密敏感数据428被该组应用程序容器408使用。结果,该组应用程序容器408不使用敏感数据412的版本。

关于是否已经发生改变的确定可以用多种不同的方式来进行。例如,敏感数据412具有在敏感数据412的加密以形成加密的敏感数据422发生之前或之时生成的第一校验和430。容器管理器406可以在生成第一校验和430之后的时间生成敏感数据412的第二校验和432。利用这两个校验和,容器管理器406可以将第一校验和430与第二校验和432进行比较以形成比较434。容器管理器406可以使用校验和的比较来确定是否在敏感数据412中发生了改变。

如果比较434指示校验和相同,那么没有发生变化。如果比较434指示校验和不同,并且已经发生了变化,则可以执行敏感数据412的加密以生成更新的加密敏感数据428,以供该组应用程序容器408使用。

在说明性示例中,敏感数据412的变化可以以许多不同的方式发生。例如,新的敏感数据可被添加到敏感数据412。例如,新敏感数据可通过添加到当前包含敏感数据412的秘密的新秘密而被添加敏感数据412。该新的敏感数据可以是用于新资源的附加口令。在另一说明性示例中,该改变可以发生为对敏感数据412中的属性名称的名称改变。例如,属性名“dbPassword”可改变为dbKeyPassword”。作为另一示例,敏感数据值可改变。例如,敏感数据412中的数据库口令可改变。这些改变可以通过更新配置信息414来处理。以此方式,不需要改变对部署和容器的代码的改变。另外,可在不需要重启应用程序的容器的情况下做出改变。

在说明性示例中,容器管理器406可以自动地处理对敏感数据412的这些不同类型的改变而不需要附加工作。在不同的说明性例子中,可以基于更新的配置信息414来处理敏感数据412的改变。

接下来转到图5,描绘了根据说明性实施例的容器管理器的图示。在该图中,示出了容器管理器406的一个实现方式的示例。如所描述的,容器管理器406可以包括编排工具500、加密服务502和配置容器504。

编排工具500是可以管理容器的部署和操作的软件组件。编排工具500执行容器(诸如图4中的一组应用程序容器408)的自动配置、协调和管理。编排工具500可在该组应用程序容器408可以运行的任何环境中使用。编排工具500可采取许多不同的形式。例如,编排工具500可以是例如Google Kubemetes引擎(GKE)、Helm、运营商、Docker Swam和其他合适的工具。

加密服务502是可以由编排工具500部署的服务。配置容器504可以用作使用该组应用程序容器408的图4的多个应用程序410的应用程序的部署的一部分。在这个说明性实例中,配置容器504可被添加作为用于部署的应用程序的容器和其他资源的部署的一部分,所述应用程序被部署用于图4中的Pod 426。配置容器504可以在应用程序容器之前开始运行以获得加密的敏感数据并且将该加密的敏感数据存储在应用程序容器可以使用的本地共享存储装置中。

在说明性示例中,配置容器504操作用于购买和管理图4中的加密的敏感数据422。配置容器504与该组应用程序容器408中的用于操作以执行应用程序的工作负载的应用程序容器相反。配置容器504可以采取许多不同的形式。例如,当容器管理器406使用诸如Kubernetes的容器编排平台实现时,配置容器504可以是init容器和侧车容器中的一个。

利用此示例,配置容器504被部署在图4中的Pod426中并且在Pod426中的该组应用程序容器之前运行。配置容器504可调用加密服务502以获得加密的敏感数据422并将加密的敏感数据422存储在图4中的共享存储装置424中。加密服务502可以响应于从配置容器504接收对加密敏感数据422的请求来识别和加密敏感数据412。

图4中的计算机系统404可以被配置成用于使用软件、硬件、固件或其组合来执行在不同说明性实例中描述的步骤、操作或动作中的至少一个。因此,计算机系统404作为专用计算机系统操作,其中与用于处理敏感数据的当前技术相比,计算机系统404中的容器管理器406实现对由应用程序容器408使用的敏感数据的改进保护。

例如,与不具有容器管理器406的当前可用的通用计算机系统相比,容器管理器406将计算机系统404转换成专用计算机系统。在说明性示例中,计算机系统404中的容器管理器406以更大的自动化和减少的错误实现敏感数据保护。在一个说明性例子中,容器管理器406在选择与应用程序容器一起使用的敏感数据时实现灵活性。进一步,容器管理器406还能够响应于用于生成加密的敏感数据的敏感数据的变化而更新存储在Pod中的加密敏感数据。

因此,当敏感数据或确切通知改变时,一个或多个说明性项目可以增加应用程序的自动化并且减少应用程序容器的问题。进一步,一个或多个说明性示例可以响应于从中导出加密的敏感数据的敏感数据的变化而自动更新由应用程序容器访问的加密的敏感数据。

进一步地,一个或多个说明性示例通过将经加密的敏感数据放置在共享存储装置中通过在不将敏感数据暴露为环境变量的情况下保护敏感数据来增加安全性。在一个或多个说明性例子中,敏感数据的加密可以自动进行配置容器。进一步,一个或多个说明性示例增加兼容性与自动处理在升级期间发生的敏感数据改变的能力一起发生。

图4和图5中的容器环境400和容器环境400中的不同部件的展示并不意味着暗示对可以实施说明性实施例的方式的物理或架构限制。可使用除了或代替所说明的组件的其他组件。一些部件可能是不必要的。此外,呈现方框以说明一些功能部件。当在说明性实施例中实施时,这些方框中的一个或多个可以组合、划分、或组合并划分成不同的方框。

例如,容器管理器406可以用于管理针对所涉及的多个应用程序的敏感数据。作为另一示例,当多于一个应用程序容器与应用程序容器408一起存在时,每个应用程序容器可具有加密的敏感数据422中的信息。作为另一示例,应用程序容器组408可以是用于多个应用程序410中的应用程序的多于一个应用程序容器。

现在参见图6,描绘了根据说明性实施例的管理应用程序容器的敏感数据所执行的步骤的消息流程图。在这个说明性实例中,编排工具600、加密服务602和配置容器604分别是图5中的编排工具500、加密服务502和配置容器504的实例,例如图4和图5中的容器管理器406的实现方式。

在这个说明性示例中,编排工具600开始加密服务602的加密部署,使得加密服务602可用于管理敏感数据(步骤m1)。在步骤m1中,部署是可以管理一个或多个容器在其中运行的Pod的过程。部署可以是用于Pod的管理工具。虽然在该示例中描述了部署,但是其他说明性示例可以使用其他类型的管理工具。例如,还可以使用有状态按钮,其是类似于部署的管理工具,但是特别适合于有状态的应用程序。

编排工具600请求获得应用程序606的部署的校验和(步骤m2)。该消息由加密服务602中的校验和计算器608接收。

反过来,加密服务602读取配置元数据610(步骤m3)。配置元数据610是图4中的配置信息414的示例。配置元数据610使得加密服务602能够识别针对敏感数据的哪些字段或数据片段将被加密,以及针对数据片段的这些字段的位置。

加密服务602读取位置612中的敏感数据(步骤m4)。位置612可以指向对象,诸如例如秘密、配置图或一些其他合适的数据结构。在说明性示例中,位置612可以是一个以上对象。例如,位置612可以是三个秘密和一个配置图。

在读取位置612中的敏感数据之后,加密服务602使用校验和计算器608来生成所识别的敏感数据的校验和,该校验和可以是例如图4中的第一校验和430。这个校验和被返回至编排工具600(步骤m5)。

在这个说明性示例中,编排工具600开始应用程序部署,并且将校验和设置在用于应用程序部署的元数据中(步骤m6)。在这个说明性示例中,校验和被存储在管理应用程序606的应用程序部署中。该校验和可以用于比较,以便稍后确定敏感数据是否已经改变。

应用程序部署为应用程序606创建Pod614,并且配置容器604开始在Pod614中运行。配置容器604被初始化为应用程序606的部署的一部分。配置容器604调用加密服务602以获得加密的敏感数据(步骤m7)。本文描绘的示例中,由加密服务602中的加密算法616来接收调用。

加密算法616加密使用配置元数据610标识的位置612中的敏感数据。可以从配置元数据610确定用于加密敏感数据的加密算法的类型。在这个说明性的示例中,加密算法616可以执行敏感数据的加密。可选地,加密算法616可以调用外部加密算法618来加密敏感数据(步骤m8)。加密算法616将加密的敏感数据返回到Pod 614中的配置容器604(步骤m9)。

如所描绘的,配置容器604可以将加密的敏感数据保存至卷620(步骤m10)。该加密的敏感数据可存储在卷620中的本地属性文件中,其可供Pod 614中的其他容器使用,例如应用程序容器622。

在这个说明性的示例中,应用程序容器622可以从卷620加载本地属性文件(步骤m11)。本地属性文件可导出为环境变量或安装以供应用程序容器622使用。如图所示,配置容器604可以使用加密的敏感数据,因为应用程序容器622具有对加密的敏感数据进行解密所需的密钥。用于解密加密的敏感数据的密钥可以作为应用程序容器622部署在Pod 614中的部分而被包括。

在这个说明性示例中,编排工具600可以请求周期性地获得校验和(步骤m12)。可以对加密服务602中的校验和计算器608做出请求。该校验和是新的校验和,诸如图4中的第二校验和432。

如果在第一校验和与第二校验和之间交换校验和,可以更新存储在卷620中的敏感信息。在这个说明性实例中,编排工具600可以调用配置容器604以执行加密的敏感信息的滚动更新(步骤m13)。该滚动更新可以涉及配置容器604向加密服务602做出另一请求以获得更新的加密的敏感数据,其中配置容器604将更新的加密的敏感信息存储在卷620中代替当前的加密的敏感数据。

因此,编排工具600可以创建加密服务602并且可以周期性地请求校验和以确定是否已经发生敏感数据的变化。在说明性示例中,加密服务602可以读取配置元数据610,使用配置元数据610读取敏感数据,计算校验和,并且响应于来自编排工具600或配置容器604中的至少一个的调用对敏感数据进行加密。而且,在该示例中,配置容器604可以调用加密服务602以获得校正的敏感数据并且将该加密的敏感数据保存到共享存储装置(诸如卷620)中。

使用这些组件,应用程序容器622可以读取加密的敏感数据以用于执行应用程序的操作。在这个说明性实例中,这些部件可自动将加密的敏感数据提供给Pod 614以供应用程序容器622使用。进一步,这些组件还响应于在敏感数据中检测到的变化来更新存储在卷620中的加密的敏感数据。进一步,通过使用外部加密算法618来加密敏感数据,可以采用附加的灵活性。

现在参见图7,描绘了根据说明性实施例的用于管理敏感数据的数据流图。在说明性实例中,在多于一个的附图中可以使用相同的参考标号。不同附图中的参考标号的这种再利用表示不同附图中的相同元件。

在这个说明性示例中,加密服务602读取识别位置612中的敏感数据700的配置元数据610。加密服务602生成并且返回校验和702至编排工具600。如所描绘的,编排工具600可以将校验和702发送到应用程序部署704,应用程序部署704管理用于应用程序的Pod中的容器。在该示例中,校验和702被存储在应用程序部署704中,并且可以在稍后的时间使用以确定敏感数据700是否已经改变。

如所描绘的,响应于从配置容器604接收对加密的敏感数据706的请求,加密服务602对敏感数据700进行加密,以形成加密的敏感数据706,并且向配置容器604发送加密的敏感数据706。配置容器604将加密的敏感数据706存储在卷620中。在该示例中,应用程序容器622可访问卷620,并且可加载和使用加密的敏感数据706。

转向图8,描绘了根据说明性实施例的配置信息的图示。在这个说明性例子中,配置信息800是图4中的配置信息414和图6中的配置元数据610的一个实施的例子。如所描绘的,配置信息800定义部分802和部分804中的对象。这些对象是其中可以找到敏感数据的位置。

在这个说明性的示例中,部分802中的行805将敏感数据标识为位于秘密形式的对象中。行806指示到秘密的路径。行808中的属性标识位于秘密中的敏感数据的类型。行810识别用于由应用程序容器使用的敏感数据的类型的变量名。行812标识用于加密敏感数据的加密算法。在本例中,加密算法是AES。

部分804以行814中的配置图的形式标识另对象。此对象使用行816中的路径访问。行818中的属性列表标识敏感数据的类型。行820标识加密算法。在该示例中,加密算法是散列。

配置信息800仅意味着作为示例,而不旨在限制可以在其他实施例中实现配置信息的方式。例如,配置信息800可引用敏感数据可位于其中以供应用程序容器加密和使用的一个对象、三个对象、七个对象或某一其他数量的对象。在另一说明性示例中,配置信息800可以是数据库中的表格的形式。

转向图9,描绘了根据说明性实施例的用于创建应用程序部署的过程的流程图。图9中的过程可以在硬件、软件或这两者中实现。当以软件实现时,过程可以采取由位于一个或多个计算机系统中的一个或多个硬件设备中的一个或多个处理器单元运行的程序指令的形式。例如,该过程可以在图5中的编排工具500和图6中的编排工具600中实现。可以周期性地或响应于事件来发起该过程。

该过程开始于调用加密服务并且获得敏感数据的校验和(步骤900)。该过程确定是否存在应用程序部署(步骤902)。如果不存在应用程序部署,则该过程创建具有校验和的应用程序部署(步骤904)。该过程等待一段时间(步骤906),然后返回到步骤900。

再次参考步骤902,如果应用程序部署存在,该过程判定校验和是否已经改变(步骤908)。在步骤908中,该过程先前已获得校验和并且将校验和与步骤902中获得的校验和进行比较。

如果校验和已经改变,该过程在应用程序部署中更新校验和(步骤910)。该过程更新加密的敏感数据(步骤912)并进行到步骤906。再次参考步骤908,如果校验和没有改变,则处理等待一段时间(步骤906)。

参见图10,描绘了根据说明性实施例的用于管理敏感数据的过程的流程图。图10中的过程可以在硬件、软件或这两者中实现。当以软件实现时,过程可以采取由位于一个或多个计算机系统中的一个或多个硬件设备中的一个或多个处理器单元运行的程序指令的形式。例如,该过程可以在图5中的加密服务502和图6中的加密服务602中实现。

该过程开始于读取配置信息(步骤1000)。处理读取配置信息中定义的敏感数据(步骤1002)。过程接收请求(步骤1004)并确定请求的类型(步骤1006)。如果请求的类型是得到加密数据,则过程调用加密服务来加密敏感数据(步骤1008)。然后,该过程将加密的敏感数据返回到做出请求的调用者(步骤1012)。此后该过程终止。

再次参考步骤1006,如果请求是获得校验和,则该过程使用敏感数据生成校验和(步骤1014)。该过程向做出请求的调用者返回校验和(步骤1016),此后该过程终止。

现在转向图11,描绘了根据说明性实施例的用于获得应用程序容器的加密敏感数据的过程的流程图。图11中的过程可以在硬件、软件或这两者中实现。当以软件实现时,过程可以采取由位于一个或多个计算机系统中的一个或多个硬件设备中的一个或多个处理器单元运行的程序指令的形式。例如,可以在图5中的配置容器504中和在图6中的配置容器604中实施该过程。

该过程开始于调用加密服务(步骤1100)。在步骤1100中,该过程向加密服务发送请求以获得加密的敏感数据。该过程从加密服务接收作为响应的加密的敏感数据(步骤1102)。该过程将加密的敏感数据保存到卷中的本地属性文件中(步骤1104)。此后该过程终止。

接下来参见图12,描绘了根据说明性实施例的用于访问针对应用程序程序容器的加密的敏感数据的过程的流程图。图12中的过程可以在硬件、软件或这两者中实现。当以软件实现时,过程可以采取由位于一个或多个计算机系统中的一个或多个硬件设备中的一个或多个处理器单元运行的程序指令的形式。例如,该过程可以在图4中的应用程序容器408中的应用程序容器中和图6中的应用程序容器622中实现。

该过程开始于从卷中的本地属性文件中读取和加载加密的敏感数据(步骤1200)。然后,该过程将加密的敏感数据作为环境变量安装到容器和文件路径(步骤1202)。此后该过程终止。

接下来转向图13,描绘了根据说明性实施例的用于管理敏感数据的过程的流程图。图13中的过程可以在硬件、软件或这两者中实现。当以软件实现时,过程可以采取由位于一个或多个计算机系统中的一个或多个硬件设备中的一个或多个处理器单元运行的程序指令的形式。例如,该过程可以在图4的计算机系统404中的容器管理器406中实现。

该过程开始于使用一组应用程序容器的配置信息识别该组应用程序容器的敏感数据(步骤1300)。该过程对识别的该组应用程序容器的敏感数据加密,以形成加密的敏感数据(步骤1302)。

当部署该组应用程序容器时,该过程将加密的敏感数据保存到由该组应用程序容器使用的共享存储装置中(步骤1304)。此后该过程终止。

参见图14,描绘了根据说明性实施例的用于管理敏感数据的过程的流程图。图14中的处理是可利用图13中的流程图中的步骤执行的附加步骤的实例。该流程图中的步骤可以在步骤1304之后执行。

该过程确定在该组应用程序容器的敏感数据被加密以形成加密的敏感数据之后,敏感数据是否已经发生变化(步骤1400)。然后,响应于确定敏感数据的改变已经发生,用该改变对敏感数据重新加密,以形成更新的加密敏感数据(步骤1402)。

该过程用更新的加密的敏感数据来更新加密的敏感数据,其中,更新的加密的敏感数据被该组应用程序容器使用(步骤1404)。此后该过程终止。

再次参考步骤1400,如果在敏感数据中没有发生变化,则该过程终止。可以重复执行这些步骤以更新该组应用程序容器所使用的加密的敏感数据。

转向图15,描绘了根据说明性实施例的用于确定敏感数据是否已经改变的过程的流程图。该流程图中的过程是图14中的步骤1400的实现方式的示例。在这个说明性的示例中,在加密敏感数据之前,为敏感数据生成第一校验和。

该过程生成敏感数据的第二校验和(步骤1500)。该过程比较第一校验和与第二校验和以形成比较(步骤1502)。

该过程基于该比较确定敏感数据中是否已经发生变化(步骤1504)。此后该过程终止。

参见图16,描绘了根据说明性实施例的用于管理敏感数据的过程的流程图。图16中的过程是可以利用图13中的流程图中的步骤执行的附加步骤的实例。在这个描述的实例中,这些步骤可以由图5中的配置容器504和图6中的配置容器604执行。配置容器可以位于其中部署应用程序容器的同一Pod中。

该过程由计算机系统中的配置容器从加密服务请求加密的敏感数据,其中,该配置容器用于该组应用程序容器(步骤1600)。该过程从加密服务接收加密的敏感数据(步骤1602)。配置容器将在步骤1602中接收的加密的敏感数据保存到共享存储装置以供该组应用程序容器使用。此后该过程终止。

参见图17,描绘了根据说明性实施例的用于识别敏感数据的过程的流程图。图17中的处理是图13中的步骤1300的实施例的实例。

该过程使用配置信息识别什么是敏感数据(步骤1700)。该过程使用配置信息识别敏感数据的位置(步骤1702)。此后该过程终止。

参见图18,描绘了根据说明性实施例的用于加密敏感数据的过程的流程图。图18中的过程是图13中的1302的实施例的实例。

该过程使用由该组应用程序容器的配置信息指定的加密算法加密该组应用程序容器的敏感数据,以形成加密的敏感数据(步骤1800)。此后该过程终止。

参见图19,描绘了根据说明性实施例的用于加密敏感数据的过程的流程图。图19中的过程是图13中的1302的实施例的实例。

该过程使用加密服务对识别的该组应用程序容器的敏感数据加密以形成加密的敏感数据(步骤1900)。此后该过程终止。

接下来转向图20,描绘了根据说明性实施例的用于保存加密的敏感数据的过程的流程图。图20中的过程是图13中的步骤1304的实施的实例。

当部署该组应用程序容器时,该过程将加密的敏感数据保存到由该组应用程序容器使用的卷(步骤2000)。此后该过程终止。

在所描绘的不同实施例中的流程图和框图展示了说明性实施例中的设备和方法的一些可能实现方式的架构、功能和操作。在这点上,流程图或框图中的每个框可表示模块、片段、功能或操作或步骤的一部分中的至少一个。例如,一个或多个框可以被实现为程序指令、硬件或程序指令和硬件的组合。当以硬件实现时,硬件可例如采取被制造或配置成执行流程图或框图中的一个或多个操作的集成电路的形式。当实现为程序指令和硬件的组合时,实现方式可以采取固件的形式。流程图或框图中的每个框可以使用执行不同操作的专用硬件系统或专用硬件与由专用硬件运行的程序指令的组合来实现。

在说明性实施例的一些替代实现方式中,框中指出的一个或多个功能可以不按照图中指出的顺序发生。例如,在一些情况下,取决于所涉及的功能,连续示出的两个框可以基本上同时执行,或者这些框有时可以以相反的顺序执行。此外,除了流程图或框图中示出的框之外,可以添加其他框。

现在转向图21,描绘了根据说明性实施例的数据处理系统的框图。数据处理系统2100可用于实现图1中的云计算节点110、图1中的个人数字助理(PDA)或智能电话120A、台式计算机120B、膝上型计算机120C和/或汽车计算机系统120N。数据处理系统2100可用于实现图2中的硬件和软件层202中的计算机以及图3中的服务器计算机304、服务器计算机306和客户端设备310。数据处理系统2100还可用于实现图4中的计算机系统404。在这个说明性的示例中,数据处理系统2100包括通信框架2102,其提供处理器单元2104、存储器2106、永久性存储器2108、通信单元2110、输入/输出(I/O)单元2112和显示器2114之间的通信。在该示例中,通信框架2102采用总线系统的形式。

处理器单元2104用于执行可以加载到存储器2106中的软件的指令。处理器单元2104包括一个或多个处理器。例如,处理器单元2104可以选自多核处理器、中央处理单元(CPU)、图形处理单元(GPU)、物理处理单元(PPU)、数字信号处理器(DSP)、网络处理器或一些其他合适类型的处理器中的至少一个。进一步,处理器单元2104可以使用一个或多个异构处理器系统实施,在异构处理器系统中,主处理器与次级处理器存在于单个芯片上。作为另一说明性实例,处理器单元2104可以是包含在单个芯片上的相同类型的多个处理器的对称多处理器系统。

存储器2106和持久存储设备2108是存储设备2116的示例。存储设备是能够存储信息的任何硬件,所述信息诸如,例如但不限于,数据、功能形式的程序指令或者在临时基础上、在永久基础上或者在临时基础和永久基础上的其他合适的信息中的至少一种。在这些说明性示例中,存储装置2116还可以被称为计算机可读存储装置。在这些示例中,存储器2106可以是例如随机存取存储器或任何其他合适的易失性或非易失性存储设备。永久性存储器2108可以采取各种形式,这取决于特定的实施方式。

例如,永久性存储器2108可以包含一个或多个部件或装置。例如,永久性存储器2108可以是硬盘驱动器、固态驱动器(SSD)、闪存、可重写光盘、可重写磁带或上述的一些组合。永久性存储器2108使用的介质也可以是可移除的。例如,可移动硬盘驱动器可以用于永久性存储器2108。

在这些说明性实例中,通信单元2110提供与其他数据处理系统或装置的通信。在这些示例性实例中,通信单元2110是网络接口卡。

输入/输出单元2112允许与可以连接至数据处理系统2100的其他装置进行数据的输入和输出。例如,输入/输出单元2112可以通过键盘、鼠标或一些其他合适的输入设备中的至少一个提供用于用户输入的连接。此外,输入/输出单元2112可以将输出发送到打印机。显示器2114提供向用户显示信息的机制。

用于操作系统、应用或程序中的至少一个的指令可以位于通过通信框架2102与处理器单元2104通信的存储设备2116中。不同实施例的过程可以由处理器单元2104使用可以位于存储器(诸如存储器2106)中的计算机实施指令来执行。

这些指令被称为程序指令、计算机可用程序指令或可以由处理器单元2104中的处理器读取和执行的计算机可读程序指令。不同实施例中的程序指令可嵌入在不同的物理或计算机可读存储介质上,诸如存储器2106或永久性存储器2108。

程序指令2118以功能形式位于计算机可读介质2120上,该计算机可读介质是选择性可移除的并且可以加载到或转移到数据处理系统2100上以便由处理器单元2104执行。在这些说明性示例中,程序指令2118和计算机可读介质2120形成计算机程序产品2122。在说明性示例中,计算机可读介质2120是计算机可读存储介质2124。

计算机可读存储介质2124是用于存储程序指令2118的物理或有形存储设备,而不是传播或传输程序指令2118的介质。如本文所使用的计算机可读存储介质2124不应被解释为瞬态信号本身,如无线电波或其他自由传播的电磁波、传播穿过波导或其他传输介质的电磁波(例如,穿过光纤电缆的光脉冲),或者通过电线传输的电信号。

可替代地,可以使用计算机可读信号介质将程序指令2118转移至数据处理系统2100。计算机可读信号介质是信号,并且可以是例如包含程序指令2118的传播数据信号。例如,计算机可读信号介质可以是电磁信号、光信号或任何其他合适类型的信号中的至少一个。这些信号可通过连接(诸如无线连接、光纤电缆、同轴电缆、电线或任何其他合适类型的连接)来传输。

进一步地,如本文所使用的,“计算机可读介质2120”可以是单数或复数的。例如,程序指令2118可以单个存储设备或系统的形式位于计算机可读介质2120中。在另一实例中,程序指令2118可位于分布在多个数据处理系统中的计算机可读介质2120中。换言之,程序指令2118中的一些指令可以位于一个数据处理系统中,而程序指令2118中的其他指令可以位于另一个数据处理系统中。例如,程序指令2118的一部分可以位于服务器计算机中的计算机可读介质2120中,而程序指令2118的另一部分可以位于一组客户端计算机中的计算机可读介质2120中。

针对数据处理系统2100所展示的不同组件并不意味着对可以实施不同实施例的方式提供架构限制。在一些说明性实例中,一个或多个组件可以结合在另一个组件中或以其他方式形成另一个组件的一部分。例如,在一些示例性实例中,存储器2106或其部分可以结合在处理器单元2104中。不同的说明性实施例可以在数据处理系统中实现,该数据处理系统包括除了或代替为数据处理系统2100示出的那些组件之外的组件。图21中所示的其他组件可以不同于所示的说明性实例。不同的实施例可以使用能够运行程序指令2118的任何硬件设备或系统来实现。

因此,说明性实施例提供了一种用于管理容器和应用程序所使用的敏感数据的计算机实现的方法、计算机系统和计算机程序产品。在一个说明性实例中,配置信息识别在Pod中的应用程序容器中使用的敏感数据。该配置信息用于定位和加密敏感数据以形成加密的敏感数据。将加密的感测数据保存在Pod内的共享存储装置中,该共享存储装置可被应用程序容器访问。

在一个说明性实例中,配置容器包括在Pod的部署中。配置容器开始运行以获得加密敏感数据并将加密敏感数据保存在共享存储中。该过程可在应用可运行之前发生。

进一步地,在一些示意性示例中,可以检查用于形成经加密的敏感数据的敏感数据以确定是否已经发生变化。响应于敏感数据中的改变,敏感数据可以被重新加密以形成更新的加密敏感数据。该更新的加密的敏感数据可用于更新共享存储装置中的加密的敏感数据。

因此,一个或多个说明性示例使得能够以减少或避免必须改变用于部署应用程序容器的代码的方式来使敏感数据的管理自动化。进一步,一个或多个说明性示例可在应用程序容器运行时在发生改变时更新敏感数据。在说明性实例中,更新可在不需要重启或重新部署应用程序容器的情况下发生。结果,可以自动管理敏感数据,从而减少涉及重新编码应用程序部署的当前技术所涉及的错误和问题。

进一步地,通过将加密的敏感数据放置在共享存储装置内,说明性示例通过在不将敏感数据暴露为环境变量的情况下保护敏感数据来增加安全性。进一步,敏感数据的加密可以使用配置容器自动发生。进一步,增加兼容性与自动处理在升级期间发生的敏感数据改变的能力一起发生。说明性示例还可以使用复杂的逻辑代码来处理密钥加密密钥、算法和多个敏感数据值来降低当前技术的错误率。

已经出于说明和描述的目的呈现了对不同说明性实施例的描述,并且不旨在是详尽的或限于所公开的形式的实施例。不同的说明性示例描述了执行动作或操作的组件。在说明性实施例中,组件可以被配置成用于执行所描述的动作或操作。例如,组件可以具有为组件提供执行在说明性示例中描述为由组件执行的动作或操作的能力的结构的配置或设计。此外,在本文中使用术语“包括”、“包含”、“具有”、“含有”及其变体的范围内,这些术语旨在以类似于术语“包括”作为开放式过渡词的方式为包含性的,而不排除任何另外的或其他元素。

已经出于说明的目的呈现了本发明的各个实施例的描述,但并不旨在是详尽的或限于所公开的实施例。不是所有的实施方式都将包括在说明性实例中描述的所有特征。此外,与其他说明性实施例相比,不同的说明性实施例可以提供不同的特征。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。

相关技术
  • 用于尤其是与在自动化、控制或者监控系统中的诊断和配置相关地来加密保护在IT系统中的控制通信和/或加密保护对IT系统的服务访问的方法和计算机
  • 用于判定是否将受保护容器页的加密副本加载到受保护容器存储器中的处理器、方法、系统和指令
技术分类

06120115848741