Docker安全运行设置:新手向
我们创建运行Docker很多情况下是直接在线拉取然后配置参数或参数文件运行。这种方式非常方便快捷,但是多数Docker默认采用root运行,并且有权限挂载宿主机目录,攻击者可以对宿主机文件进行操作,也违背最小授权原则。要加强安全设置最佳实践是修改dockerfile,创建appuser,指定appuser运行docker。但实际操作比较麻烦。退而求其次的方式是限制docker运行用户权限范围,即使是root用户运行,限制权限后也可以一定程度防止对宿主机的攻击。具体配置方式。
给予当前用户docker组权限,避免每次运行需要sudo提权。
sudo usermod -aG docker $USER
修改当前运行docker,增加权限限制。
查看当前运行docker名称和运行情况
docker ps
停止目标docker运行,以最常见的watchtower为例:
docker stop watchtower
删除当前docker
docker rm watchtower
重新运行docker,通过cap-drop参数限制所有权限,仅赋予绑定网络权限。
docker run -d --restart=always --cap-drop=ALL --cap-add=NET_BIND_SERVICE -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower
查看docker运行情况
docker ps
通过以上设置可以大大提升运行docker的宿主机安全。而且无需做大的修改和繁琐设置。当然最安全的做法还是添加和指定appuser这样的普通用户运行docker,但需要处理相关的各种权限问题。另外配置了watchtower的情况下检查到版本更新,会继承初始创建时的运行参数,保持对docker内运行用户的权限限制。
页:
[1]