自定义规则
vArmor 支持用户基于 enforcer 的语法,在 EhanceProtect 模式的 VarmorPolicy 或 VarmorClusterPolicy 对象中自定义访问控制规则。
注:BPF enforcer 支持的语法在持续开发中。
AppArmor enforcer
AppArmor enforcer 支持用户根据 AppArmor 的语法定制策略。
请参见此 文档 在 .spec.policy.enhanceProtect.appArmorRawRules
字段中设置自定义规则。请确保每条规则以 ',' 结尾。
Seccomp enforcer
Seccomp enforcer 支持用户根据 OCI 规范的语法定制策略。
请参见此 文档 在 .spec.policy.enhanceProtect.syscallRawRules
字段中设置自定义的系统调用规则。
BPF enforcer
BPF enforcer 支持用户根据语法定制策略。每类规则的数量上限为 50 条。每个节点支持最多对 100 个容器开启沙箱。
请参考以下语法在 .spec.policy.enhanceProtect.bpfRawRules
中设置自定义规则。
-
File Permission
权限 / 权限缩写 隐含权限 说明 read / r -
rename
hard link禁止读
禁止利用 rename oldpath newpath 绕过 oldpath 的读限制
禁止利用 ln TARGET LINK_NAME 绕过 TARGET 的读限制write / w -
append
rename
hard link
symbol link
chmod
chown禁止写
禁止利用 O_APPEND flag 绕过 map_file_to_perms() 实现追加写操作
禁止利用 rename oldpath newpath 绕过 newpath 的写限制
禁止利用 ln TARGET LINK_NAME 绕过 LINK_NAME 的写限制
禁止利用创建软链接(符号链接)绕过目标文件的写限制
WIP
WIPexec / x - 禁止执行 append / a - 禁止追加写 -
File Globbing Syntax
BPF enfocer 支持根据路径 Pattern 对文件进行匹配,并支持两种匹配模式(精确匹配、通配匹配),匹配 Pattern 的最大长度限制为 64 字节。
通配符 语法 样例 说明 * - 仅用于匹配叶子结点的文件名
- 匹配 dot 文件,但不匹配 . 和 .. 文件
- 仅支持单个 *,且不支持 ** 和 * 一起出现- fi* 代表匹配任意以 fi 开头的文件名
- *le 代表匹配任意以 le 结尾的文件名
- *.log 代表匹配任意以 .log 结尾的文件名此通配符的行为可能会在后续版本中发生改变 ** - 在多级目录中,匹配零个、一个、多个字符
- 匹配 dot 文件,但不匹配 . 和 .. 文件
- 仅支持单个 **,且不支持 ** 和 * 一起出现- /tmp/**/33 代表匹配任意以 /tmp 开头,且以 /33 结尾的文件,包含 /tmp/33
- /tmp/** 代表匹配任意以 /tmp 开头的文件、目录
- /tm** 代表匹配任意以 /tm 开头的文件、目录
- /t**/33 代表匹配任意以 /t 开头,以 /33 结尾的文件、目录 -
Network Permission
- 当前 vArmor 支持对指定的 IP 地址、IP 地址块(CIDR 块)、端口进行外联访问控制。
- 当指定了 IP 地址、IP 地址块,但未指定端口时,默认对所有端口生效。
- 具体请参见 NetworkEgressRule。