• Kubernetes学习笔记-保障集群内节点和网络安全(2)配置节点的安全上下文20220828



    除了让pod使用宿主节点的linux命名空间,还可以在pod或所属容器的描述中通过security-context选项配置其他与安全性相关的特性。这个选项可以运行于整个pod,或每个pod中单独的容器。
    了解安全上上下文中可以配置的内容
    配置安全上下文可以允许你做很多事:

    • 指定容器运行进程中的用户(用户ID)
    • 阻止容器使用root用户运行(容器的默认运行用户通常在其镜像中指定,所以可能需要阻止容器以root用户运行)
    • 使用特权模式运行容器,使其对宿主节点的内核具有完全的访问权限
    • 与以上相反,通过添加或禁用内核功能,配置细粒度的内核访问权限
    • 设置SELinux(Security Enhanced Linux,安全增强型linux)选项,加强对容器的限制
    • 阻止进程写入容器的根文件系统


    1)使用指定用户运行容器
    为了使用一个与镜像中不同的用户id来运行pod,需要设置该pod的securityContext.runAsUser选项
    guest用户id:405


    2)阻止容器以root用户运行
    yaml文件配置属性
    runAsNonRoot:true


    3)使用特权模式运行pod
    有时pod需要做它们的宿主节点的能做的任何事,如操作被保护的系统设备,或使用其他在通常容器中不能使用的内核功能。
    这种pod的一个样例就是kube-proxy pod。为了获取宿主机内核的完整权限,该pod需要在特权模式下运行。可以将容器的securityContext中的privileged设置为true实现。


    4)为容器单独添加内核功能
    前面介绍了一种给予容器无限力量的方法,一个更加安全的做法就是只给予它使用真正需要的内核功能的权限。kunernetes允许为特定的容器添加内核功能,或禁用部分内核功能,以允许对容器进行更加精细的权限控制,限制攻击者潜入的影响。
    如果需要允许容器修改系统时间,可以在容器的capbilities里的add一项名CAP_SYS_TIME的功能。
    注意:Linux内核功能的名称通常以CAP_开头。但在pod的spec中指定内核功能时,必须省略CAP_前缀


    5)在容器中禁用内核功能
    默认情况下容器拥有CAP_CHOWN权限,允许进程修改文件系统中文件的所有者。为了阻止容器此种行为,在yaml中的securityContext.capabilitirs.drop列表中加入此项,以禁用这个修改文件所有者的内核功能。


    6)阻止对容器根文件系统的写入
    为了安全原因,需要阻止容器中的进程对容器的根文件系统进行写入,仅允许他们写入挂载的存储卷。
    将容器的securityContext.readOnlyRootFileSystem设置为true
    提示:为了增强安全性,请将在生产环境中运行的容器的readOnlyRootFilesystem选项设置为true
    设置pod级别的安全上下文
    前面例子都是针对单独的容器设置的安全上下文。这些选项中一部分也可以从pod级别设定(通过pod.spec.securityContext属性)。它们会作为一个pod中的每一个容器默认安全上下文,但是会被容器级别的安全上下文覆盖。下面是pod级别安全上下文独有的内容。


    7)容器使用不同用户运行时共享存储卷
    之前章节讲的使用存储卷在pod的不同容器中共享数据,可以顺利在一个容器中写入数据,在另一个容器中读出这些数据,前提是这两个容器都以root用户运行,对存储卷中的所有文件拥有全部权限。如果两个不同用户它们不一定能读取或者写入另一个容器的文件。
    kunernetes允许为pod中所有容器指定supplemental组,以允许它们无论哪个用户id运行都可以共享文件,可以通过设置以下两个属性设置:

    • fsGroup
    • supplementalGroups
  • 相关阅读:
    使用 Web Workers
    推荐5款优质的黑科技软件,好不好用你来判断
    Android LinearLayout快速设置每个item间隔
    PyTorch中的CUDA操作
    [请回答C++] 设计特殊类&单例模式
    Bug分级处理指南:优先级与严重性的平衡
    生产环境部署高可用 Kubernetes 集群
    208.实现Trie(前缀树)
    毕昇编译器优化:Lazy Code Motion
    微信小程序引入官方《评价组件》的一些坑点
  • 原文地址:https://blog.csdn.net/wwxsoft/article/details/126603963