- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 2
Docker容器安全性解决方案
目 录
TOC \o 1-3 \h \z \u 一、从虚拟化安全到容器安全 3
1、传统虚拟化技术 3
2、容器技术 3
二、Docker容器安全风险分析 7
1、镜像安全风险 7
2、容器虚拟化安全风险 10
3、网络安全风险 13
三、Docker容器安全机制与解决方案 16
1、容器虚拟化安全 16
3、容器网络安全 27
四、总结 30
Docker是目前最具代表性的容器技术之一,对云计算及虚拟化技术产生了颠覆性的影响。本文对Docker容器在应用中可能面临的安全问题和风险进行了研究,并将Docker容器应用环境中的安全机制与相关解决方案分为容器虚拟化安全、容器安全管理、容器网络安全三部分进行分析。
一、从虚拟化安全到容器安全
1、传统虚拟化技术
虚拟化技术是实现硬件基础设施资源的充分利用、合理分配和有效调度的重要技术手段。例如,在基于OpenStack的典型IaaS服务中,云服务提供商可通过搭建设备集群建立资源池,并将服务器、存储和网络等底层资源进行弹性虚拟化提供给租户。
传统虚拟化技术以虚拟机为管理单元,各虚拟机拥有独立的操作系统内核,不共用宿主机的软件系统资源,因此具有良好的隔离性,适用于云计算环境中的多租户场景。
2、容器技术
容器技术可以看作一种轻量级的虚拟化方式,将应用与必要的执行环境打包成容器镜像,使得应用程序可以直接在宿主机(物理机或虚拟机)中相对独立地运行。容器技术在操作系统层进行虚拟化,可在宿主机内核上运行多个虚拟化环境。相比于传统的应用测试与部署,容器的部署无需预先考虑应用的运行环境兼容性问题;相比于传统虚拟机,容器无需独立的操作系统内核就可在宿主机中运行,实现了更高的运行效率与资源利用率。
Docker是目前最具代表性的容器平台之一,它模糊了传统的IaaS和PaaS的边界,具有持续部署与测试、跨云平台支持等优点。在基于Kubernetes等容器编排工具实现的容器云环境中,通过对跨主机集群资源的调度,容器云可提供资源共享与隔离、容器编排与部署、应用支撑等功能。
Docker容器技术以宿主机中的容器为管理单元,但各容器共用宿主机内核资源,分别通过Linux系统的Namespaces和CGroups机制实现资源的隔离与限制。
1、Namespaces
为了保证容器进程之间的资源隔离,避免相互影响和干扰,Linux内核的Namespaces(命名空间)机制提供了UTS、User、Mount、Network、PID、IPC等命名空间实现了主机名、用户权限、文件系统、网络、进程号、进程间通信等六项资源隔离功能。通过调用clone()函数并传入相应的系统调用参数创建容器进程,可实现对应资源内容的隔离,具体情况如表1所示。
表1:Namespaces隔离机制
命名空间
系统调用参数
隔离内容
Linux内核版本
UTS
CLONE_NEWUTS
主机名和域名
2.6.19
IPC
CLONE_NEWIPC
信号量、信息队列和共享内存
2.6.19
PID
CLONE_NEWPID
进程编号
2.6.24
Network
CLONE_NEWNET
网络设备、网络栈、端口等
2.6.29
Mount
CLONE_NEWNS
挂载点(文件系统)
2.4.19
User
CLONE_NEWUSER
用户和用户组
3.8
对于某个进程而言,可通过查看/proc/[PID]/ns文件,获取该进程下的命名空间隔离情况,如图1所示。其中,每一项命名空间都拥有一个编号对其进行唯一标识,如果宿主机中两个进程指向的命名空间编号相同,则表示他们同在一个命名空间之下。
图1:进程命名空间
2、CGroups
CGroups(Control Groups,控制组)机制最早于2006年由Google提出,目前是Linux内核的一种机制,可以实现对任务组(进程组或线程组)使用的物理资源(CPU、内存、I/O等)进行限制和记录,通过多种度量标准为各个容器相对公平地分配资源,以防止资源滥用的情况。
在实际应用中,CGroups会为每个执行任务创建一个钩子,在任务执行的过程中涉及到资源分配使用时,就会触发钩子上的函数并对相应的资源进行检测,从而对资源进行限制和优先级分配。
CGroups提供了资源限制(Resource Limitation)、优先级分配(Prioritization)、资源统计(Accounting)、任务控制(Control)四个功能,包含blkio、cpu、cpuacct、cpuset、devices、freezer、memory、perf_event、net_cls、net_prio、ns、hu
您可能关注的文档
最近下载
- 高中数学基础知识巩固第四章《平面向量与复数》测试.pdf VIP
- (高清版)B-T 17421.1-2023 机床检验通则 第1部分在无负荷或准静态条件下机床的几何精度.pdf VIP
- 施工过程控制程序施过程控制程序.doc VIP
- 2023年兵团“国培计划”及本级培训新入职教师培训简报(第一期).docx VIP
- 部编版五年级语文上册期末测试卷(共五套)【含答案】.pdf VIP
- 百万吨煤炭储运基地运营方案.pptx VIP
- 直播营销:直播营销认知PPT教学课件.pptx VIP
- (完整版)GB50500-2022建设工程工程量清单计价规范.pdf VIP
- 义务教育版(2024)七年级全一册信息科技 第7课 域名解析换编码 教案.docx VIP
- 中医食疗——药食同源.ppt VIP
原创力文档


文档评论(0)