搜索
首页运维Dockerdocker安全特性有哪些

docker安全特性有哪些

Jan 28, 2022 pm 03:21 PM
docker

docker安全特性有:1、加密节点ID;2、基于TLS的认证机制;3、安全准入令牌;4、支持周期性证书自动更新的CA配置;5、加密集群存储;6、加密网络;7、Docker安全扫描;8、Docker内容信任;9、Docker密钥等等。

docker安全特性有哪些

本教程操作环境:linux5.9.8系统、docker-1.13.1版、Dell G3电脑。

Docker 平台还引入了大量自有安全技术。Swarm 模式基于 TLS 构建,并且配置上极其简单灵活。安全扫描对镜像进行二进制源码级别扫描,并提供已知缺陷的详细报告。

Docker 内容信任允许用户对内容进行签名和认证,密钥目前也是 Docker 中的一等公民。Docker 为这些安全技术设定了合理的默认值,但是用户也可以自行修改配置,或者禁用这些安全技术。

Swarm 模式

Swarm 模式是 Docker 未来的趋势。Swarm 模式支持用户集群化管理多个 Docker 主机,同时还能通过声明式的方式部署应用。

每个 Swarm 都由管理者和工作者节点构成,节点可以是 Linux 或者 Windows。管理者节点构成了集群中的控制层,并负责集群配置以及工作负载的分配。工作者节点就是运行应用代码的容器。

正如所预期的,Swarm 模式包括很多开箱即用的安全特性,同时还设置了合理的默认值。这些安全特性包括以下几点。

  • 加密节点 ID。

  • 基于 TLS 的认证机制。

  • 安全准入令牌。

  • 支持周期性证书自动更新的 CA 配置。

  • 加密集群存储(配置 DB)。

  • 加密网络。

Docker 安全扫描

快速发现代码缺陷的能力至关重要。Docker 安全扫描功能使得对 Docker 镜像中已知缺陷的检测工作变得简单。

Docker 安全扫描已经可以用于 Docker Hub 上私有仓库的镜像了。同时该技术还可以作为 Docker 可信服务本地化部署解决方案的一部分。最后,所有官方 Docker 镜像都经过了安全扫描,扫描报告在其仓库中可以查阅。

Docker 安全扫描对 Docker 镜像进行二进制代码级别的扫描,对其中的软件根据已知缺陷数据库(CVE 数据库)进行检查。在扫描执行完成后,会生成一份详细报告。

打开浏览器访问 Docker Hub,并搜索 Alpine 仓库。下图展示了官方 Alpine 仓库的 Tags 标签页。

1.gif

Alpine 仓库是官方仓库,这意味着该仓库会自动扫描并生成对应报告。可以看到,镜像标签为 edge、lates 以及 3.6 的镜像都通过了已知缺陷的检查。但是 alpine:3.5 镜像存在已知缺陷(标红)。

如果打开 alpine:3.5 镜像,可以发现如下图所示的详细信息。

2.gif

这是发现自己软件中已知缺陷详情的一种简单方式。

Docker 可信镜像仓库服务(Docker Trusted Registry, DTR),属于 Docker 企业版中本地化镜像仓库服务的一部分内容,提供了相同的 Capability,同时还允许用户自行控制其镜像扫描时机以及扫描方式。

例如,DTR 允许用户选择镜像是在推送时自动触发扫描,还是只能手工触发。同时 DTR 还允许用户手动更新 CVE 数据库,这对于 DTL 无法进行联网来自动更新 CVE 数据的场景来说,是一种理想的解决方案。

这就是 Docker 安全扫描,一种深入检测 Docker 镜像是否存在已知安全缺陷的好方式。当然,能力越大责任越大,当用户发现缺陷后,就需要承担解决相应缺陷的责任了。

Docker 内容信任

Dockr 内容信任(Docker Content Trust,DCT)使得用户很容易就能确认所下载镜像的完整性以及其发布者。在不可信任的网络环境中下载镜像时,这一点很重要。

