写点什么

在生产环境中安全地运行 Docker 容器

  • 2016-12-29
  • 本文字数:1118 字

    阅读完需:约 4 分钟

在生产环境中,强化 Docker 容器的一种方法就是使它们不可变,也就是只读。安全地运行容器的其他方法还包括最小化受攻击面和应用 Linux 安全过程,标准 Linux 安全过程和针对容器环境的特定过程都要应用。

在启动容器时传入–read-only 标记就可以在只读模式下运行它。这可以防止任何进程写入文件系统。任何试图写入的动作都会导致错误。运行这种不可变的基础设施也与其他软件部署流水线的最佳实践相吻合。

尽管不可变性可以阻止任何恶意脚本的执行,可以禁止通过在容器里运行的其他软件暴露出来的漏洞而引起的改动。但是在现实生产环境中,这种模式又是不是适用于应用程序呢?比如,要产生的日志文件和要使用数据库的应用程序就需要可写性。

写日志的一个可能的解决方案可以是使用一个集中的日志系统,比如 Elasticsearch/Logstash/Kibana(ELK),这样所有的日志都被收集在一个中心节点,可能是在另一个容器中,就不是用户可以直接访问的了。另一种替代的方案是在启动容器时,通过使用–log-driver 标记将日志导出到容器之外。对于那些需要对 /tmp 之类的临时目录有写入权限的应用程序,一种解决办法是在容器里为这些目录加载一个临时的文件系统

终端用户不能直接访问数据库,所以风险较低。然而,这并不排除受到攻击的可能,除非面对用户的应用程序得到了强化。

在不可避免地要有一个可写的文件系统的情况下,Docker 提供了审计和变化的回滚功能。在 Docker 容器里的文件系统是作为一系列层的堆叠。当创建一个新容器时,将在顶部添加一个新层,该层可以写入。Docker 存储驱动程序隐藏了这些细节,并将它作为一个普通的文件系统交付给用户。对正在运行的容器的写入将写入此新层。这通常被称为写时拷贝(Copy-On-Write,COW)。

在 Docker 容器里很容易检测到配置漂移或预期的配置变更。“docker diff”命令可以显示对文件系统的更改——无论更改操作是文件添加、删除还是修改。

除了在可能的情况下运行一个只读容器,我们提出以下建议,以确保在生产环境中容器的安全:

  • 运行一个 Alpine Linux 之类的最小的镜像,Alpine Linux 是基于安全思想而设计的。它的内核上打了一个 grsecurity 的非官方移植的补丁。 Grsecurity 是一套对 Linux 内核的安全增强方法,它包括权限控制以及消除基于漏洞的内存崩溃的可能,具体方法是将那些使系统可能被攻击的方法减少到最少。
  • 限制对 CPU、RAM 等资源的使用,以防止 DoS 攻击。
  • 在操作系统中配置线程和进程限制。
  • 采用 sysctl 之类标准的 Linux 内核强化程序。
  • 每个容器中只运行一个应用程序。建议这么做,是因为它减小了受攻击面,即对于一个给定的容器,可能的漏洞数量就只取决于在该容器上运行的应用程序了。

阅读英文原文 Running Docker Containers Securely in Production

2016-12-29 18:002611
用户头像

发布了 152 篇内容, 共 70.6 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

担心异构数据库迁移踩“坑”?听听大咖们怎么说

YashanDB

yashandb 崖山数据库 崖山DB

领域驱动设计:问卷schema的原理

XIAOJUSURVEY

schema 领域驱动 问卷模型 领域模型 UIschema

豆包,大模型的磁力三重奏

脑极体

AI

Downie 4 v4.7.24最新中文版下载 永久使用 支持M1.M2.M3芯片安装

Rose

Downie 4许可证 Mac视频下载器 Downie 4下载 Downie 4使用教程

微软Azure遭遇DDoS攻击,全球云服务再次敲响警钟!

网络安全服务

