我多次看到默认的Seccomp、SELinux和AppArmor配置文件是通过策略在Kubernetes集群上强制执行的。据我所知,这些配置文件(以及相关的策略)应该通过分析为每个唯一的容器量身定做。
在最新的取代PSP的吊舱安全标准中,AppArmor可以设置为runtime/default
,而Seccomp可以设置为RuntimeDefault
,但是SELinux似乎没有任何默认值。如果有人没有为容器指定定制的配置文件,并且Kubernetes将默认配置文件应用于盒子之外,会发生什么情况?在运行时,将来的syscalls或应用程序权限不可能发生冲突吗?
最后,根据你的经验,在现实生活中采取这些量身定做的政策是什么?它们是否过于具体和安全,不能在容器数量众多的情况下进行扩展?我想敏捷实践者会不喜欢他们,因为分析不能完全自动化。
发布于 2022-08-22 17:45:55
关于Kubernetes下的SELinux、Apparmor和seccomp的默认策略,有几点需要注意。
首先是关于runtime/default
的问题,这在本质上意味着Kubernetes将把策略问题推迟到由正在使用的容器运行时提供的默认策略上。这可能是码头,集装箱,CRI或其他。总的来说,Docker和Containerd使用的策略是相同的,我希望CRI是相似的。
至于如果不应用特定策略会发生什么,Apparmor在默认情况下将应用,在默认情况下不会应用seccomp,这意味着容器具有更少的保护,例如,如果直接在Docker下运行的话。
使用自定义策略(IME)是相当有限的,因为配置策略并在集群中推出策略非常复杂。但是,问题的第二部分是在Kubernetes项目中工作,因为Apparmor和seccomp都有一些特性,这些特性将允许在集群中轻松地应用默认策略。
https://security.stackexchange.com/questions/264273
复制相似问题