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

news2024/11/18 9:26:03

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


在这里插入图片描述

前言

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

Docker的工具实践及root概念和Docker容器安全性设置

  • 1. 工具实践
  • 2. root概念
    • 2.1 背景介绍
    • 2.2 权限设置
    • 2.3 安全性
  • 3. 时间戳的概念
  • 4. Docker容器
    • 4.1 安全性设置
    • 4.2 迁移步骤
    • 4.3 特性

1. 工具实践

在这里插入图片描述

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

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

2. root概念

在这里插入图片描述

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

2.1 背景介绍

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

2.2 权限设置

在这里插入图片描述

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

2.3 安全性

在这里插入图片描述

  不推荐使用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引擎的服务器上(包括流行的Linux机器、windows机器),也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

4.1 安全性设置

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

4.2 迁移步骤

在这里插入图片描述

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

4.3 特性

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


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1066453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vscode刷leetcode使用Cookie登录

1、打开vscode,选择扩展,搜索leetcode,选择第一个,带有中文力扣字样,安装后重启 2、选择这个小球,切换中文版本,切换后,会显示一个打勾 3、选择小球旁边的有箭头的小门&#xff0…

linux 安装 jsoncpp包

报错 CMake Error at CMakeLists.txt:20 (find_package): Could not find a package configuration file provided by “jsoncpp” with any of the following names: jsoncppConfig.cmake jsoncpp-config.cmake 如何安装 jsoncpp sudo aot-get install libjsoncpp-dev

dmesg 崩溃分析

dmesg 查看 segfault 各项含义 [ 7953.241716] test.out[46470]: segfault at 0 ip 00007f8f091db100 sp 00007ffe0ffa31c8 error 6 in libadd.so[7f8f091db0001000] at 引起故障的地址 ip 指令的内存地址 sp 堆栈指针地址, 即栈顶指针 error 是由三个字位组成的,从…

工业品商城软件java和PHP哪个好?

互联网飞速发展的今天,网上商城系统开发已经成为了拓展业务、提升用户体验的必备之选。 MRO工业品电商平台的概念及现状 MRO 工业品是指工厂或企业对其生产和工作设施、设备进行保养、维护、维修,保证其运行所需要的非生产性物料。即Maintenance 维护;…

【新书推荐】当 Python 遇到 ChatGPT —— 自动化办公落地

文章目录 当 Python 遇到 ChatGPT:一种强大的组合1. 文本生成2. 自动翻译3. 对话生成4. 情感分析 新书推荐《Python自动化办公应用大全(ChatGPT版):从零开始教编程小白一键搞定烦琐工作(上下册)》前言内容简…

《DevOps 精要:业务视角》- 读书笔记(一)

DevOps 精要:业务视角(一) 第1章 什么是DevOps1.1 起源1.1.1 敏捷软件开发方法1.1.2 管理基础设施即代码1.1.3 这是必然的 1.2 定义1.3 为什么要实施DevOps?1.3.1 缩短市场响应时间1.3.2 减少技术债务1.3.3 消除脆弱性 1.4 历史起源1.5 常见误…

爬虫:网站三次请求获取频道内容

一、抓包 url aHR0cDovL3d3dy55amZ3LmNuLw从下图中可以看出&#xff0c;打开网页请求了三次&#xff0c;前两次在response中并不返回网页内容。 二、代码模仿第一次请求返回 <html><head><meta http-equiv"Content-Type" content"text/html; …

猜猜 JavaScript 输出:(! + [] + [] + ![]).length

一起猜 最近看到一个很有意思的题&#xff0c;直接来看&#xff0c;下面这段代码的打印结果是什么&#xff1f; console.log((! [] [] ![]).length) 猜猜看&#xff0c;你的答案是什么&#xff0c;打在评论区。 我的答案是 undefined&#xff0c;正如我的英文名 为什么呢&a…

开放式耳机的品牌有哪些?OWS不入耳开放式耳机品牌分享

开放式耳机是一种创新型的音频设备&#xff0c;与传统耳机相比&#xff0c;它有许多独特的优势。首先&#xff0c;开放式耳机不需要堵住耳道&#xff0c;因此长时间佩戴不会对听力造成损害&#xff0c;这是其最显著的优势之一。此外&#xff0c;它不需要深入入耳&#xff0c;因…

