策略模式
概览
您可以通过 VarmorPolicy 或 VarmorClusterPolicy 对象的 spec.policy.mode
字段来指定策略的运行模式。不同 enforcers 支持的模式如下表所示。
运行模式 | AppArmor | BPF | Seccomp | 说明 |
---|---|---|---|---|
AlwaysAllow | ✔️ | ✔️ | ✔️ | 在容器启动时不对其施加任何强制访问控制 |
RuntimeDefault | ✔️ | ✔️ | ✔️ | 使用与容器运行时组件相同的默认策略(如 containerd 的 cri-containerd.apparmor.d)进行基础防护 |
EnhanceProtect | ✔️ | ✔️ | ✔️ | - 支持 5 类 内置规则 和自定义接口,以满足不同的防护需求。 - 默认在 RuntimeDefault 模式的基础上进行增强防护(当 spec.policy.enhanceProtect.privileged 为 nil 或 false 时)- 支持在 AlwaysAllow 模式的基础上进行增强防护(当 spec.policy.enhanceProtect.privileged 为 true ) |
BehaviorModeling | ✔️ | 🏗️ | ✔️ | - 利用 BPF & Audit 等技术同时对多个工作负载进行行为建模 - 行为模型保存在对应的 ArmorProfileModel 对象中 - 不可切换防护模式 - 请参见 BehaviorModeling 模式 |
DefenseInDepth | ✔️ | ✔️ | - 基于行为模型 ArmorProfileModel 对工作负载进行防护 - 请参见 DefenseInDepth 模式 |
注意:
- vArmor 策略支持动态切换运行模式(限 EnhanceProtect, RuntimeDefault, AlwaysAllow, DefenseInDepth)、更新沙箱规则,而无需重启工作负载。但当使用 Seccomp enforcer 时,需要重启工作负载来使 Seccomp Profile 的变更生效。
- vArmor 支持修改策略为其添加新的 enforcer,但不支持删除已经设置的 enforcer。新添加的 enforcer 仅对新创建的 Workloads 生效。
实验特性
📄️ BehaviorModeling 模式
收集行为数据并为目标工作负载构建安全配置文件。
📄️ DefenseInDepth 模式
基于行为模型保护工作负载。