出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五 与您不见不散!
早前,我们分享了一篇名为“镜像扫描+基于策略的镜像提升”,打造安全的 Kubernetes 供应链!的文章,它主要介绍了 Docker EE 的镜像扫描和基于策略的镜像提升功能为 Kubernetes 软件供应链提供持续、安全的保护。今天,我将为大家带来打造安全的 Kubernetes 供应链解决方案的另一部分内容 —— Docker Content Trust 和 镜像签名功能。
当 Docker EE 的基于角色的权限访问控制(RBAC)与安全集群功能相结合时,组织就会得到一个安全的容器平台解决方案,该解决方案已经为企业准备好了。
限制未经证实的 Kubernetes 内容
正如在开头讨论的那篇文章所介绍的,组织通常会有一个“供应链”,将应用程序从开发者电脑推送到生产环境中,无论是在本地还是在云端中。对于大型组织来说,处理 QA 和测试的团队并不总是开发应用程序的团队。在将应用程序推送到生产环境之前,可能还会有一个单独的团队来处理分段推送和预生产等工作。由于应用程序在部署前需要经过若干个团队,所以对于组织来说,能否验证应用程序的来源是很重要的一项工作。
Docker Content Trust 是个人和团队向镜像添加私钥加密的一种方式,添加数字签名以确保镜像的来源、出处以及真实性。使用 Docker EE ,通过选择只运行已签名的镜像就可以确保部署的镜像是您所信任的镜像,并保证该镜像没有在镜像仓库中或从镜像仓库迁移到生产环境的过程中发生更改,如下图所示:
在 Kubernetes 环境中,这意味着如果所使用的底层镜像没有经过特定团队成员的签名,则 Docker EE 将阻止在此群集上部署任何工作负载。
这可以用于在供应链的某一阶段强制镜像签名:当开发人员检查初始镜像时、当 QA 团队完成测试时、当安全和网络团队评估应用程序时等等。如果镜像缺失任何所需的签名,Docker EE 将会阻止该镜像的部署工作。这一功能使得运营团队可以防止将未经授权的内容部署到 Kubernetes 中。
将 Docker Content Trust 集成到自动化工作流中
镜像签名不一定只来自个人或团队,它可以扩展到授权的第三方工具,以表明该镜像构建来自于一个经过验证的工作流。Docker EE 通过赋予您在 Docker EE UI 中创建和管理客户端包的能力,从而简化了这一流程。Docker EE 创建了一个可以让如 Jenkins 或 GitLab 这样的 CI 工具使用的密钥对来对创建和添加到镜像仓库中的镜像进行签名。
Docker EE 通过保护软件供应链来帮助您更安全的交付应用程序。无论您需要对哪种类型的应用程序(传统、云原生还是微服务)进行容器化改造、无论您是为 Windows 或是为 Linux 构建应用栈、无论您是在本地或云端部署应用程序,镜像漏洞扫描功能、自动的镜像提升策略以及镜像签名都可以帮助您实现安全、自动化的应用程序交付流程。