【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解

这篇具有很好参考价值的文章主要介绍了【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解,恒川的日常汇报,docker,容器,运维,云原生,安全架构

前言

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。


📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。
📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看
📘相关专栏C语言初阶、C语言进阶系列等,大家有兴趣的可以看一看
📙Python零基础入门系列,Java入门篇系列正在发展中,喜欢Python、Java的朋友们可以关注一下哦!

1. 工具实践

【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解,恒川的日常汇报,docker,容器,运维,云原生,安全架构

  Docker推出的一个名为Docker Content Trust(DCT)的新功能,它可帮助IT专业人士确保Docker的安全性。DCT使用了一个公共密钥基础设施(PKI)的方法,它提供了两个不同的密钥:一个离线(root)密钥和一个标记(每次入库)密钥,当第一次发布者推出镜像时它可创建和存储客户端。
  此举有助于弥补正在使用恶意容器这一最大的漏洞。DCT还生成了一个时间戳密钥,它可保护系统免受重放攻击,即运行过期的标记内容。这解决了上面提及容器具有不同安全补丁等级的问题。
为了解决针对容器安全性的问题,包括Docker在内的众多公司都为Docker发布了安全基准。这套标准为确保Docker容器的安全性提供了指导。全篇118页的文档囊括了部署Docker容器的84个最佳实践以及一个涉及所有内容的检查清单。
  如果用户决定自行负责确保Docker容器的安全性,但又不知道从何入手,这里提供了一些建议:
  阅读上面提及的Docker安全基准文件。重点关注与如何部署基于容器的应用程序相关的建议和最佳实践。这真的是有助于缓解财务压力,认真考虑大部分因糟糕设计而导致的Docker安全性问题。
考虑特定安全性需求。这将促使选择正确的工具和方法。很多使用容器技术的企业对于他们基于容器的应用程序要么安全措施不足,要么安全措施过足。
  尽可能多地进行测试。容器技术是新技术,因此需要搞清楚哪些是能够发挥作用,哪些是无用的,而要做到这一点的方法就是进行安全性方面的测试,例如渗透测试
  容器安全性的发展趋势可能会与虚拟化安全性一样。虽然安全性从第一台虚拟机部署开始就是一个问题,但是多年以来积累下来的良好安全性实践、架构和工具都证明了其有效性。鉴于此,Docker容器安全性的问题也同样能够得到较好解决

下面讲解一下工具实践内所介绍的内容

2. root概念

【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解,恒川的日常汇报,docker,容器,运维,云原生,安全架构

root,也称为根用户,是Unix(如Solaris、AIX、BSD)和类UNIX系统(如Linux、QNX等),及Android和iOS移动设备系统中的唯一的超级用户,因其可对根目录执行读写和执行操作而得名。其相当于Windows系统中的SYSTEM(XP及以下)/TrustedInstaller(Vista及以上)用户。其具有系统中的最高权限,如启动或停止一个进程,删除或增加用户,增加或者禁用硬件,新建文件、修改文件或删除所有文件等等。

2.1 背景介绍

  现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源,普通用户在所分配到的资源内进行各自的操作,相互之间不受影响。但是这些普通用户的权限是有限制的,且用户太多的话,管理就不便,从而引入root用户,此用户是唯一的,且拥有系统的所有权限。root用户所在的组称为root组。“组”是具有相似权限的多个用户的集合。

2.2 权限设置

【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解,恒川的日常汇报,docker,容器,运维,云原生,安全架构

  root用户是系统中唯一的超级管理员,它具有等同于操作系统的权限。一些需要root权限的应用,譬如广告阻挡,是需要root权限的。可问题在于root比windows的系统管理员的能力更大,足以把整个系统的大部分文件删掉,导致系统完全毁坏,不能再次使用。所以,用root进行不当的操作是相当危险的,轻微的可以死机,严重的甚至不能开机。所以,在Unix、Linux及Android中,除非确实需要,一般情况下都不推荐使用root。最好单独建立一个普通的用户,作为日常之用。

2.3 安全性

