Docker安全之用户资源隔离
2016-06-29 09:03
549 查看
Docker安全之用户资源隔离
docker字母哥 18小时前 75℃
0评论
向您推荐
Dcoker入门与实践系列文章欢迎加入QQ技术交流群:300139299
docker进行资源隔离的6种namespace
namespace | 隔离内容 | 内核版本 |
---|---|---|
UTS | 主机名与域名 | Linux 2.6.19 |
IPC | 信号量,消息队列和共享内存 | Linux 2.6.19 |
PID | 进程编号 | Linux 2.6.24 |
Network | 网络设备,网络栈,端口 | 始于Linux 2.6.24 完成于 Linux 2.6.29 |
Mount | 文件挂载 | Linux 2.4.19 |
User | 用户用户组 | 始于 Linux 2.6.23 完成于 Linux 3.8 |
以上内容不是这篇文章的重点,此篇文章主要是介绍user namespace
一.User namespace的作用
docker 使用namespace进行资源隔离,其中一种是user namespace.user namespace主要隔离了安全相关的标识符和属性,包括用户ID,用户组Id,root目录,key(密钥)以及特殊权限.默认的情况下,docker容器使用的root用户和宿主机的root用户是同一个用户,尽管可以限制容器内root用户的权限(capability),但本质上仍然和宿主机root用户是同一个用户.
有了user namespace之后,我们就可以将宿主机上的普通用户映射为容器的root用户,这样容器中的实际用户为普通用户权限,可以将容器的安全程度提高一个等级!
实验一:不使用user namespace进行资源隔离
运行一个容器docker run -it ubuntu:14.04 top
另外开一个终端,查看该容器进程在宿主机上的用户
~$ ps -aux|grep top root 18724 0.2 0.0 19848 2400 pts/15 Ss+ 14:16 0:00 top
可以看到,运行top命令的用户是root,即容器中的root用户就是宿主机的root用户
实验二:使用user namespace进行资源隔离
配置实现
运行docker deamon进程的时候加入参数--userns-remap=default,如:ubuntu中是修改/etc/default/docker中的DOCKER_OPTS,追加配置
--userns-remap=default
重启docker deamon,如:ubuntu中是使用
service docker restart
实验内容
运行一个容器docker run -it ubuntu:14.04 top
另外开一个终端,查看该容器进程在宿主机上的用户
~$ ps -aux|grep top 165536 19347 0.1 0.0 19848 2424 pts/15 Ss+ 14:32 0:00 top
可以看到,在宿主机上top命令的执行使用的用户是165536(uid),不是root
看看容器内的top命令的输出
1 root 20 0 19848 2424 2108 R 0.0 0.0 0:00.07 top
容器内,看上去仍然是root用户.即:有了user namespace之后,我们就可以将宿主机上的普通用户映射为容器的root用户.
那么,有一个问题?这个普通用户是谁?
二.user namespace的默认映射用户
上面的实验中,我们已经使用了user namespace的最简化配置.即:--userns-remap=default
实际上,docker新建了一个用户和用户组都叫做dockremap,容器内的root用户映射到宿主机的这个dockremap用户上.
$ cat /etc/passwd …… dockremap:x:10000:10000:,,,:/home/dockremap:/bin/false $ cat /etc/subuid …… dockremap:165536:65536 $ cat /etc/subgid …… dockremap:165536:65536
三.自定义映射用户
首先在宿主机上创建用户及用户组,在启动docker deamon的时候传入如下参数.--userns-remap=<uid> --userns-remap=<uid>:<gid> --userns-remap=<username> --userns-remap=<username>:<groupname>
向您推荐
Dcoker入门与实践系列文章欢迎加入QQ技术交流群:300139299
转载请注明:字母哥博客 »
Docker安全之用户资源隔离
相关文章推荐
- docker学习(一)
- docker学习
- 利用docker开启持续交付之路
- Docker 1.12.0将要发布的新功能
- 42.docker简介
- Docker与虚拟机性能比较
- Docker使用说明
- docker
- docker安装与应用
- Centos7 Docker 多主机 容器互连--基于OVS
- docker快速入门+搭建javaweb环境
- 测试docker不同主机间容器互相访问
- Jenkins+Docker搭建持续集成测试环境
- 未来演进的方向--基于Docker部署微服务
- docker搭建gitbook服务
- docker入门及安装
- rancher安装和基本使用
- 单机使用Docker host网络安装consul和registrator
- 下一代的中间件必须是支持docker规范的
- Docker可以救人一命,附几个国内Dock Hub镜像地址