security - 如何处理 docker 容器中的安全更新?

标签 security docker updates

我们希望避免在 dockerfile 中包含“yum update”,因为它可能会根据构建 docker 镜像的时间生成不同的容器,但显然如果需要更新基础系统,这可能会带来一些安全问题。最好的选择真的是拥有一个组织范围的基础系统镜像并进行更新吗?存在的问题是,每次应用安全更新时,都需要在整个组织中重建和部署所有应用程序。

一个对我来说似乎有点过时的替代方法是简单地忽略容器内的安全更新,只担心主机上的它们。这里的思考过程是,攻击者要进入容器,主机上需要有一个漏洞,docker-engine 中有另一个漏洞才能进入容器,然后是另一个漏洞来利用容器中的某些东西。容器,这似乎是一系列难以置信的事件。随着用户命名空间和 seccomp 配置文件的引入,这似乎进一步降低了风险。

无论如何,我如何处理容器内的安全更新,同时对 CI/CD 管道的影响最小,或者理想情况下不必经常重新部署整个基础架构?

最佳答案

您可以通过引入中间更新层来减少构建的不可重复性。

创建一个像这样的图像:

FROM centos:latest
RUN yum update -y

构建图像,标记并推送它。现在,除非您决定更改它们,否则您的构建不会改变。

您可以将其他 Dockerfile 指向 myimage:latest 以在您决定这样做后自动更新,也可以指向特定版本。

我设置 CI 系统的方式是成功(手动)构建带有更新的基础镜像会触发构建依赖它的任何镜像。

报告了安全问题?检查更新的包是否可用或在 Dockerfile 中进行临时修复。触发构建。 不久之后,您将准备好部署所有应用的固定版本。

关于security - 如何处理 docker 容器中的安全更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35756703/

相关文章:

c# - 通过默认成员身份提供程序进行 Web 服务身份验证

mysql - 如果有人偷了数据库的硬盘,没有帐号和密码,他能看到数据吗?

php - 如何在 symfony yml 配置文件中从 docker 获取环境变量

node.js - Docker 无法从 package.json 文件安装依赖项

windows - 通过 CMD 批处理文件卸载 Windows 更新

PHP Hack - 这段代码在做什么?

linux - 以非 root 用户身份启动容器与以 root 用户身份启动然后降级为非 root 用户

docker - gitlab-ci docker-in-docker 访问不安全的注册表

mysql - 如何将关联子查询与外表连接起来?

mongodb - 仅当其他字段与 MongoDB 中的值匹配时,如何更新数组中的字段