CN116578393B - 一种容器使用加密目录的方法、系统、设备以及存储介质 - Google Patents

一种容器使用加密目录的方法、系统、设备以及存储介质 Download PDF

Info

Publication number
CN116578393B
CN116578393B CN202310848501.4A CN202310848501A CN116578393B CN 116578393 B CN116578393 B CN 116578393B CN 202310848501 A CN202310848501 A CN 202310848501A CN 116578393 B CN116578393 B CN 116578393B
Authority
CN
China
Prior art keywords
encryption
virtual block
parameters
equipment
directory
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
CN202310848501.4A
Other languages
English (en)
Other versions
CN116578393A (zh
Inventor
杨帅
焦浩霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310848501.4A priority Critical patent/CN116578393B/zh
Publication of CN116578393A publication Critical patent/CN116578393A/zh
Application granted granted Critical
Publication of CN116578393B publication Critical patent/CN116578393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种容器使用加密目录的方法,涉及容器领域,包括以下步骤:接收并解析容器发送的挂载请求以获取所述挂载请求中携带的目录名、设备参数、文件系统参数和加密参数;基于所述设备参数创建虚拟块设备;利用所述加密参数对所述虚拟块设备进行加密得到虚拟块加密设备;利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化并将所述虚拟块加密设备挂载到所述目录名对应的目录下,以使所述容器通过所述目录与所述虚拟块加密设备进行数据交互。本发明还公开了一种系统、计算机设备以及可读存储介质。本发明提出的方案能够使得容器能够使用加密后的虚拟块设备。

Description

一种容器使用加密目录的方法、系统、设备以及存储介质
技术领域
本发明涉及容器领域,具体涉及一种容器使用加密目录的方法、系统、设备以及存储介质。
背景技术
在云计算领域,docker(一个开源的应用容器引擎)成为了容器化的主流产品,但是docker容器在使用宿主机目录的时候并不会对其进行加密处理,导致了容器产生的数据在宿主机目录上是一个明文形式,这样对应用的安全性产生了巨大的威胁。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种容器使用加密目录的方法,包括以下步骤:
接收并解析容器发送的挂载请求以获取所述挂载请求中携带的目录名、设备参数、文件系统参数和加密参数;
基于所述设备参数创建虚拟块设备;
利用所述加密参数对所述虚拟块设备进行加密得到虚拟块加密设备;
利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化并将所述虚拟块加密设备挂载到所述目录名对应的目录下,以使所述容器通过所述目录与所述虚拟块加密设备进行数据交互。
在一些实施例中,基于所述设备参数创建虚拟块设备的步骤,进一步包括:
解析所述设备参数,以确定待创建的虚拟块设备的规格;
根据所述规格创建预设大小的存储文件;
将所述存储文件虚拟成虚拟块设备。
在一些实施例中,根据所述规格创建预设大小的存储文件的步骤,进一步包括:
生成第一指令;
基于所述第一指令调用第一系统工具;
利用所述第一系统工具创建预设大小的存储文件。
在一些实施例中,将所述存储文件虚拟化为块设备的步骤,进一步包括:
生成第二指令;
基于所述第二指令调用第二系统工具;
利用所述第二系统工具将所述存储文件虚拟成虚拟块设备。
在一些实施例中,还包括:
创建若干个加密模板,每一个所述加密模板中均包括名称和加密算法。
在一些实施例中,还包括:
将所述若干个加密模板保存到第一文件中;
将所述第一文件保存到预设存储位置。
在一些实施例中,还包括:
响应于接收到删除加密模板的指令,根据指令中的待删除的加密模板的名称查找对应的加密模板并删除。
在一些实施例中,还包括:
通过预设接口向所述容器提供所述若干个加密模板的名称,以使所述容器将其中一个所述加密模板的名称和预设的加密密钥共同作为所述加密参数。
在一些实施例中,利用所述加密参数对所述虚拟块设备进行加密得到虚拟块加密设备的步骤,进一步包括:
基于所述加密参数中的加密模板的名称在所述第一文件中获取对应的加密模板。
在一些实施例中,还包括:
利用所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密。
在一些实施例中,利用所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密的步骤,进一步包括:
生成第三指令;
基于所述第三指令调用第三系统工具;
利用所述第三系统工具基于所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密。
在一些实施例中,利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化并将所述虚拟块加密设备挂载到所述目录名对应的目录下的步骤,进一步包括:
调用第三系统工具以基于所述加密参数打开所述虚拟块加密设备;
判断所述虚拟块加密设备中是否存在文件系统;
响应于所述虚拟块加密设备不存在所述文件系统,利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化。
在一些实施例中,还包括:
判断所述目录名对应的目录是否存在;
响应于存在,将所述虚拟块加密设备挂载到所述目录名对应的目录下。
在一些实施例中,还包括:
响应于不存在,创建所述目录名对应的目录;
将所述虚拟块加密设备挂载到所述目录名对应的目录下。
在一些实施例中,还包括:
将所述挂载请求中携带的参数保存到第二文件中。
在一些实施例中,还包括:
响应于接收到所述容器删除指令,根据所述第二文件中的目录名确定需要卸载的目录;
将所述虚拟块加密设备从所述目录名对应的目录上卸载。
在一些实施例中,还包括:
调用第三系统工具关闭所述虚拟块加密设备。
在一些实施例中,还包括:
删除所述第二文件。
在一些实施例中,还包括:
响应于接收到对所述虚拟块加密设备的参数进行修改的指令,将所述虚拟块加密设备从所述目录中卸载;
基于所述指令对所述虚拟块加密设备的参数进行修改并更新所述第二文件中相应的参数。
在一些实施例中,基于所述指令对所述虚拟块加密设备的参数进行修改的步骤,进一步包括:
对所述虚拟块加密设备的大小进行修改。
在一些实施例中,基于所述指令对所述虚拟块加密设备的参数进行修改,进一步包括:
对所述虚拟块加密设备的文件系统进行修改。
在一些实施例中,基于所述指令对所述虚拟块加密设备的参数进行修改的步骤,进一步包括:
对所述虚拟块加密设备的加密算法和/或加密密钥进行修改。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种系统,包括:
接收模块,配置为接收并解析容器发送的挂载请求以获取所述挂载请求中携带的目录名、设备参数、文件系统参数和加密参数;
创建模块,配置为基于所述设备参数创建虚拟块设备;
加密模块,配置为利用所述加密参数对所述虚拟块设备进行加密得到虚拟块加密设备;
挂载模块,配置为利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化并将所述虚拟块加密设备挂载到所述目录名对应的目录下,以使所述容器通过所述目录与所述虚拟块加密设备进行数据交互。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述程序时执行如上所述的任一种容器使用加密目录的方法的步骤。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种容器使用加密目录的方法的步骤。
本发明具有以下有益技术效果之一:本发明提出的方案通过基于容器发送的挂载请求确定目录名、设备参数、文件系统参数和加密参数,从而基于设备参数和加密参数创建虚拟块加密设备,并基于文件系统参数对虚拟块加密设备进行格式化,再挂载到目录名对应的目录,使得容器能够使用加密后的虚拟块设备。解决了容器使用目录时,所产生的数据在宿主机上是明文的安全隐患,有效的保护了容器内应用所产生的数据,提升了应用的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的实施例提供的容器使用加密目录的方法的流程示意图;
图2为本发明的实施例提供的容器、客户端、插件之间的连接示意图;
图3为本发明的实施例提供的创建并挂载虚拟块加密设备的流程图;
图4为本发明的实施例提供的容器、客户端之间的连接示意图;
图5为本发明的实施例提供的系统的结构示意图;
图6为本发明的实施例提供的计算机设备的结构示意图;
图7为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
根据本发明的一个方面,本发明的实施例提出一种容器使用加密目录的方法,如图1所示,其可以包括步骤:
S1,接收并解析容器发送的挂载请求以获取所述挂载请求中携带的目录名、设备参数、文件系统参数和加密参数;
S2,基于所述设备参数创建虚拟块设备;
S3,利用所述加密参数对所述虚拟块设备进行加密得到虚拟块加密设备;
S4,利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化并将所述虚拟块加密设备挂载到所述目录名对应的目录下,以使所述容器通过所述目录与所述虚拟块加密设备进行数据交互。
本发明提出的方案通过基于容器发送的挂载请求确定目录名、设备参数、文件系统参数和加密参数,从而基于设备参数和加密参数创建虚拟块加密设备,并基于文件系统参数对虚拟块加密设备进行格式化,再挂载到目录名对应的目录,使得容器能够使用加密后的虚拟块设备。
在一些实施例中,容器可以将挂载请求发送到插件中,通过插件实现容器与挂载有虚拟块加密设备的目录的数据交互,这样容器本身可以并不关心目录是如何创建以及目录是否真的存在。通过插件为容器提供可用的目录以及保证目录可用性。当容器调用插件完成创建后,这个目录信息就会被记录到容器的数据库中,容器不会去校验目录真实存在性。容器在使用目录时,与正常挂载目录毫无差异,因此可以不必关心容器如何去挂载的目录,只用关注目录生成和目录的可用性即可。
在一些实施例中,基于所述设备参数创建虚拟块设备,进一步包括:
解析所述设备参数,以确定待创建的虚拟块设备的规格;
根据所述规格创建预设大小的存储文件;
将所述存储文件虚拟成虚拟块设备。
具体的,如图2所示,当插件接收到容器发送的挂载请求后,对挂载请求进行解析以获取挂载请求中携带的参数,即获取目录名、设备参数、文件系统参数和加密参数,接着基于设备参数确定待创建的虚拟块设备的规格,从而根据该规格创建相应大小的块设备。块设备的名称也可以来自于设备参数,即设备参数中可以包括块设备的大小和名称。
在一些实施例中,根据所述规格创建预设大小的存储文件,进一步包括:
生成第一指令;
基于所述第一指令调用第一系统工具;
利用所述第一系统工具创建预设大小的存储文件。
在一些实施例中,将所述存储文件虚拟化为块设备,进一步包括:
生成第二指令;
基于所述第二指令调用第二系统工具;
利用所述第二系统工具将所述存储文件虚拟成虚拟块设备。
具体的,如图3所示,根据设备参数创建一个固定大小的存储文件,在创建过程中,插件可以通过第一指令调用第一系统工具(例如DD系统工具,DD是一个Unix(操作系统)和类Unix系统上的命令,主要功能为转换和复制文件)以创建出一个固定大小的存储文件,然后将该存储文件虚拟化成一个块设备,在这个虚拟化过程中,插件可以通过第二指令调用第二系统工具,例如losetup系统工具,使用该系统工具可以设置和控制循环设备,以及查询循环设备目前的状况。循环设备可把文件虚拟成虚拟块设备,借以模拟整个文件系统,让用户得以将其视为硬盘、光驱或软驱等设备。
在一些实施例中,还包括:
创建若干个加密模板,每一个所述加密模板中均包括名称和加密算法。
具体的,如图2所示,为了能够解决动态修改加密信息问题,可以部署与插件相配合的客户端工具,通过该客户端工具可以创建多个加密模板,每一种加密模板可以由name、cipher、key-size三部分组成,cipher值为加密算法名称,key-size为算法密钥长度,name为加密模板的唯一标识。在启动插件时,会初始化一个默认的加密模板,例如name=default,cipher=aes-xts-plain64,key-size=512,如果容器发送的挂载请求中没有携带加密参数或加密参数为空,则默认使用此加密模板进行加密。
在一些实施例中,还包括:
将所述若干个加密模板保存到第一文件中;
将所述第一文件保存到预设存储位置。
具体的,如图4所示,在创建和维护目录时,需要将目录的有用信息永久性的存储下来,在本发明的实施例中,可以使用json(JavaScript Object Notation,是一种轻量级的数据交换格式)文件作为永久性存储,从而将目录信息存储在json文件中,因此,在创建多个加密模板后,可以将其存储到格式为json的第一文件中,从而永久性存储多个加密模板。
需要说明的是,加密算法配置,是一个模板配置,这些信息保存在第一文件中,是一个独立的模块,通过插件的客户端工具来操作,通过客户端传参来完成设置,并保存在第一文件中,默认情况下,会存在一个name=default,cipher=aes-xts-plain64,key-size=512的算法,此算法无法删除,无法修改,客户端可以根据第一文件中的name字段可以删除对应的算法,但是需要注意的是,如果name字段已经在volume.json存在过就无法删除。
在一些实施例中,还包括:
响应于接收到删除加密模板的指令,根据指令中的待删除的加密模板的名称查找对应的加密模板并删除。
具体的,如图3所示,当需要删除加密模板时,可以向客户端输入相应携带有待删除模板的名称的指令,从而根据该名称将相应的加密模板从第一文件中删除。同样的,新增加密模板时,也可以通过客户端接收携带有加密模板的name、cipher、key-size的指令,然后将其保存到第一文件中。
在一些实施例中,还包括:
通过预设接口向所述容器提供所述若干个加密模板的名称,以使所述容器将其中一个所述加密模板的名称和预设的加密密钥共同作为所述加密参数。
具体的,插件可以通过一个预设接口向容器提供当前第一文件中保存到加密模板的名称,从而使得容器可以从中选择一个加密模板,然后将该加密模板的名称和预设的加密密钥共同作为加密参数。
在一些实施例中,利用所述加密参数对所述虚拟块设备进行加密得到虚拟块加密设备,进一步包括:
基于所述加密参数中的加密模板的名称获取对应的加密模板。
在一些实施例中,还包括:
利用所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密。
具体的,可以根据加密参数中的加密模板的名称在第一文件中获取到加密模板的具体加密算法,然后利用该加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密。
在一些实施例中,利用所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密,进一步包括:
生成第三指令;
基于所述第三指令调用第三系统工具;
利用所述第三系统工具基于所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密。
在一些实施例中,利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化并将所述虚拟块加密设备挂载到所述目录名对应的目录下,进一步包括:
调用第三系统工具以基于所述加密参数打开所述虚拟块加密设备;
判断所述虚拟块加密设备中是否存在文件系统;
响应于所述虚拟块加密设备不存在所述文件系统,利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化。
在一些实施例中,还包括:
判断所述目录名对应的目录是否存在;
响应于存在,将所述虚拟块加密设备挂载到所述目录名对应的目录下。
在一些实施例中,还包括:
响应于不存在,创建所述目录名对应的目录;
将所述虚拟块加密设备挂载到所述目录名对应的目录下。
具体的,如图3所示,当通过设备参数创建出一个虚拟块设备后,插件可以通过第三指令调用第三系统工具(例如Cryptsetup系统工具)来进行虚拟化设备加密设置工作,在加密过程中,需要基于所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密,完成加密设置后即可得到一个虚拟块加密设备。
接着,继续使用第三系统工具打开该虚拟块加密设备(打开时同样需要利用加密密钥)以对虚拟块加密设备进行文件系统的格式化,打开后,判断是否存在与文件系统参数相对应的文件系统,如果不存在,则根据所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化。如果存在,则将虚拟块加密设备挂载到目录名对应的目录下,在挂载前,需要判断该目录是否存在,如果不存在,则创建目录,因此容器只需要向插件提供目录名,其本身可以并不关心目录是如何创建以及目录是否真的存在,目录是如何创建以及目录是否真的存在均是由插件完成相应判断和处理。
在一些实施例中,还包括:
将所述挂载请求中携带的参数保存到第二文件中。
具体的,如图4所示,容器发送的挂载请求中携带的参数同样属于目录的有用信息,因此相关参数需要永久性的存储下来,在本发明的实施例中,可以使用json文件作为永久性存储,从而将挂载请求中携带的参数存储在格式为json的第二文件中。第二文件包括了dir、filename、fstype、secret、password和size,其中,dir为目录名;filename为块加密设备名称;fstype为文件系统参数(例如可以包括名称等);secret为块加密设备的加密模板名称,通过该参数可以确定使用了第一文件中哪个加密模板;password加密密钥,此加密密钥存储时可以使用Base64算法进行加密;size为块加密设备的大小,类型为整数形,单位为GB。
在一些实施例中,还包括:
响应于接收到所述容器删除指令,根据所述第二文件中的目录名确定需要卸载的目录;
将所述虚拟块加密设备从所述目录名对应的目录上卸载。
在一些实施例中,还包括:
调用第三系统工具关闭所述虚拟块加密设备。
在一些实施例中,还包括:
删除所述第二文件。
具体的,当不需要挂载虚拟块加密设备的目录时,需要删除目录,删除目录包涵了两个部分删除,一部分是目录的删除,另一部分是虚拟块加密设备的删除。当容器触发删除时,只会删除目录和虚拟块加密设备,并不会针对本地存储文件(第二文件)进行删除操作,第二文件的删除依赖于插件的客户端工具来触发此操作。容器触发删除操作时,首先会进行虚拟块加密设备的卸载操作,通过删除指令中目录名字段来判断需要被卸载的目录,然后等待目录卸载完成,完成后,开始关闭虚拟块加密设备,关闭可以使用第三系统工具的close(关闭)子命令,关闭完成后,虚拟块加密设备会消失,只会留下第二文件。插件的客户端工具触发删除操作时,会真实的删除本地存储的第二文件,如果此文件正在被使用还会删除对应目录,以确保第二文件真实被释放。因此完整的删除逻辑可以是:先判断目录是否存储,如果存在,先触发容器删除卷操作,然后触发客户端工具删除第二文件操作,从而删除第二文件。如果不存在,直接触发客户端工具删除第二文件操作以删除第二文件。
在一些实施例中,还包括:
响应于接收到对所述虚拟块加密设备的参数进行修改的指令,将所述虚拟块加密设备从所述目录中卸载;
基于所述指令对所述虚拟块加密设备的参数进行修改并更新所述第二文件中相应的参数。
在一些实施例中,基于所述指令对所述虚拟块加密设备的参数进行修改,进一步包括:
对所述虚拟块加密设备的大小进行修改。
在一些实施例中,基于所述指令对所述虚拟块加密设备的参数进行修改,进一步包括:
对所述虚拟块加密设备的文件系统进行修改。
在一些实施例中,基于所述指令对所述虚拟块加密设备的参数进行修改,进一步包括:
对所述虚拟块加密设备的加密算法和/或加密密钥进行修改。
具体的,当需要对虚拟块加密设备的参数进行修改时,可以先将其从目录中卸载,然后根据接收到参数对其进行更新,从而对虚拟块加密设备的大小、文件系统加密算法和/或加密密钥进行修改,同时同步更新第二文件中相应的参数,
本发明提出的方案通过基于容器发送的挂载请求确定目录名、设备参数、文件系统参数和加密参数,从而基于设备参数和加密参数创建虚拟块加密设备,并基于文件系统参数对虚拟块加密设备进行格式化,再挂载到目录名对应的目录,使得容器能够使用加密后的虚拟块设备。还可以支持不同的加密算法、支持密钥管理、支持不同的文件系统、支持设置不同的虚拟块加密设备的大小。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种系统400,如图5所示,包括:
接收模块401,配置为接收并解析容器发送的挂载请求以获取所述挂载请求中携带的目录名、设备参数、文件系统参数和加密参数;
创建模块402,配置为基于所述设备参数创建虚拟块设备;
加密模块403,配置为利用所述加密参数对所述虚拟块设备进行加密得到虚拟块加密设备;
挂载模块404,配置为利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化并将所述虚拟块加密设备挂载到所述目录名对应的目录下,以使所述容器通过所述目录与所述虚拟块加密设备进行数据交互。
在一些实施例中,创建模块402还配置为:
解析所述设备参数,以确定待创建的虚拟块设备的规格;
根据所述规格创建预设大小的存储文件;
将所述存储文件虚拟成虚拟块设备。
在一些实施例中,创建模块402还配置为:
生成第一指令;
基于所述第一指令调用第一系统工具;
利用所述第一系统工具创建预设大小的存储文件。
在一些实施例中,创建模块402还配置为:
生成第二指令;
基于所述第二指令调用第二系统工具;
利用所述第二系统工具将所述存储文件虚拟成虚拟块设备。
在一些实施例中,还包括客户端模块,配置为:
创建若干个加密模板,每一个所述加密模板中均包括名称和加密算法。
在一些实施例中,客户端模块还配置为:
将所述若干个加密模板保存到第一文件中;
将所述第一文件保存到预设存储位置。
在一些实施例中,客户端模块还配置为:
响应于接收到删除加密模板的指令,根据指令中的待删除的加密模板的名称查找对应的加密模板并删除。
在一些实施例中,客户端模块还配置为:
通过预设接口向所述容器提供所述若干个加密模板的名称,以使所述容器将其中一个所述加密模板的名称和预设的加密密钥共同作为所述加密参数。
在一些实施例中,加密模块403还配置为:
基于所述加密参数中的加密模板的名称在所述第一文件中获取对应的加密模板。
在一些实施例中,加密模块403还配置为:
利用所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密。
在一些实施例中,加密模块403还配置为:
生成第三指令;
基于所述第三指令调用第三系统工具;
利用所述第三系统工具基于所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密。
在一些实施例中,挂载模块404还配置为:
调用第三系统工具以基于所述加密参数打开所述虚拟块加密设备;
判断所述虚拟块加密设备中是否存在文件系统;
响应于所述虚拟块加密设备不存在所述文件系统,利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化。
在一些实施例中,挂载模块404还配置为:
判断所述目录名对应的目录是否存在;
响应于存在,将所述虚拟块加密设备挂载到所述目录名对应的目录下。
在一些实施例中,挂载模块404还配置为:
响应于不存在,创建所述目录名对应的目录;
将所述虚拟块加密设备挂载到所述目录名对应的目录下。
在一些实施例中,挂载模块404还配置为:
将所述挂载请求中携带的参数保存到第二文件中。
在一些实施例中,还包括卸载模块,配置为:
响应于接收到所述容器删除指令,根据所述第二文件中的目录名确定需要卸载的目录;
将所述虚拟块加密设备从所述目录名对应的目录上卸载。
在一些实施例中,卸载模块还配置为:
调用第三系统工具关闭所述虚拟块加密设备。
在一些实施例中,卸载模块还配置为:
删除所述第二文件。
在一些实施例中,还包括更新模块,配置为:
响应于接收到对所述虚拟块加密设备的参数进行修改的指令,将所述虚拟块加密设备从所述目录中卸载;
基于所述指令对所述虚拟块加密设备的参数进行修改并更新所述第二文件中相应的参数。
在一些实施例中,更新模块还配置为:
对所述虚拟块加密设备的大小进行修改。
在一些实施例中,更新模块还配置为:
对所述虚拟块加密设备的文件系统进行修改。
在一些实施例中,更新模块还配置为:
对所述虚拟块加密设备的加密算法和/或加密密钥进行修改。
本发明提出的方案通过基于容器发送的挂载请求确定目录名、设备参数、文件系统参数和加密参数,从而基于设备参数和加密参数创建虚拟块加密设备,并基于文件系统参数对虚拟块加密设备进行格式化,再挂载到目录名对应的目录,使得容器能够使用加密后的虚拟块设备。
基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机设备501,包括:
至少一个处理器520;以及
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种容器使用加密目录的方法的步骤。
基于同一发明构思,根据本发明的另一个方面,如图7所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序610,计算机程序610被处理器执行时执行如上的任一种容器使用加密目录的方法的步骤。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (21)

1.一种容器使用加密目录的方法,其特征在于,包括以下步骤:
接收并解析容器发送的挂载请求以获取所述挂载请求中携带的目录名、设备参数、文件系统参数和加密参数;
基于所述设备参数创建虚拟块设备;
创建若干个加密模板,每一个所述加密模板中均包括名称和加密算法;
通过预设接口向所述容器提供所述若干个加密模板的名称,以使所述容器将其中一个所述加密模板的名称和预设的加密密钥共同作为所述加密参数;
利用所述加密参数对所述虚拟块设备进行加密得到虚拟块加密设备;
利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化并将所述虚拟块加密设备挂载到所述目录名对应的目录下,以使所述容器通过所述目录与所述虚拟块加密设备进行数据交互;
其中,利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化并将所述虚拟块加密设备挂载到所述目录名对应的目录下,包括:
判断所述目录名对应的目录是否存在;
响应于存在,将所述虚拟块加密设备挂载到所述目录名对应的目录下;
响应于不存在,创建所述目录名对应的目录;
将所述虚拟块加密设备挂载到所述目录名对应的目录下。
2.如权利要求1所述的方法,其特征在于,所述基于所述设备参数创建虚拟块设备的步骤,进一步包括:
解析所述设备参数,以确定待创建的虚拟块设备的规格;
根据所述规格创建预设大小的存储文件;
将所述存储文件虚拟成所述虚拟块设备。
3.如权利要求2所述的方法,其特征在于,所述根据所述规格创建预设大小的存储文件的步骤,进一步包括:
生成第一指令;
基于所述第一指令调用第一系统工具;
利用所述第一系统工具创建预设大小的存储文件。
4.如权利要求2所述的方法,其特征在于,所述将所述存储文件所述虚拟成虚拟块设备的步骤,进一步包括:
生成第二指令;
基于所述第二指令调用第二系统工具;
利用所述第二系统工具将所述存储文件虚拟成所述虚拟块设备。
5.如权利要求1所述的方法,其特征在于,还包括:
将所述若干个加密模板保存到第一文件中;
将所述第一文件保存到预设存储位置。
6.如权利要求5所述的方法,其特征在于,还包括:
响应于接收到删除加密模板的指令,根据指令中的待删除的加密模板的名称查找对应的加密模板并删除。
7.如权利要求5所述的方法,其特征在于,所述利用所述加密参数对所述虚拟块设备进行加密得到虚拟块加密设备的步骤,进一步包括:
基于所述加密参数中的加密模板的名称在第一文件中获取对应的加密模板。
8.如权利要求7所述的方法,其特征在于,还包括:
利用所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密。
9.如权利要求8所述的方法,其特征在于,所述利用所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密的步骤,进一步包括:
生成第三指令;
基于所述第三指令调用第三系统工具;
利用所述第三系统工具基于所述对应的加密模板中的加密算法和所述加密参数中的加密密钥对所述虚拟块设备进行加密。
10.如权利要求1所述的方法,其特征在于,所述利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化并将所述虚拟块加密设备挂载到所述目录名对应的目录下的步骤,进一步包括:
调用第三系统工具以基于所述加密参数打开所述虚拟块加密设备;
判断所述虚拟块加密设备中是否存在文件系统;
响应于所述虚拟块加密设备不存在所述文件系统,利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化。
11.如权利要求1所述的方法,其特征在于,还包括:
将所述挂载请求中携带的参数保存到第二文件中。
12.如权利要求11所述的方法,其特征在于,还包括:
响应于接收到对所述容器的删除指令,根据所述第二文件中的目录名确定需要卸载的目录;
将所述虚拟块加密设备从所述目录名对应的目录上卸载。
13.如权利要求12所述的方法,其特征在于,还包括:
调用第三系统工具关闭所述虚拟块加密设备。
14.如权利要求12所述的方法,其特征在于,还包括:
删除所述第二文件。
15.如权利要求11所述的方法,其特征在于,还包括:
响应于接收到对所述虚拟块加密设备的参数进行修改的指令,将所述虚拟块加密设备从所述目录中卸载;
基于所述指令对所述虚拟块加密设备的参数进行修改并更新所述第二文件中相应的参数。
16.如权利要求15所述的方法,其特征在于,所述基于所述指令对所述虚拟块加密设备的参数进行修改的步骤,进一步包括:
对所述虚拟块加密设备的大小进行修改。
17.如权利要求15所述的方法,其特征在于,所述基于所述指令对所述虚拟块加密设备的参数进行修改的步骤,进一步包括:
对所述虚拟块加密设备的文件系统进行修改。
18.如权利要求15所述的方法,其特征在于,所述基于所述指令对所述虚拟块加密设备的参数进行修改的步骤,进一步包括:
对所述虚拟块加密设备的加密算法和/或加密密钥进行修改。
19.一种数据交互系统,其特征在于,包括:
接收模块,配置为接收并解析容器发送的挂载请求以获取所述挂载请求中携带的目录名、设备参数、文件系统参数和加密参数;
创建模块,配置为基于所述设备参数创建虚拟块设备;
客户端模块,配置为创建若干个加密模板,每一个所述加密模板中均包括名称和加密算法,并通过预设接口向所述容器提供所述若干个加密模板的名称,以使所述容器将其中一个所述加密模板的名称和预设的加密密钥共同作为所述加密参数;
加密模块,配置为利用所述加密参数对所述虚拟块设备进行加密得到虚拟块加密设备;
挂载模块,配置为利用所述文件系统参数对所述虚拟块加密设备进行文件系统的格式化并将所述虚拟块加密设备挂载到所述目录名对应的目录下,以使所述容器通过所述目录与所述虚拟块加密设备进行数据交互;
挂载模块还配置为:
判断所述目录名对应的目录是否存在;
响应于存在,将所述虚拟块加密设备挂载到所述目录名对应的目录下;
响应于不存在,创建所述目录名对应的目录;
将所述虚拟块加密设备挂载到所述目录名对应的目录下。
20.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-18任意一项所述的方法的步骤。
21.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-18任意一项所述的方法的步骤。
CN202310848501.4A 2023-07-11 2023-07-11 一种容器使用加密目录的方法、系统、设备以及存储介质 Active CN116578393B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310848501.4A CN116578393B (zh) 2023-07-11 2023-07-11 一种容器使用加密目录的方法、系统、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310848501.4A CN116578393B (zh) 2023-07-11 2023-07-11 一种容器使用加密目录的方法、系统、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN116578393A CN116578393A (zh) 2023-08-11
CN116578393B true CN116578393B (zh) 2023-09-29

Family

ID=87534413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310848501.4A Active CN116578393B (zh) 2023-07-11 2023-07-11 一种容器使用加密目录的方法、系统、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN116578393B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107333261A (zh) * 2017-06-21 2017-11-07 努比亚技术有限公司 加密数据的方法、存储介质和移动终端
CN114036538A (zh) * 2021-11-03 2022-02-11 北京中安星云软件技术有限公司 一种基于虚拟块设备的数据库透明加解密实现方法及系统
CN114491607A (zh) * 2022-02-14 2022-05-13 苏州浪潮智能科技有限公司 云平台数据处理方法、装置、计算机设备及存储介质
CN114567676A (zh) * 2022-03-14 2022-05-31 杭州电子科技大学 一种基于多级加密的私有文件容器入口隐蔽方法
US11409712B2 (en) * 2020-03-19 2022-08-09 Sun Yat-Sen University Small-file storage optimization system based on virtual file system in KUBERNETES user-mode application

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107333261A (zh) * 2017-06-21 2017-11-07 努比亚技术有限公司 加密数据的方法、存储介质和移动终端
US11409712B2 (en) * 2020-03-19 2022-08-09 Sun Yat-Sen University Small-file storage optimization system based on virtual file system in KUBERNETES user-mode application
CN114036538A (zh) * 2021-11-03 2022-02-11 北京中安星云软件技术有限公司 一种基于虚拟块设备的数据库透明加解密实现方法及系统
CN114491607A (zh) * 2022-02-14 2022-05-13 苏州浪潮智能科技有限公司 云平台数据处理方法、装置、计算机设备及存储介质
CN114567676A (zh) * 2022-03-14 2022-05-31 杭州电子科技大学 一种基于多级加密的私有文件容器入口隐蔽方法

Also Published As

Publication number Publication date
CN116578393A (zh) 2023-08-11

Similar Documents

Publication Publication Date Title
US11159518B2 (en) Container independent secure file system for security application containers
TWI709059B (zh) 檔案打包、檔案包解包方法、裝置及網路設備
JP5344109B1 (ja) データベース暗号化システムと方法及びプログラム
US8694786B2 (en) Virtual machine images encryption using trusted computing group sealing
US9195849B2 (en) Cloud application installed in client terminal connected to cloud server
US9098715B1 (en) Method and system for exchanging content between applications
US20180341556A1 (en) Data backup method and device, storage medium and server
US9589153B2 (en) Securing integrity and consistency of a cloud storage service with efficient client operations
JP2016513837A (ja) クラウドデータセキュリティのためのシステム及び方法
US20140245025A1 (en) System and method for storing data securely
CA3028091C (en) Securing data at rest utilizing cloud provider service agnostic encrypted data transportability
US12003488B2 (en) Protecting cloud application secret key with multi-party computation algorithm
CN103020543A (zh) 一种虚拟磁盘映像加密管理系统及方法
US9607176B2 (en) Secure copy and paste of mobile app data
CN116578393B (zh) 一种容器使用加密目录的方法、系统、设备以及存储介质
CN115567596B (zh) 云服务资源部署方法、装置、设备及存储介质
CN116244682A (zh) 数据库的访问方法、装置、设备以及存储介质
US20240256408A1 (en) Account management method and apparatus, computer device and storage medium
CN113574837A (zh) 跟踪客户端设备上的图像发送者
CN115600215A (zh) 系统启动方法、系统信息处理方法、装置、设备及其介质
US11768692B2 (en) Systems and methods for automated application launching
US20220078176A1 (en) Method for connecting a computer application to a secure computer resource
CN117194298B (zh) 一种控制方法、装置、设备及存储介质
CN116302314B (zh) 数据处理方法、装置、电子设备以及可读存储介质
CN114861207A (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