标准答案
- 应用只需要特定能力时应按最小权限授予并去除不需要的默认 capability。
- privileged 会显著扩大容器与宿主机的交互边界,不能作为普通权限错误的默认修复。
- 只读根文件系统需要把临时写入、缓存和运行时 socket 映射到明确的可写目录或 tmpfs。
- 安全配置要在真实工作流中验证启动、升级、日志、调试和恢复,避免为了方便整体放开。
题目解析
capability 把部分传统 root 权限拆开,应用可以只获得确实需要的网络、时间或设备操作;privileged 通常会同时放宽 capability、设备和安全边界,风险远大于普通用户权限。只读根文件系统限制运行时修改镜像,写入应通过明确的 volume 或 tmpfs 提供。
安全配置的验收不只是容器能启动,还要确认应用实际系统调用、文件、端口、日志、升级和调试路径。遇到写入失败时应找出具体目录并授予最小可写范围,不能用 privileged 或可写根目录消除症状。
常见误区
- 误区:直接使用 privileged。改正:先用 seccomp、capability 和设备白名单确定最小必要权限。
- 误区:只读根文件系统失败后把根目录改回可写。改正:定位写入路径,使用 tmpfs 或专用 volume,并保留只读边界。