可信任软件供应链概述
可信任软件供应链:指在建设基础架构过程中,涉及的软件都是可信任的。
在K8s领域可信软件供应链主要是指镜像,因为一些软件交付物都是镜像,部署的最小载体。
镜像构建要写dockefile去构建,默认收以root账号权限去运行的,如果你不清楚这一块,那么这块的风险就已经放开了
构建镜像Dockerfile文件优化
•
减少镜像层:
一次RUN指令形成新的一层,尽量Shell命令都写在一行,减少镜像层。
•
清理无用文件:
清理对应的残留数据,例如yum缓存,减少镜像的大小。(拉取速度块,减少磁盘空间少)
[root@master ~]# du -sh /var/cache/yum/x86_64
254M /var/cache/yum/x86_64
•
清理无用的软件包:
基础镜像默认会带一些debug工具,可以删除掉,仅保留应用程序所需软件,防止黑客利用。
[root@k8s-master ~]# docker exec -it aadd7709d11d bash
root@aadd7709d11d:/# ifconfig
bash: ifconfig: command not found
•
选择最小的基础镜像
:例如alpine(使用apk对包进行管理,ubuntu使用apt-get,centos使用yum)
•
使用非root用户运行:
USER指令指定普通用户