从更高层面来看,DCT 允许开发者对发布到 Docker Hub 或者 Docker 可信服务的镜像进行签名。当这些镜像被拉取的时候,会自动确认签名状态。下图展示了这一过程。

3.gif

DCT 还可以提供关键上下文,如镜像是否已被签名从而可用于生产环境,镜像是否被新版本取代而过时等。

DTC 提供的上下文还在初期,配置起来相当复杂。在 Docker 主机上启用 DCT 功能,所要做的只是在环境中将 DOCKER_CONTENT_TRUST 变量设置为 1。

$ export DOCKER_CONTENT_TRUST=1

在实际环境中,用户可能希望在系统中默认开启该特性。

如果使用 Docker 统一配置层(Docker 企业版的一部分),需要勾选下图所示 Run Only Signed Images 复选项。这样会强制所有在 UCP 集群中的节点只运行已签名镜像。

4.gif

由上图中可知,UCP 在 DCT 的基础上进行进一步封装,提供了已签名镜像的安全首选项信息。例如,用户可能有这样的需求:在生产环境中只能使用由 secops 签名的镜像。

一旦 DCT 功能开启,就不能获取并使用未签名镜像了。下图展示了开启 DCT 之后,如果再次尝试通过 Docker CLI 或者 UCP Web UI 界面拉取未签名镜像时所报的错误(两个示例都尝试拉取标签为“unsigned”的镜像)。

5.gif

下图展示了 DCT 是如何阻止 Docker 客户端拉取一个被篡改的镜像的。

6.gif

下图展示了 DCT 如何阻止客户端拉取旧镜像。

7.gif

Docker 内容信任是一种很重要的技术,能帮助用户检查从 Docker 服务中拉取的镜像。该技术的基础模式配置起来非常简单,但是类似上下文等一些高级特性,现阶段配置起来还是非常复杂的。

Docker 密钥

很多应用都需要密钥。比如密码、TLS 证书、SSH key 等。

在 Docker1.13 版本之前,没有一种标准且安全的方式能让密钥在应用间实现共享。常见的方式是开发人员将密钥以文本的方式写入环境变量。这与理想状态差距甚远。

Docker1.13 引入了 Docker 密钥,将密钥变成 Docker 生态系统中的一等公民。例如,增加了一个新的子命令 docker secret 来管理密钥。在 Docker 的 UCP 界面中,也有专门的地方来创建和管理密钥。

在后台,密钥在创建后以及传输中都是加密的,使用时被挂载到内存文件系统,并且只对那些已经被授权了的服务开放访问。这确实是一种综合性的端到端解决方案。

下图展示了其总体流程。

8.gif

下面依次介绍上图中所示工作流的每一步。

1) 密钥被创建,并且发送到 Swarm。

2) 密钥存放在集群存储当中,并且是加密的(每个管理者节点都能访问集群存储)。

3) B 服务被创建,并且使用了该密钥。

4) 密钥传输到 B 服务的任务节点(容器)的过程是加密的。

5) B 服务的容器将密钥解密并挂载到路径 /run/secrets 下。这是一个临时的内存文件系统(在 Windows Docker 中该步骤有所不同,因为 Windows 中没有内存文件系统这个概念)。

6) 一旦容器(服务任务)完成,内存文件系统关闭,密钥也随之删除。

7) A 服务中的容器不能访问该密钥。

用户可以通过 docker secret 子命令来管理密钥,可以通过在运行 docker service create 命令时附加 --secret,从而为某个服务指定密钥。

推荐学习:《docker视频教程

以上是docker安全特性有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Linux上的Docker:Linux系统的容器化Linux上的Docker:Linux系统的容器化Apr 22, 2025 am 12:03 AM

Docker在Linux上重要,因为Linux是其原生平台,提供了丰富的工具和社区支持。1.安装Docker:使用sudoapt-getupdate和sudoapt-getinstalldocker-cedocker-ce-clicontainerd.io。2.创建和管理容器:使用dockerrun命令,如dockerrun-d--namemynginx-p80:80nginx。3.编写Dockerfile:优化镜像大小,使用多阶段构建。4.优化和调试:使用dockerlogs和dockerex

