【技术实现步骤摘要】
一种基于加密机的容器镜像加密管理方法
本专利技术涉及一种加密技术,特别涉及一种基于加密机的容器镜像加密管理方法。
技术介绍
镜像是一种特殊的文件系统,它运行于容器之上,可以提供容器所需要的程序,库,资源等配置文件。随着私有仓库技术的普及,越来越多的企业都开始搭建自己的私有仓库。企业应用以镜像作为存储载体,通过容器运行对外提供服务。一旦黑客通过漏洞进入企业管理系统,破坏镜像进而扰乱企业对外服务,将对企业运营造成不可挽回的损失。因此,企业需要保证镜像安全。本专利针对的场景为企业不同节点和服务器镜像仓库间均有交互。镜像的使用权限隶属于各节点,只有对该节点上传的镜像有管理及使用权限。因此,为保证镜像使用安全,需要对镜像进行加密存储管理。目前Kubernetes社区支持NodeKeyModel镜像加密方法。将密钥放在Kubernetes工作节点指定路径下,对镜像使用公钥加密,并上传到镜像仓库。使用镜像时通过Kubelet调用containerruntime拉取加密镜像,利用私钥对该镜像进行解密后使用。Kubernetes社区支持的NodeKeyModel方案,无法实现一户一密的机制。即当不同用管理员登陆到在worker节点下时,都可对加密镜像进行操作,这对于镜像安全来说是非常不利的,我们应保证加密镜像只有特定的管理员才能进行操作。并且将密钥存储于worker节点,一旦节点被攻击,将导致密钥泄漏,镜像安全受到威胁。
技术实现思路
本专利技术涉及一种基于加密机的容器镜像加密管理方法,用于解决上述 ...
【技术保护点】
1.一种基于加密机的容器镜像加密管理方法,其特征在于,包括:/n生成未经加密的镜像,调用加密机接口,将镜像数据发送至加密机,在加密机内部对镜像数据进行对称加密,加密后,将数据返回服务器后存入外存当中,加密后,加入标识,以便区分镜像是否加过密,在加密后新增标签,并在该标签下新增字段记录加密机ID;/n将加密后的镜像推送至远端仓库存储;/n将加密后的镜像从仓库下拉至本地;/n创建一个容器并加载镜像,对镜像进行判断,加载镜像是否需要解密;/n首先检查OCI镜像文件中各个镜像层的字段是否有加密标识,如果没有标识,则表明镜像层没有经过加密,将直接运行,如有标识,镜像层为加密状态,需要对其进行解密,docker将请求加密机接口判断OCI镜像文件中的ID是否与加密机接口提供的加密机ID是否一致,比对结果一致,表明当前加密机和加密镜像层的加密机是同一台加密机,可对其进行解密操作;比对结果不一致,说明当前加密机与给镜像加密的加密机不是同一个加密机,无法对该镜像进行解密。/n
【技术特征摘要】
1.一种基于加密机的容器镜像加密管理方法,其特征在于,包括:
生成未经加密的镜像,调用加密机接口,将镜像数据发送至加密机,在加密机内部对镜像数据进行对称加密,加密后,将数据返回服务器后存入外存当中,加密后,加入标识,以便区分镜像是否加过密,在加密后新增标签,并在该标签下新增字段记录加密机ID;
将加密后的镜像推送至远端仓库存储;
将加密后的镜像从仓库下拉至本地;
创建一个容器并加载镜像,对镜像进行判断,加载镜像是否需要解密;
首先检查OCI镜像文件中各个镜像层的字段是否有加密标识,如果没有标识,则表明镜像层没有经过加密,将直接运行,如有标识,镜像层为加密状态,需要对其进行解密,docker将请求加密机接口判断OCI镜像文件中的ID是否与加密机接口提供的加密机ID是否一致,比对结果一致,表明当前加密机和加密镜像层的加密机是同一台加密机,可对其进行解密操作;比对结果不一致,说明当前加密机与给镜像加密的加密机不是同一个加密机,无法对该镜像进行解密。
2.如权利要求1所述的基于加密机的容器镜像加密管理方法,其特征在于,基于docker容器管理引擎,加密的镜像是基于OCI格式的镜像文件。
3.如权利要求1所述的基于加密机的容器镜像加密管理方法,其特征在于,将加密与解密算法集成在docker命令中,采用SM1国密算法对镜像分层加密,通过在dockerbuild命令后增加--encrypt参数向加密机发送加密指令。
4.如权利要求1所述的基于加密机的容器镜像加密管理方法,其特征在于,解密算法集成于dockerrun命令中,在容器实例化之前先对镜像是否经过加密进行检验。
5.如权利要求1所述的基于加密机的容器镜像加密管理方法,其特征在于,开启docker服务时,需要加载加密机配置,包括加密机IP及端口号,以便程序可以访问到将加密机,配置写在/etc/docker/daemon.json文件中,修改前daemon.json中字段为"registry-mirrors",在原有字段下方添加的字段"secureMachineIP","secureMachinePort",加密后的,在镜像的index.json文件中,将修改"mediaType"字段,layer下新增"annotations"标签。
6.如权利要求1所述的基于加密机的容器镜像加密管理方法,其特征在于,通过dockerbuild命令生成image镜像,调用dockerbuild命令时,在命令后加入参数--encrypt,docker程序编译该镜像时执行加密编译,否则编译不对镜像进行加密,首先生成未经加密的镜像,再调用加密机接口,将镜像数据发送至加密机,在加密机内部通过SM...
【专利技术属性】
技术研发人员:晋晨,黄亚杰,马俊杰,瞿秋薏,苏帅,苏玉娇,姜瀚,刘韡,
申请(专利权)人:航天科工网络信息发展有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。