使用说明
接口操作
vArmor 通过 VarmorPolicy 和 VarmorClusterPolicy CR 提供 API 接口,它们分别是 namespace-scoped 和 cluster-scoped 类型的资源。VarmorClusterPolicy 的优先级高于 VarmorPolicy,即优先使用 VarmorClusterPolicy 对象对匹配的 Workloads 进行防护。你可通过创建、修改、删除 VarmorPolicy/VarmorClusterPolicy 对象来对指定的 Workloads 进行防护。
vArmor 支持在创建或删除 VarmorPolicy/VarmorClusterPolicy 对象时,对满足匹配条件的存量工作负载进行滚动重启,从而为其开启或关闭防护。
您还需要遵守以下限制和使用要求:
- 防护目标必须具有
sandbox.varmor.org/enable="true"标签,从而在创建、更新时被 webhook server 处理。若其满足某个 VarmorPolicy/VarmorClusterPolicy 对象的spec.target匹配条件,vArmor 将会对其开启沙箱防护。 - 创建 VarmorPolicy/VarmorClusterPolicy 对象后,其
spec.target不可更改。请通过新建策略来更改匹配目标。 - 创建 VarmorPolicy/VarmorClusterPolicy 对象后,可通过更新
spec.policy来动态新增 enforcer、切换防护模式、更新防护规则。详情请参考策略模式。
状态管理
您可通过查看 VarmorPolicy/VarmorClusterPolicy 对象的 Status 获取处理阶段、错误信息、AppArmor/BPF Profile 的处理状态等。
您可通过查看 VarmorPolicy/VarmorClusterPolicy 对象的 Status 获取 profileName 字段。随后可查看 相同命名空间下的同名 ArmorProfile 对象,从而获取 Agent 在处理 Profile 时的状态和错误信息。例如:哪个节点处理失败及其原因等。
日志管理
组件日志
Manager 和 Agent 组件会通过标准输出记录日志。默认为 TEXT 格式,您可以通过安装选项将其切换为 JSON 格式。
审计日志
vArmor 支持将策略对象配置为仅审计不拦截(观察模式)、拦截并审计模式。这既可以通过策略对象的 auditViolations 和 allowViolations 字段控制(作用于 EnhanceProtect 的内置规则与 DefenseInDepth 的 Profile),也可以通过自定义规则各自的限定词(allow / deny / audit)控制。常见用法请参考策略模式的处置动作与审计与自定义规则。所有违规事件都将以 JSON 格式记录到宿主机的 /var/log/varmor/violations.log 文件中(文件大小上限为 10MB,并最多保留 3 个旧文件)。