【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解,恒川的日常汇报,docker,容器,运维,云原生,安全架构
  不推荐使用root的一个原因则是出于安全的考虑。root具有系统所有的权限,root密码如果泄漏,足以导致整台计算机完全被窃取root密码的人所控制,拥有root密码就意味着拥有了这台计算机上所有用户的所有数据。
  有些任务必须由root才能执行,例如删除系统内置应用程序。但在Unix或Linux系统中又不推荐使用root,这构成了一个矛盾。于是产生了一个sudo的做法,就是在必要时使用su提权,即把系统管理的一部分权限授予普通用户,并且只有在这些用户需要更高权限的时候,才允许这些用户暂时性的使用root命令来管理系统
  在默认情况下root的根目录(/root)是其他用户无权访问的,这在一定程度上增强了整个系统的安全性,但不完全是。Unix、Linux及Android的安全性更在于它的高度可配置性,也就是说,Unix或者Linux的安全性更取决于系统管理员而不是Unix或Linux系统本身。一般的模式是:Unix、Linux和Android提供一种健全的安全机制,由系统管理员根据实际需要制定相应的安全策略,并且部署这些安全策略。“机制”是能做什么不能做什么,“策略”是要做什么不要做什么。而Windows的安全策略和安全机制则比较混乱,windows本身过于依赖安全策略,导致系统管理员在很多时候束手束脚,反而得不偿失。

3. 时间戳的概念

  时间戳是使用数字签名技术产生的数据,签名的对象包括了原始文件信息、签名参数、签名时间等信息。时间戳系统用来产生和管理时间戳,对签名对象进行数字签名产生时间戳,以证明原始文件在签名时间之前已经存在。
  可信时间戳是由联合信任时间戳服务中心签发的一个电子凭证,用于证明电子数据文件自申请可信时间戳后内容保持完整、未被更改。可信时间戳接入核准书的颁发,标志着可信时间戳在档案领域规范化应用已经开始,并将起到电子档案和档案数字化副本内容防篡改、保障档案的法律凭证的作用。根据《电子签名法》有关数据电文原件形式的要求,申请了可信时间戳认证的电子文件、电子档案或纸质档案的数字化副本等可视为法规规定的原件形式。

4. Docker容器

【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解,恒川的日常汇报,docker,容器,运维,云原生,安全架构

Docker 容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上(包括流行的Linux机器、windows机器),也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

4.1 安全性设置

  1. 定期渗透测试,安全审计;
  2. 尽量采用image的正规镜像来源,相对于传统安全,容器安全受质疑很大程度上是在于镜像的维护及升级,因此在镜像源头保证安全和及时更新;
  3. 及时升级容器服务,比如采用rollingupdate的方式对跑服务的容器进行升级等方式

4.2 迁移步骤

【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解,恒川的日常汇报,docker,容器,运维,云原生,安全架构

步骤1:分解
  一般来说,应用程序都是复杂的,它们都有很多的组件。例如,大多数应用程序都需要数据库或中间件服务的支持以实现对数据的存储、检索和集成。所以,需要通过设计和部署把这些服务拆分成为它们自己的容器。如果一个应用程序能够被拆分成为越多的分布式组件,那么应用程序扩展的选择则越多。但是,分布式组件越多也意味着管理的复杂性越高。
步骤2:选择一个基础映像
  当执行应用程序迁移时,应尽量避免推倒重来的做法。搜索Docker注册库找到一个基本的Docker映像并将其作为应用程序的基础来使用
随着时间的推移,企业将会发现这些Docker注册库中基本映像的价值所在。
步骤3:解决安全性和管理问题
  安全性和管理应当是一个高优先级的考虑因素;企业用户不应再把它们当作应用程序迁移至容器的最后一步。反之,企业必须从一开始就做好安全性和管理的规划,把它们的功能纳入应用程序的开发过程中,并在应用程序运行过程中积极主动地关注这些方面。这就是企业应当花大功夫的地方。
步骤4:增加代码
  为了创建映像,企业用户需要使用一个Dockerfile来定义映像开发的必要步骤。一旦创建了映像,企业用户就应将其添加至Docker Hub。
步骤5:配置、测试、部署
  应对在容器中运行的应用程序进行配置,以便于让应用程序知道可以在哪里连接外部资源或者应用程序集群中的其他容器。企业用户可以把这些配置部署在容器中或使用环境变量。
  最后,把容器部署到实际生产环境中。为了积极主动地关注基于容器的应用程序的运行状况,可考虑实施必要的监控和管理机制 。确保打开日志记录功能。

4.3 特性

  Docker容器与其他的容器技术都是大致类似的。但是,Docker在一个单一的容器内捆绑了关键的应用程序组件,这也就让这容器可以在不同平台和云计算之间实现便携性。其结果就是,Docker就成为了需要实现跨多个不同环境运行的应用程序的理想容器技术选择。
  Docker还可以让使用微服务的应用程序得益,所谓微服务就是把应用程序分解成为专门开发的更小服务。 这些服务使用通用的RESTAPI来进行交互。使用完全封装Docker容器的开发人员可以针对采用微服务的应用程序开发出一个更为高效的分发模式。


