AppArmor
限制容器对资源的访问。
AppArmor 是一个 Linux 内核安全模块, 它补充了基于标准 Linux 用户和组的权限,将程序限制在一组有限的资源中。
提供更加深入的防御。 它通过调整配置文件进行配置,以允许特定程序或容器所需的访问, 如 Linux 权能字、网络访问、文件权限等。 每个配置文件都可以在 强制(enforcing) 模式(阻止访问不允许的资源)或 投诉(complain) 模式(仅报告冲突)下运行。
AppArmor 内核模块已启用,要检查模块是否已启用
1 |
|
如果 Kubelet 包含 AppArmor 支持(>= v1.4), 但是内核模块未启用,它将拒绝运行带有AppArmor 选项的 Pod。
查看节点加载了哪些配置文件
1 |
|
加载配置文件
1 |
|
保护pod配置
AppArmor 配置文件是按 逐个容器 的形式来设置的,要指定用来运行 Pod 容器的 AppArmor 配置文件,请向 Pod 的 metadata 添加注解
1 |
|
<container_name>
的名称是配置文件所针对的容器的名称,<profile_def>
则设置要应用的配置文件。 <profile_ref>
可以是以下取值之一:
runtime/default
应用运行时的默认配置localhost/<profile_name>
应用在主机上加载的名为<profile_name>
的配置文件unconfined
表示不加载配置文件