“Docker Content Trust + 镜像签名”,打造安全的 Kubernetes 供应链!

简介: Docker EE 通过保护软件供应链来帮助您更安全的交付应用程序。

____2018_03_21

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五 与您不见不散!


早前,我们分享了一篇名为“镜像扫描+基于策略的镜像提升”,打造安全的 Kubernetes 供应链!的文章,它主要介绍了 Docker EE 的镜像扫描和基于策略的镜像提升功能为 Kubernetes 软件供应链提供持续、安全的保护。今天,我将为大家带来打造安全的 Kubernetes 供应链解决方案的另一部分内容 —— Docker Content Trust 和 镜像签名功能。

当 Docker EE 的基于角色的权限访问控制(RBAC)与安全集群功能相结合时,组织就会得到一个安全的容器平台解决方案,该解决方案已经为企业准备好了。


限制未经证实的 Kubernetes 内容

正如在开头讨论的那篇文章所介绍的,组织通常会有一个“供应链”,将应用程序从开发者电脑推送到生产环境中,无论是在本地还是在云端中。对于大型组织来说,处理 QA 和测试的团队并不总是开发应用程序的团队。在将应用程序推送到生产环境之前,可能还会有一个单独的团队来处理分段推送和预生产等工作。由于应用程序在部署前需要经过若干个团队,所以对于组织来说,能否验证应用程序的来源是很重要的一项工作。

Docker Content Trust 是个人和团队向镜像添加私钥加密的一种方式,添加数字签名以确保镜像的来源、出处以及真实性。使用 Docker EE ,通过选择只运行已签名的镜像就可以确保部署的镜像是您所信任的镜像,并保证该镜像没有在镜像仓库中或从镜像仓库迁移到生产环境的过程中发生更改,如下图所示:

screenshot

在 Kubernetes 环境中,这意味着如果所使用的底层镜像没有经过特定团队成员的签名,则 Docker EE 将阻止在此群集上部署任何工作负载。

screenshot

这可以用于在供应链的某一阶段强制镜像签名:当开发人员检查初始镜像时、当 QA 团队完成测试时、当安全和网络团队评估应用程序时等等。如果镜像缺失任何所需的签名,Docker EE 将会阻止该镜像的部署工作。这一功能使得运营团队可以防止将未经授权的内容部署到 Kubernetes 中。


将 Docker Content Trust 集成到自动化工作流中

镜像签名不一定只来自个人或团队,它可以扩展到授权的第三方工具,以表明该镜像构建来自于一个经过验证的工作流。Docker EE 通过赋予您在 Docker EE UI 中创建和管理客户端包的能力,从而简化了这一流程。Docker EE 创建了一个可以让如 Jenkins 或 GitLab 这样的 CI 工具使用的密钥对来对创建和添加到镜像仓库中的镜像进行签名。

screenshot

Docker EE 通过保护软件供应链来帮助您更安全的交付应用程序。无论您需要对哪种类型的应用程序(传统、云原生还是微服务)进行容器化改造、无论您是为 Windows 或是为 Linux 构建应用栈、无论您是在本地或云端部署应用程序,镜像漏洞扫描功能、自动的镜像提升策略以及镜像签名都可以帮助您实现安全、自动化的应用程序交付流程。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3天前
|
消息中间件 Kafka 流计算
docker环境安装kafka/Flink/clickhouse镜像
通过上述步骤和示例,您可以系统地了解如何使用Docker Compose安装和配置Kafka、Flink和ClickHouse,并进行基本的验证操作。希望这些内容对您的学习和工作有所帮助。
50 28
|
16天前
|
网络协议 Linux 网络安全
docker centos镜像 npm安装包时报错“npm ERR! code ECONNRESET”
通过上述步骤,您可以有效解决在 Docker 中使用 CentOS 镜像安装 npm 包时遇到的 "npm ERR! code ECONNRESET" 错误。希望这些方法能帮助您顺利进行 npm 包的安装。
94 26
|
1月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用
88 27
|
1月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用。掌握这些Docker基础概念和操作,可以显著提高开发和部署效率,确保应用程序的可移植性和可扩展性。
74 22
|
1月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
160 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
1月前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
209 11
|
1月前
|
Ubuntu NoSQL 开发工具
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
213 70
|
1月前
|
Ubuntu NoSQL 关系型数据库
《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
127 29
|
2月前
|
存储 Kubernetes Docker
Kubernetes(k8s)和Docker Compose本质区别
理解它们的区别和各自的优势,有助于选择合适的工具来满足特定的项目需求。
232 19
|
2月前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
178 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档