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

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

作者简介: 辭七七,目前大二,正在学习C/C++,Java,Python等
作者主页: 七七的个人主页
文章收录专栏: 七七的闲谈
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖


【Docker】Docker的工具实践及root概念,时间戳的概念和Docker容器安全性设置的详细讲解,七七的闲谈,docker,容器,运维,网络,云原生

前言

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

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容器的开发人员可以针对采用微服务的应用程序开发出一个更为高效的分发模式。


关于【Docker】Docker的工具实践及root概念,时间戳的概念和Docker容器安全性设置的详解,七七就先分享到这里了,如果你认为这篇文章对你有帮助,请给七七点个赞吧,如果发现什么问题,欢迎评论区留言!!💕💕文章来源地址https://www.toymoban.com/news/detail-713000.html

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

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

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

相关文章

  • 【Docker】Docker安全性与安全实践(五)

    前言: Docker安全性的作用和意义在于确保容器化应用程序和镜像的隔离性、保护数据和系统资源、防止恶意攻击,以及提高应用的整体安全性。 Docker是一种流行的容器化技术,它可以帮助开发者将应用程序和其依赖项打包到一个独立的容器中,以便在不同环境中进行部署和

    2024年02月15日
    浏览(33)
  • Docker使用root用户进入容器

    -u 0 使用该 -u 选项时,您可以使用 root 用户( ID = 0 )而不是提供的默认用户登录Docker容器. root(id = 0)是容器中的默认用户。图像开发人员可以创建其他用户。这些用户可以通过名称访问。传递数字ID时,用户不必在容器中。

    2024年02月12日
    浏览(29)
  • C++时间和时间戳的转换

    编译运行结果 结果如下: patten@patten-hp:~/workspace/xjCollide$ g++ timestamp.cpp -std=c++11 patten@patten-hp:~/workspace/xjCollide$ ./a.out 1549133300: 2019-02-03 02:48:20 patten@patten-hp:~/workspace/xjCollide$ 编译运行结果 结果如下: patten@patten-hp:~/workspace/others/cpp/demo$ g++ -g -std=c++11 main.cpp patten@patten-hp:~/workspace

    2024年02月06日
    浏览(40)
  • Docker容器与宿主机日期时间同步(日期同步、时间同步、容器时间、容器日期、docker时间、docker日期)/etc/localtime:ro、/etc/timezone:ro

    Docker容器的默认时区取决于使用的基础镜像。许多常见的基础镜像(例如Debian,Ubuntu等)的默认时区通常是UTC(协调世界时)。这意味着如果没有在创建或运行Docker容器时显式设置一个特定的时区,那么容器内部的时间将按照UTC来显示。 /etc/timezone : 这个文件包含了当前设置

    2024年02月05日
    浏览(33)
  • Linux下 时间戳的转化

    Linux下一般用date 记录当前时间,尤其是我们需要保存测试log的时候,或者设计一个跑多长时间的脚本都需要时间戳。下面看一下平时最常用的几种写法 1 date “+%Y-%m-%d %H:%M” 显示具体时间 2 修改时间 date -s 3 date +%s :当前时间的时间戳 显示具体时间的时间戳 date -d “2021-08-29

    2024年02月13日
    浏览(29)
  • 使用php 获取时间今天、明天、昨天时间戳的详解

    使用php获取时间今、明天、昨天时间戳 本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数),其值相对于 now  参数给出的时间,如果没有提供此参数则用系统当前时间。 ----------------------------------------------

    2024年02月09日
    浏览(47)
  • PHP实现获取毫秒时间戳的方法

    PHP获取毫秒时间戳,利用microtime()函数 php本身没有提供返回毫秒数的函数,但提供了一个microtime()函数,借助此函数,可以很容易定义一个返回毫秒数的函数。 php的毫秒是没有默认函数的,但提供了一个microtime()函数,该函数返回包含两个元素,一个是秒数,一个是小数表示

    2024年02月15日
    浏览(34)
  • jenkins 日志输出显示时间戳的方式

    网上很多方式比较片面,最新版插件直接使用即可无需更多操作。 使用方式如下: 系统设置-找到 Timestamper 勾选 Enabled for all Pipeline builds 也可修改时间戳格式。 帮助信息中显示 When checked, timestamps will be enabled for all Pipeline builds. There is no need to use the timestamps {…} step in Scripte

    2024年02月11日
    浏览(50)
  • Python中获取时间戳的几种方法

    时间戳是指从某个特定的时间点(通常是1970年1月1日00:00:00 UTC)到现在的总秒数。在Python中,我们可以使用多种方法获取时间戳。本文将介绍三种常用方法:使用time模块、使用datetime模块和使用dateutil模块。同时,还会对比它们的优缺点,并介绍其他获取时间戳的方法以及如

    2024年02月08日
    浏览(47)
  • 【Maven】-- 打包添加时间戳的两种方法

          在执行  mvn clean package -Dmaven.test.skip=true 后,生成的 jar 包带有自定义系统时间。     使用系统时间戳,但有一个问题,就是默认使用 UTC+0 的时区。举例:当前时北京时间,而使用该方法时,生成的时间是 0时区的时间,而不是 UTC+8  的北京时间。      pom.xml 配置如下

    2024年01月24日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包