privileged: true 的意思

privileged: true 的意思是: 容器拥有宿主机内核的完全访问权限。 具体能做的事: 1. 拥有所有 Linux Capabilities CAP_SYS_ADMIN、CAP_NET_ADMIN、CAP_SYS_PTRACE... 所有能力全开 2. 可以访问宿主机所有设备 ls /d

privileged: true 的意思是:

容器拥有宿主机内核的完全访问权限。

具体能做的事:

1. 拥有所有 Linux Capabilities

CAP_SYS_ADMIN、CAP_NET_ADMIN、CAP_SYS_PTRACE...
所有能力全开

2. 可以访问宿主机所有设备

ls /dev  # 能看到宿主机的所有硬件设备

3. 可以挂载文件系统

mount /dev/sda1 /mnt  # 直接挂载宿主机磁盘

4. 可以加载内核模块

insmod xxx.ko

5. 可以操作网络

iptables、修改路由表、创建网络接口

所以在 DinD 场景下:

sandbox 容器 privileged: true
    ↓
能看到宿主机 /dev 下的真实磁盘
    ↓
mount /dev/sda1 /mnt
    ↓
完全读写宿主机文件系统 ⚠️

这就是为什么 sandbox 容器不能开 privileged: true,否则安全边界就彻底消失了。

LICENSED UNDER CC BY-NC-SA 4.0
评论