版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《Docker容器技术与应用项目教程》高等职业技术教育计算机相关专业目录项目10Docke安全运维管理10.1项目陈述10.2必备知识10.3项目实施【学习目标】•掌握Docker容器、镜像的安全。•掌握Docker自身的漏洞与缺陷。•掌握Docker安全机制。•掌握Docker日志管理方法。项目10Docke安全运维管理在大多数情况下,启动Docker容器时都以root用户权限运行。用户使用root权限可以进行的操作包括访问所有信息、修改任何内容、关闭机器、结束进程,以及安装各种软件等。容器安全性问题的根源在于容器和宿主机共享内核,如果容器中应用导致Linux内核崩溃,那么整个系统就可能会崩溃。这与虚拟机是不同的,虚拟机并没有与主机共享内核,虚拟机崩溃一般不会导致宿主机崩溃。Docker充分利用Linux内核固有的安全性,采用多种手段来降低容器的安全风险,可以说容器在默认情况下非常安全,尤其是在容器中通过非特权用户运行进程时。除了Docker自身的安全性外,还可以使用通用的IT安全技术来加固Docker主机,为Docker增加额的安全层。10.1项目陈述10.2.1Docker存在的安全问题Docker本身是有代码缺陷的,据官方记录,Docker历史版本共有超过20项漏洞,可参见Docker官方网络。黑客常用的攻击手段主有代码执行、权限提升、令牌泄露、权限绕过等。目前Docker版本的更迭非常快,用户最好升级为最新的版本。10.2必备知识1.Docker源代码问题Docker提供了Docker Hub,允许用户上传创建镜像,以便其他用户下载后快速搭建环境,但同时也带来了一些新的安全问题。(1)黑客上传恶意镜像。如果黑客在制作的镜像中植入木马、后门等恶意软件,那么环境从一开始就已经不安全了,后续更没有什么安全性可言。(2)镜像使用有漏洞的软件。DockerHub上能下载的镜像中,75%的镜像都安装了有漏洞的软件。所以下载镜像后,需要检查软件的版本信息,看看对应的版本是否存在漏洞,并及时更新打上补丁。(3)中间人攻击篡改镜像。镜像在传输过程中可能被篡改,目前新版本的Docker已经提供了相应的校验机制来预防这个问题了。2.Docker容器与虚拟机的安全性问题Docker容器与虚拟机的安全性主要从隔离与共享、性能与损耗分别进行介绍。(1)隔离与共享。虚拟机通过添加Hypervisor层,虚拟出网卡、内存、CPU等虚拟硬件,再在其上面建立虚拟机,每个虚拟机都有自己的系统内核,安全性相对较高。而Docker容器则是通过隔离的方式,将文件系统、进程、设备、网络等资源进行隔离,再对权限、CUP资源等进行控制,最终让容器之间互不影响,容器也无法影响宿主机,容器与宿主机共享内核、文件系统、硬件等资源。(2)性能与损耗。与虚拟机相比,容器的资源损耗要少。同样的宿主机下,能够建立容器的数量也是比虚拟机多,但是,虚拟机的安全性比容器稍好,想从虚拟机攻破到宿主机或其他虚拟机,需要先攻破Hypervisor层,这将是极其困难的。而Docker容器与宿主机共享内核,文件系统等资源,更有可能对其他容器、宿主机产生影响。10.2.2Docker架构的缺陷与安全机制Docker本身的架构与机制可能产生安全问题。例如,这样一个攻击场景,黑客已经控制了宿主机上的一些容器,或者获得了通过在公有云上建立容器的方式对宿主机或其他容器发起攻击。10.2必备知识1.Docker架构的缺陷安全问题(1)容器之间的局域网络攻击主机上的容器之间可以构成局域网,因此针对局域网的ARP欺骗、嗅探、广播风暴等攻击方式都有可能遇到。所以在一个主机上部署多个容器需要合理地配置网络,设置iptable规。(2)DDos攻击耗尽资源Cgroups安全机制就是用来防止分布式拒绝服务(DistributedDenialofService,DDos)攻击的,不要为单一的容器分配过多的资源即可避免此类问题产生。(3)有漏洞的系统调用Docker与虚拟机的一个重要区别就是Docker与宿主机共用一个操作系统内核。一旦宿主机内核存在可以越权或者提权的漏洞,尽管Docker使用普通用户身份执行,在容器被入侵时,攻击者仍然可以利用内核漏洞跳到宿主机做更多的事情。(4)共享root用户权限。如果以root用户权限运行容器,容器内的root用户也就拥有了宿主机的root权限,这就存在很大的安全隐患。2.Docker安全机制Docker非常注重安全性,本身具有一套完整而严密的安全机制,还可以通过开启AppArmor、SELinux、GRSEC或其他强化系统来提供额外的安全。(1)内核名称空间。(2)控制组。(3)Docker守护进程本身的受攻击面。(4)Docker内容信任签名验证。(5)其他的内核安全特性。10.2.3Docker容器监控与日志管理在生产环境中往往会有大量的业务软件在容器中运行,因此对容器的监控越来越重要。监制的指标主要是容器本身和容器所在主机的资源使用情况和性能,具体涉及CPU、内存、网络和磁盘。日志管理对保持系统持续稳定地运行以及排查问题至关重要。容器具有数量多、变化快的特性,生命周期往往短暂且不固定,因此记录日志就显得非常必要,尤其是在生产环境中,日志是不可或缺的组成部分。10.2必备知识1.Docker监控工具监制容器最简单的方法是使用Docker自带的监控命令,如dockerps、dockertop和dockerstats等命令,其运行方便、简单,很适合快速了解容器运行状态,只是输出的数据比较有限。要高效率地进行监控,需要使用第三方工具。Google提供的cAdvisor可以用于分析正在运行容器的资源占用情况和性能指标,是具有图形界面、最易于入门的Docker容器监控工具。cAdvisor以守护进程方式运行,负责收集、聚合、处理和输出运行中容器的数据,它可以监测资源隔离参数、历史资源使用情况和网络统计数据。2.容器日志工具dockerlogsDocker自带的dockerlogs命令输出正在运行的容器的日志信息,而dockerservicelogs命令显示服务的所有容器的日志信息,这个命令适用于集群环境,因此这里重点讲解dockerlogs命令。日志信息和格式取决于容器的终端命令。默认情况下,dockerlogs命令的输出类似于终端中交互式运行的输出。UNIX和Linux中的命令在运行时通常会打开3个I/O流,分别为STDIN、STDOUT和STDERR。STDIN是命令的输入流,可能包括来自键盘的输入或来自另一个命令的输入;STDOUT通常是命令的正常输出,而STDOUT通常用于输出错误消息。默认情况下,dockerlogs显示命令的STDOUT和STDERR流。也就是说,Docker捕捉每一个容器进程的STDOUT和STDERR流,并将它们保存在磁盘上,然后用户就能使用dockerlogs命令来进行查询了。3.第三方日志工具dockerlogs命令输出的日志可以用于简单的开发。但是,想在更复杂的环境下使用Docker,或者想要查看更多传统架构的UNIX后台程序的日志,就需要考虑使用第三方日志工具。比较常用的是3个开源的组件Elasticsearch、Logstash和Kibana组成的ELK日志系统。其中Elasticsearch是分布式搜索红警;Logstash可以对日志进行收集和分析,并将其存储下来供后使用;Kibana可以为Elasticsearch和Logstash提供日志分析Web界面,用来汇总、分析和搜索重要的日志数据。在ELK日志系统中,Logstash获取日志Docker的日志,然后将日志转发给Elasticsearch进行索引,Kibana提供日志的分析和可视化。4.容器日志驱动将容器日志发送到STDOUT和STDERR是Docker的默认日志行为。实际上,Docker提供了多种日志机制帮助用户从运行的容器中提取日志信息。这些机制被称为日志驱动(LoggingDriver)。Docker默认的日志驱动是json-file。在启动容器时,可以通过--log-driver选项配置日志驱动,常用的日志驱动选项及其功能说明,如表10.1所示。5.使用dockerlogs命令查看容器日志对于一个运行的容器,Docker会将日志发送到容器的STDOUT和STDERR上,可以将STDOUT和STDERR视为容器的控制台终端。如果容器以前台方式运行,则日志会直接输出到当前的终端窗口中;如果以后台方式运行容器,则不能直接看到输出的日志。对于这种情形,可以使用dockerattach命令连接到后台容器的控制台终端,查看输出的日志。不过这种方法仅用于查看容器日志就没有必要了,因为Docker自带的dockerlogs命令专门用于查看容器的日志,其基本语法格式如下。dockerlogs[选项]容器dockerlogs选项及其功能说明,如表10.2所示。6.查看Docker服务器端的各种事件信息可以使用dockerevents命令查看Docker服务器端的各种事件信息,包括容器、镜像、插件、卷、网络,以及Docker守护进程事件。不同的对象具有不同的事件,以方便调试使用。该命令语法格式如下。dockerevents[选项]dockerevents选项及其功能说明,如表10.3所示。10.3.1容器监控及其配置10.3.2配置和管理Docker守护进程10.3项目实施本项目包含五个任务。任务10.1Docker存在的安全问题,主要讲解了Docker源代码问题、Docker容器与虚拟机的安全性问题。任务10.2Docker架构的缺陷与安全机制,主要讲解了Docker架构的缺陷安全问题、Docker安全机制。任务10.3Docker容器监控与日志管理,主要讲解了Docker监控工具、容器日志工具dockerlogs、第三方日志工具、容器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广东省阳春市高一数学上册期末考试模拟测试卷及答案参考
- 2026年山东省青州市高一数学上册期末考试模拟检测卷附完整答案【考点梳理】
- 2026年江西省樟树市高一数学上册期末考试模拟卷含完整答案(各地真题)
- 2026年广东省吴川市高一数学上册期末考试模拟试卷附答案(基础题)
- 2026年福建省南安市高一数学上册期末考试模拟卷含答案【新】
- 2026年山东省章丘市高一数学上册期末考试模拟试卷含答案【巩固】
- 2026年湖北省武穴市高一数学上册期末考试模拟测试卷(达标题)附答案
- 2026年吉林省集安市高一数学上册期末考试模拟卷重点附答案
- 2026年河北省武安市高一数学上册期末考试模拟考试卷【培优】附答案
- 2026年黑龙江省穆棱市高一数学上册期末考试模拟测试卷含答案【达标题】
- T/CADP 10-2023系留无人机系统灭火装备通用规范
- 苏州苏州工业园区部分单位招聘51人笔试历年参考题库附带答案详解
- DB44∕T 483-2008 四大家鱼养殖技术规范
- 空中旅游安全飞行体验免责声明
- 《中式烹调师》培训教学大纲及教学计划
- 筑炉施工方案
- DB34T 4627-2023 人民防空工程防护质量检测技术规程
- 新人教版数学四年级下册全册课本练习题可编辑可打印
- 心电监护仪的使用课件
- 第24届世界奥林匹克数学竞赛WMO省级测评三年级试卷【含答案】
- 中石化年度检修计划书
评论
0/150
提交评论