如果这份博客对大家有帮助,希望各位给恒川一个免费的点赞👍作为鼓励,并评论收藏一下,谢谢大家!!!
制作不易,如果大家有什么疑问或给恒川的意见,欢迎评论区留言。文章来源地址https://www.toymoban.com/news/detail-620365.html

到了这里,关于【Docker】Docker的工具实践及root概念和Docker容器安全性设置的详细讲解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安全实践:保障 Kubernetes 生产环境的安全性

    ▲ 点击上方\\\"DevOps和k8s全栈技术\\\"关注公众号 Kubernetes(简称 K8s)是一个强大的容器编排平台,广泛应用于生产环境中。然而,与其功能强大相对应的是对安全性的高要求。在生产环境中,我们必须采取一系列措施来保护 Kubernetes 集群免受潜在的威胁和攻击。本文将介绍一些关

    2024年02月03日
    浏览(65)
  • Kafka安全性配置最佳实践

    Kafka 在整个大数据生态系统中扮演着核心的角色,对于系统数据的安全性要求相对较高。因此进行 Kafka 安全配置是非常必要的。 通过合理的安全配置,可以有效地保障 Kafka 系统数据的机密性与完整性。这样可以有效地防止信息泄漏与篡改等安全风险。 提高 Kafka 系统的可靠

    2024年02月10日
    浏览(39)
  • Spring Boot 安全性最佳实践

    1.实施 HTTPS HTTPS 在传输过程中对数据进行加密,防止未经授权的各方截获和破译敏感信息。这对于处理用户凭证、金融交易或任何其他机密数据的应用程序尤为重要。因此,安全通信是不容置疑的。您必须使用 HTTPS 来保护传输中的数据。 在应用程序属性中,确保启用 TLS/SS

    2024年04月27日
    浏览(44)
  • Java应用中文件上传安全性分析与安全实践

    ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨  🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一. 文件上传的风险 二. 使用合适的框架和库 1. Spring框架的MultipartFile 2. Apache Commons FileUpload 3. Apache Commons IO 三. 文件上传路径的安全设置

    2024年04月25日
    浏览(48)
  • 什么是前端安全性(front-end security)?列举一些前端安全性的最佳实践

    聚沙成塔·每天进步一点点 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而

    2024年02月05日
    浏览(56)
  • Yarn安全最佳实践:如何保护Yarn仓库的安全性

    作者:禅与计算机程序设计艺术 Yarn 是 Hadoop 的官方子项目之一,它是一个包管理器,可以用来安装、共享、发布 Hadoop 组件(如 MapReduce、Spark、Pig)。通常情况下,用户通过 Yarn 可以直接提交作业到集群上执行,但也存在安全风险。由于 Yarn 没有提供任何身份认证机制,所以

    2024年02月14日
    浏览(33)
  • 软件安全性与隐私保护的最佳实践

    在当今数字化时代,随着软件使用的普及和信息技术的发展,软件安全性和隐私保护越来越成为了IT领域关注的热点问题。在此,本文将探讨软件安全性和隐私保护的最佳实践,以帮助大家更好地保护自己的信息安全。 一、软件安全性最佳实践 漏洞扫描 漏洞扫描是软件安

    2024年02月09日
    浏览(67)
  • Elasticsearch(实践2)链接库产生TLS验证安全性报错

    问题:   File \\\"/home/server/miniconda3/envs/rag/lib/python3.8/site-packages/elastic_transport/_transport.py\\\", line 328, in perform_request     meta, raw_data = node.perform_request(   File \\\"/home/server/miniconda3/envs/rag/lib/python3.8/site-packages/elastic_transport/_node/_http_urllib3.py\\\", line 202, in perform_request     raise err from None elas

    2024年01月18日
    浏览(37)
  • 【容器化应用程序设计和开发】2.5 容器化应用程序的安全性和合规性考虑

    往期回顾: 第一章:【云原生概念和技术】 第二章:2.1 容器化基础知识和Docker容器 第二章:2.2 Dockerfile 的编写和最佳实践 第二章:2.3 容器编排和Kubernetes调度 第二章:2.4 容器网络和存储 容器化应用程序是将应用程序和其依赖项打包到一个独立的、可移植的容器中,以便在

    2024年02月15日
    浏览(52)
  • RC4Drop加密技术:原理、实践与安全性探究

    1.1 加密技术的重要性 加密技术在当今信息社会中扮演着至关重要的角色。通过加密,我们可以保护敏感信息的机密性,防止信息被未经授权的用户访问、窃取或篡改。加密技术还可以确保数据在传输过程中的安全性,有效防止信息泄露和数据被篡改的风险。在网络通信、电

    2024年04月22日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包