微软 azure 云服务 DDoS DDoS 攻击

GraphPad Prism科技绘图与数据分析

Rose

GraphPad Prism破解版 科学绘图和统计分析 GraphPad Prism下载

flowjo 10 for mac流式细胞分析 详细安装破解教程 支持m1/m2/intel

Rose

流式细胞分析软件 FlowJo 10破解版 FlowJo Mac版 FlowJo 安装教程

最高可管理 10K 实例的 InstanceSet 是什么?

小猿姐

数据库 Kubernetes 云原生

PDF解析,还能做得更好

合合技术团队

PDF 大模型 文档解析

职场<火焰杯>测试开发大赛证书已开放下载!

测试人

软件测试

windows11系统,Win11,windows11下载,ARM版Win11镜像

理理

Windows11 Windows系统下载 ARM版Win11镜像 Windows系统安装

IPQ9574 vs. IPQ6010 in Smart Manufacturing: Which Chipset Leads the Way?

wallyslilly

ipq9554 ipq9574

IntelliJ IDEA 2019 mac破解版 含IDEA 2019永久密钥 附IDEA 2019中文版设置教程

Rose

IntelliJ IDEA 2019 IntelliJ IDEA 2019密钥 编程软件 IDEA 2019

什么情况下你能接受 996

王中阳Go

Go 工作 面经

LED异型显示屏:创新设计与市场需求的完美融合

Dylan

设计 应用 LED LED显示屏 市场

科学文献管理软件EndNote 21功能介绍 含(EndNote 21激活码)

Rose

文献管理工具 EndNote 21下载 EndNote 21破解版 EndNote 21授权码

品牌与分类:解析京东商品详情API中的品牌与分类信息

技术冰糖葫芦

API 安全 API 文档 API 测试 API 优先

ChemDraw可以绘制哪些物质?ChemDraw破解补丁版下载安装 Mac/win

Rose

ChemDraw破解版 ChemDraw化学绘图 ChemDraw下载安装

视角 | 麻省理工学院提出出温度计校准法,专治AI大模型过度自信

硅纪元

职场<火焰杯>测试开发大赛证书已开放下载!

霍格沃兹测试开发学社

链路级资损防控之资损字段防控实践|得物技术

得物技术

最佳实践 测试 资损防控 企业号2024年7月PK榜

在元宇宙与实体办公室之间,您更倾向于哪一种工作方式?

dappweb

喜加一!望繁信科技再摘「2023年度新锐技术品牌奖」

望繁信科技

流程挖掘 流程资产 流程智能 数字北极星 望繁信科技

Magnet for mac v2.12.0中文免激活版 支持多种不同方式的窗口布局模式

Rose

Magnet破解版 Magnet Mac下载 苹果电脑分屏软件 macOS窗口管理

如何定量分析 Llama 3,大模型系统工程师视角的 Transformer 架构

百度Geek说

大模型 Llama3

Microsoft PowerPoint 2019 for Mac永久使用版 支持Inte.m1.m2.m3安装

Rose

PowerPoint 2019 ppt2019下载 PowerPoint 2019 破解

BetterTouchTool for mac触摸板增强神器下载 bettertouchtool破解版详细使用教程

Rose

BetterTouchTool破解 BetterTouchTool教程 Mac触控板增强工具

Riot Platforms 报告称,由于比特币挖矿量下降,损失了 8440 万美元

dappweb

Mac远程连接软件 microsoft remote desktop苹果汉化版

理理

远程桌面连接 microsoft remote desktop 微软远程软件mac版

如何在苹果mac电脑畅玩原神游戏?playcover for mac你一定不要错过了

理理

原神 Mac软件 playcover iOS软件

告别手动错误,NineData自动化平台保障数据库变更零失误

NineData

数据库 dba NineData 变更一致性 多环境结构

在生产环境中安全地运行Docker容器_Linux_Hrishikesh Barua_InfoQ精选文章