优化一对一直播实时美颜SDK性能的实践

在当今数字化社交的时代&#xff0c;直播已经成为人们分享自己生活、才艺和经验的重要方式之一。与此同时&#xff0c;美颜功能也逐渐成为许多直播平台的标配。用户期望通过直播过程中的美颜效果来展现最佳状态&#xff0c;这使得实时直播美颜SDK的性能优化变得尤为重要。本文将…

vite 项目改了node_modules下的代码不生效

解决办法&#xff1a;删除.vite文件&#xff0c;重新跑项目&#xff0c;或者跑项目的时候加上--force

java基础-第4章-面向对象(二)

一、static关键字 静态&#xff08;static&#xff09;可以修饰属性和方法。 称为静态属性&#xff08;类属性&#xff09;、静态方法&#xff08;类方法&#xff09;。 静态成员是全类所有对象共享的成员。 在全类中只有一份&#xff0c;不因创建多个对象而产生多份。 不必创…

使用tailwindcss来构建以及引入外部组件

使用tailwindcss来构建以及引入外部组件 使用tailwindcss来构建以及引入外部组件 前言构建组件 核心思想可行方案不可行方案 可行方案详解 custom css selector Functions & Directivesadd prefixadd scoped不打包 构建demo链接相关issues 前言 我们在日常的开发中&am…

cv2.split函数与cv2.merge函数

split函数用于图像BGR通道的分离 merge函数用于可将分开的图像通道合并到一起 1.split函数的使用 这是原图&#xff0c;我们使用split函数对其三个通道进行分离。 注意&#xff1a;split函数分离通道的顺序是B、G、R。 以下方法是将三个通道的值都设置为与某一个通道相同。…

AI工程化—— 如何让AI在企业多快好省的落地?

文章目录 前言内容简介读者对象专家推荐目录赠书活动 前言 作为计算机科学的一个重要领域&#xff0c;机器学习也是目前人工智能领域非常活跃的分支之一。机器学习通过分析海量数据、总结规律&#xff0c;帮助人们解决众多实际问题。随着机器学习技术的发展&#xff0c;越来越多…

asp.net+mvc+三层架构core企业员工考勤签到系统 mysql办公设备借用管理系统vue

系统中的核心员工是系统管理员&#xff0c;管理员登录后&#xff0c;通过管理员菜单来管理后台系统。主要功能有&#xff1a;管理员&#xff1a;个人中心、员工信息管理、留言板管理、系统管理、签到平台管理、签到信息管理、请假平台管理、办公设备管理、设备申请信息管理、请…

Flutter开发笔记 —— 语音消息功能实现

前言 最近在开发一款即时通讯(IM)的聊天App&#xff0c;在实现语音消息功能模块后&#xff0c;写下该文章以做记录。 注&#xff1a;本文不提供相关图片资源以及IM聊天中具体实现代码&#xff0c;单论语音功能实现思路 需求分析 比起上来直接贴代码&#xff0c;我们先来逐步…

day10_复习_数组_方法

非常重要的: 方法设计(参数,返回值,调用) 数组也重要,但是后续很少用! 是因为后期有更简单的【集合】&#xff0c;重要在于是一种思想&#xff0c;也是一种代码逻辑 关于数组: 声明创建取值,存值遍历面试|算法 --> 排序内存图(堆,栈,引用) 今天 数组工具类:Arrays数组扩容(拷…

Linux服务器报错“No space left on device”如何解决

一、错误的含义&#xff0c;说明在服务器设备上的存储空间已经满了&#xff0c;不能再上传或者新建文件夹或者文件等。 二、确认查看服务器系统的磁盘使用情况是否是真的已经没有剩余空间&#xff0c;复制下面命令在服务器上运行&#xff0c;然后发现如果如下图所示那么表明sda…

Unsafe概述

前言 ​ 如果看过Java并发包里面的源码、或者netty网络通讯相关源码&#xff0c;就会到Unsafe类有一定的了解。这个与其的特性有关。 介绍 ​ **Unsafe是位于sun.misc包下的一个类&#xff0c;主要提供一些用于执行低级别、不安全操作的方法&#xff0c;如直接访问系统内存资…