接口说明
English | 简体中文
VarmorPolicy / VarmorClusterPolicy
Spec
字段 | 子字段 | 子字段 | 描述 |
---|---|---|---|
target | kind string | - | 用于指定防护目标的 Workloads 类型 可用值: Deployment, StatefulSet, DaemonSet, Pod |
name string | - | 可选字段,用于指定防护目标的对象名称 | |
containers string array | - | 可选字段,用于指定防护目标的容器名,如果为空默认对 Workloads 中的所有容器开启沙箱防护(注:不含 initContainers, ephemeralContainers) | |
selector LabelSelector | - | 可选字段,用于根据标签选择器识别防护目标,并开启沙箱防护 | |
policy | enforcer string | - | 指定要使用的 LSM,可用值: AppArmor, BPF, Seccomp, AppArmorBPF, AppArmorSeccomp, BPFSeccomp, AppArmorBPFSeccomp |
mode string | - | 用于指定防护模式,不同模式的含义详见 内置规则 可用值:AlwaysAllow, RuntimeDefault, EnhanceProtect, BehaviorModeling, DefenseInDepth | |
enhanceProtect | hardeningRules string array | 可选字段,用于指定要使用的内置加固规则,详见 内置规则 | |
attackProtectionRules AttackProtectionRules array | 可选字段,用于指定要使用的内置规则,详见 内置规则 | ||
vulMitigationRules string array | 可选字段,用于指定要使用的内置规则,详见 内置规则 | ||
appArmorRawRules string array | 可选字段,用于设置自定义的 AppArmor 黑名单规则,参见 AppArmor 语法 | ||
bpfRawRules BpfRawRules array | 可选字段,用于支持用户设置自定义的 BPF 黑名单规则 | ||
syscallRawRules LinuxSyscall array | 可选字段,用于支持用户使用 Seccomp enforcer 设置自定义的 Syscall 黑名单规则。请参考此文档来制定自定义规则。 | ||
privileged bool | 可选字段,若要对特权容器进行加固,请务必将此值设置为 true。若为 false ,将在 RuntimeDefault 模式的基础上构造 AppArmor/BPF Profiles。若为 ture ,则在 AlwaysAllow 模式的基础上构造 AppArmor/BPF Profiles。注意:当为 true 时,vArmor 不会为目标构造 Seccomp Profiles(默认值:false) | ||
auditViolations bool | 可选字段. 用于审计违反沙箱策略的行为。此特性当前仅支持 AppArmor enforcer,任何违反沙箱策略的行为都会被记录到系统的审计日志中。若您使用 syslog 或 rsyslog,日志文件的默认路径为 /var/log/kern.log 。(默认值:false) | ||
modelingOptions | duration int | 动态建模的时间(单位:分钟)[实验功能] | |
updateExistingWorkloads bool | - | - | 可选字段,用于指定是否对符合条件的工作负载进行滚动更新,从而在 Policy 创建或删除时,对目标工作负载开启或关闭防护(默认值:false) 注意:vArmor 只会对 Deployment, StatefulSet, or DaemonSet 类型的工作负载进行滚动更新,如果 .spec.target.kind 为 Pod,需要您自行重建 Pod 来开启或关闭防护。 |
PLACEHOLDER_PLACEHOLD |
AttackProtectionRules
字段 | 描述 |
---|---|
rules string array | 要使用的内置规则列表,详见 内置规则 |
targets string array | 可选字段,仅对指定的可执行文件列表开启 Rules 中的内置规则,此功能仅支持 AppArmor enforcer |
PLACEHOLDER |
BpfRawRules
字段 | 子字段 | 描述 |
---|---|---|
files FileRule array | pattern string | 任意符合策略语法的文件路径字符串(最大长度 128 bytes),用于匹配文件路径、文件名称 文件匹配语法参见 BPF enforcer 语法 |
permissions string array | 禁止使用的权限,其中 write 权限隐式包含 append, rename, hard link, symbol link 权限 可用值: read(r), write(w), append(a), exec(e) | |
processes FileRule array | - | 同上 |
network NetworkRule | egresses NetworkEgressRule array | 对外联请求进行访问控制 |
ptrace PtraceRule | strictMode bool | 可选字段,true 代表对所有(目标、来源)进程进行限制,false 代表仅对容器外的(目标、来源)进程进行限制(默认值:false) |
permissions string array | 禁止使用的权限,可用值: trace, read, traceby, readby - trace : 禁止 trace 其他目标进程- read : 禁止 read 其他目标进程- traceby : 禁止被其他来源进程 trace(宿主机进程除外)- readby : 禁止被其他来源进程 read(宿主机进程除外) | |
mounts MountRule array | sourcePattern string | 任意符合策略语法的文件路径字符串(最大长度 128 bytes),用于匹配 MOUNT(2) 的 source,UMOUNT(2) 的 target,以及 MOVE_MOUNT(2) 的 from_pathname 文件匹配语法参见 BPF enforcer 语法 |
fstype string | 任意字符串(最大长度 16 bytes),用于匹配文件系统类型,* 代表匹配任意文件系统 | |
flags string array | 禁止使用的 mount flags,它们与 AppArmor 的 MOUNT FLAGS 类似,其中 all 代表匹配所有 flags可用值: all, ro(r, read-only), rw(w), suid, nosuid, dev, nodev, exec, noexec, sync, async, mand, nomand, dirsync, atime, noatime, diratime, nodiratime, silent, loud, relatime, norelatime, iversion, noiversion, strictatime, nostrictatime, remount, bind(B), move(M), rbind(R), make-unbindable, make-private(private), make-slave(slave), make-shared(shared), make-runbindable, make-rprivate, make-rslave, make-rshared, umount | |
PLACEHOLDER_ | PLACEHOLDER_PLACEHOD |
NetworkEgressRule
字段 | 描述 |
---|---|
ipBlock string | 可选字段,可使用任意标准的 CIDR,支持 IPv6。用于对指定 CIDR 范围内的 IP 地址进行外联限制,例如 * 192.168.1.1/24 代表 192.168.1.0 ~ 192.168.1.255 范围内的 IP 地址 * 2001:db8::/32 代表 2001:db8:: ~ 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 范围内的 IP 地址 (注:同一个 NetworkEgressRule 中,IPBlock 和 IP 字段互斥,不能同时出现) |
ip string | 可选字段,任意标准的 IP 地址,支持 IPv6 ,用于对特定的 IP 地址进行外联限制 |
port int | 可选字段,用于对指定的端口进行外联限制,当为空时,默认对(匹配 IP 地址的)所有端口进行外联限制。否则仅对特定端口进行控制 可用值: 1~65535 |
PLACEHOLDER |
策略语法
vArmor 也支持用户在 spec.policy.enhanceProtect.appArmorRawRules
和 spec.policy.enhanceProtect.bpfRawRules
中根据语法自定义强制访问控制规则。
AppArmor enforcer
AppArmor enforcer 支持用户根据 AppArmor 的语法自定义规则
- 语法参见 syntax of security profiles for AppArmor 和 AppArmor_Core_Policy_Reference
- 使用方式
- 在 .spec.policy.enhanceProtect.appArmorRawRules[] 中添加自定义 rule
- 请确保每条 rule 以 ',' 结尾
BPF enforcer (WIP)
BPF enforcer 支持用户根据语法自定义规则,每类规则的数量上限为 50 条。每个节点支持最多对 100 个容器开启沙箱。