如何在云计算基础架构平台中创建云主机
150
2023-10-25
【摘要】 本书摘自《基于Kubernetes的容器云平台实战》一书中第3章,第5节,由陆平、左奇、付光和张晗等编著。
3.5.1 容器安全加固规范
Docker 主机安全加固
具有一定规模的企业会建立自己的主机安全加固规范及checklist, 按照这个规范进行即可,如关闭swap、 防火墙、文件句柄修改等,必要时使用安全工具对主机进行安 全扫描。对安全要求极高的企业可以考虑使用自主研发的操作系统,在操作系统中启用
SELinux。
■ 更改运行容器的用户权限
为了防止容器“逃逸”并获得宿主机的权限,因此要用非root用户执行容器;如 果用户已经在镜像中定义,那么可以通过Dockerfile在此镜像基础上生产新的镜像,在
Dockerfile 中添加用户: RUN useradd -d/home/< 用 户 名 > -m -s/bin/bash < 用
户名> USER <用户名>。如果制作镜像文件时需要使用 root权限同后端 daemon 进程进 行交互,则可以使用kaniko开源工具进行处理。
■ 镜像中的 setuid 及 setgid
setuid和 setgid指令可用于提权,如果这两个指令使用高权限就可能引入了风险,因
此在镜像中要进行权限控制, 一般在 Dockerfile 末尾添加命令: RUN find/-perm 6000
-type f -exec chmod a-s {}\; | |true进行权限控制。
■ 对镜像进行安全扫描,使用安全可信的容器镜像
使 用clair或其他工具对镜像文件进行安全漏洞扫描,根据扫描结果打补丁或更新软件, 消除安全隐患后再重新制作镜像。
■镜像文件使用数字签名
对从 Docker 仓库发送和接收的数据使用数字签名能力,允许客户端验证特定镜像标签 的完整性。
■启用HTTPS
Docker 对所有请求启用TLS 验证,启用HTTPS 需要对Docker 启动文件进行配置,可 使用命令:
dockerd --tlsverify --tlscacert=ca.pem --tlscert=server-cert.pem --tlskey=server-
key ·pem \-H=10.47.40. 110:2376
■ 容器网络流量限制
默认情况下容器能访问容器网络上的所有流量,因此可能会导致信息泄露, Dockerd 采 用守护进程模式启动时增加参数-icc = false可以对容器流量进行限制,只访问自己的 流量。
内存配额限制
默认情况下容器可以使用主机所有内存,容器启动时通过-m 或 -memory 参数限定容器 的内存,如使用命令docker run -it --rm -m 128m限制内存配额。
■CPU 优先级限制
默认情况下CPU 是没有设置优先级的,用户可以通过CPU 共享设定优先级。如使用 下面的命令设置优先级:
docker run -it --rm --cpuset=0,1 -c 2
■ 存储空间配额限制
采用docker -d --storage-opt dm.basesize=5G命令可限制存储空间配额, 但目前还不能有效控制磁盘I/O。
■ 日志和审核
收集并归档与 Docker 相关的日志以便后期进行审核监控或做统计分析,记录容器日志 的命令如下:
docker run -v /dev/log:/dev/log版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~