Docker:容器化工具,Kubernetes:编排者Docker:容器化工具,Kubernetes:编排者Apr 21, 2025 am 12:01 AM

Docker是容器化工具,Kubernetes是容器编排工具。1.Docker打包应用及其依赖成容器,可在任何支持Docker的环境中运行。2.Kubernetes管理这些容器,实现自动化部署、扩展和管理,使应用高效运行。

Docker的目的:简化应用程序部署Docker的目的:简化应用程序部署Apr 20, 2025 am 12:09 AM

Docker的目的是简化应用部署,通过容器化技术确保应用在不同环境中一致运行。1)Docker通过将应用和依赖打包到容器中,解决了环境差异问题。2)使用Dockerfile创建镜像,确保应用在任何地方一致运行。3)Docker的工作原理基于镜像和容器,利用Linux内核的命名空间和控制组实现隔离和资源管理。4)基本用法包括从DockerHub拉取并运行镜像,高级用法涉及使用DockerCompose管理多容器应用。5)常见错误如镜像构建失败和容器无法启动,可通过日志和网络配置调试。6)性能优化建

Linux和Docker:不同Linux发行版的DockerLinux和Docker:不同Linux发行版的DockerApr 19, 2025 am 12:10 AM

在Ubuntu、CentOS和Debian上安装和使用Docker的方法各有不同。1)Ubuntu:使用apt包管理器,命令为sudoapt-getupdate&&sudoapt-getinstalldocker.io。2)CentOS:使用yum包管理器,需添加Docker仓库,命令为sudoyuminstall-yyum-utils&&sudoyum-config-manager--add-repohttps://download.docker.com/lin

掌握Docker:Linux用户指南掌握Docker:Linux用户指南Apr 18, 2025 am 12:08 AM

在Linux上使用Docker可以提高开发效率和简化应用部署。1)拉取Ubuntu镜像:dockerpullubuntu。2)运行Ubuntu容器:dockerrun-itubuntu/bin/bash。3)创建包含nginx的Dockerfile:FROMubuntu;RUNapt-getupdate&&apt-getinstall-ynginx;EXPOSE80。4)构建镜像:dockerbuild-tmy-nginx.。5)运行容器:dockerrun-d-p8080:80

Linux上的Docker:应用和用例Linux上的Docker:应用和用例Apr 17, 2025 am 12:10 AM

Docker在Linux上可以简化应用部署和管理。1)Docker是容器化平台,将应用及其依赖打包进轻量、可移植容器。2)在Linux上,Docker利用cgroups和namespaces实现容器隔离和资源管理。3)基本用法包括拉取镜像和运行容器,高级用法如DockerCompose可定义多容器应用。4)调试常用dockerlogs和dockerexec命令。5)性能优化可通过多阶段构建减小镜像大小,保持Dockerfile简洁是最佳实践。

Docker:用于可移植性和可扩展性的容器化应用程序Docker:用于可移植性和可扩展性的容器化应用程序Apr 16, 2025 am 12:09 AM

Docker是一种基于Linux容器技术的工具,用于打包、分发和运行应用,提升应用的可移植性和可扩展性。1)通过dockerbuild和dockerrun命令,可以构建和运行Docker容器。2)DockerCompose用于定义和运行多容器的Docker应用,简化微服务管理。3)使用多阶段构建可以优化镜像大小,提升应用启动速度。4)查看容器日志是调试容器问题的有效方法。

docker怎么启动容器docker怎么启动容器Apr 15, 2025 pm 12:27 PM

Docker 容器启动步骤:拉取容器镜像:运行 "docker pull [镜像名称]"。创建容器:使用 "docker create [选项] [镜像名称] [命令和参数]"。启动容器:执行 "docker start [容器名称或 ID]"。检查容器状态:通过 "docker ps" 验证容器是否正在运行。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具