You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes Maven插件访问Docker守护进程是否需要root权限?

问题1解答

  • Kubernetes Maven插件本身无需root权限运行:它仅作为Docker daemon的API客户端执行构建、推送镜像等操作,权限完全由对接的Docker daemon的访问规则决定,插件本身不要求运行用户有root权限。
  • DinD访问Docker daemon的权限分两种场景:
    • 常规特权模式DinD:启动容器时需要--privileged特权权限,运行时内部的Docker daemon默认以root身份运行,只要能访问其socket的用户都能获得等效root的操作权限,可操控该DinD实例内的所有容器资源。
    • Rootless模式DinD:可完全用普通用户权限启动和运行,内部Docker daemon也对应用户权限,即便被攻破也无法获取宿主机root权限,适合多租户共享的构建场景。
  • 额外注意:如果你们的Jenkins agent是直接挂载宿主机的/var/run/docker.sock来访问Docker,只要普通用户在宿主机的docker用户组内即可访问daemon,但宿主机Docker daemon默认以root运行,任何可访问该socket的用户都等同于拥有宿主机root权限,可随意查看、修改宿主机上所有容器、镜像资源,完全不符合多团队共享节点的安全要求。

问题2解答

当前场景下还存在以下典型潜在安全风险:

  • 共享Docker daemon越权访问:多团队共用节点如果共享同一个Docker daemon,任意团队的构建任务都可以查看、篡改、删除其他团队的构建镜像、运行中容器,甚至可以通过挂载宿主机目录、启动特权容器等方式实现宿主机逃逸,窃取整个节点的所有敏感数据。
  • 构建流程代码注入风险:Maven构建过程中如果加载了恶意依赖、恶意插件,或者pom.xml被篡改,可直接在构建节点执行任意代码,获取Docker访问权限后可进一步扩散风险。
  • DinD容器逃逸风险:如果使用特权模式运行DinD容器,攻击者可以直接通过DinD容器访问宿主机内核接口,实现跨容器、跨租户的逃逸,不受用户权限限制。
  • 构建机密泄露风险:镜像构建过程中传入的认证密钥、仓库密码等敏感信息如果没有做清理,会残留在镜像层、构建缓存中,多租户场景下很容易被其他团队获取。
  • 构建缓存未隔离风险:多团队共用节点时如果Docker构建缓存、Maven依赖缓存没有做租户隔离,可能出现缓存投毒、敏感依赖泄露的问题。

内容的提问来源于stack exchange,提问作者Jakoto Glaslow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:06:03