Docker Security最佳实践-所有这些都是必要的吗?

时间:2019-07-02 02:57:29

标签: docker security

在使用Docker之前,请从我们公司的IT部门获得这些要求清单。我们希望使用Docker加快开发速度,并允许我们的开发人员仅在内部使用Docker使用Flask-Redis解决方案。这种用法是否全部必要?

  • 请勿以root用户身份运行软件!
  • 改为创建用户(或使用用户名称空间)。
  • 准备软件,以便将root挂载为只读文件(并在运行文件受限制的情况下使用tmpfs)。
  • 请勿在Docker集线器上信任社区映像(即使使用公共Dockerfile)。在官方基础图像上构建图像。
  • 始终在新的基础映像上进行构建(例如,在构建之前docker pull [image])。
  • 使用最少的基本映像(例如alpine)-仅安装必要的库。
  • 请勿将机密存储到Dockerfile。请改用Docker机密(ENV –变量是一种不良做法,可能会泄漏信息)。
  • 添加用于编排的HEALTHCHECK命令。
  • 请勿安装不必要的软件(例如出于调试或测试目的)。
  • 创建强化的docker-compose.yml和Dockerfile模板,以分发给软件项目。
  • 由一名具有安全/操作知识的人员查看对Dockerfile的更改。
  • 确保稍后生成图像时,它与以前完全相同。
  • 使用CI管道构建Docker映像。
  • 定期更新容器。
  • 在Dockerfile的末尾使用apt-get更新+ apt-get升级。
  • 使用docker-compose代替手动docker run命令。
  • 添加默认标志:删除不必要的功能,限制新特权(无newprivileges),设置内存限制,在需要时限制cpu使用率,设置只读标志。
  • 保持主机内核已更新!
  • 拒绝内部容器通信(icc = false)。
  • 保持Docker更新。
  • 请注意,控制docker守护程序(属于docker组)的用户有效地在主机上具有根。
  • 不允许未经授权的访问Docker API!
  • 监视和登录。
  • 资源保护–安装!如有必要:请勿这样做。如果确实有必要,则:r / o。如果需要读写:限制写入(FS DoS)
  • 强化容器:选择操作系统,Alpine,Ubuntu Core?,CoreOS?,SUID(SGID)--security-opt =否新特权,Linux功能--cap-drop,Seccomp(chrome)--security -opt seccomp = yourprofile.json
  • 加固主机:仅SSH + NTP –仅允许来自已定义的内部IP,拒绝ip任何

扫描Docker以获得安全性:https://github.com/docker/docker-bench-security

也请参阅以下内容: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

https://snyk.io/blog/10-docker-image-security-best-practices/

https://github.com/OWASP/Docker-Security

0 个答案:

没有答案