跳到主要内容
版本:v0.7

接口说明

VarmorPolicySpec / VarmorClusterPolicySpec

字段子字段子字段描述
targetkind
string
-用于指定防护目标的 Workloads 类型。
可用值: Deployment, StatefulSet, DaemonSet, Pod。
name
string
-可选字段。用于指定防护目标的对象名称。
containers
string array
-可选字段。用于指定防护目标的容器名,如果为空默认对 Workloads 中的所有容器开启沙箱防护。(不含 initContainers, ephemeralContainers)
selector
LabelSelector
-可选字段。用于根据标签选择器识别防护目标,并开启沙箱防护。

注意 selector 字段与 name 字段互斥,不能同时存在。
policyenforcer
string
-指定要使用的 LSM。
可用值: AppArmor, BPF, Seccomp, AppArmorBPF, AppArmorSeccomp, BPFSeccomp, AppArmorBPFSeccomp
mode
string
-用于指定防护模式。
可用值:AlwaysAllow, RuntimeDefault, EnhanceProtect, BehaviorModeling, DefenseInDepth
enhanceProtecthardeningRules
string array
可选字段。用于指定要使用的内置加固规则。
attackProtectionRules
AttackProtectionRules array
可选字段。用于指定要使用的内置规则。
vulMitigationRules
string array
可选字段。用于指定要使用的内置规则。
appArmorRawRules
string array
可选字段。用于设置自定义的 AppArmor 黑名单规则。每条规则必须以逗号结尾,请参考 AppArmor 语法 进行编写。
bpfRawRules
BpfRawRules
可选字段。用于支持用户设置自定义的 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 和 BPF enforcers,任何违反沙箱策略的行为都会被记录到宿主机的 /var/log/varmor/violations.log 文件中。(默认值:false)
allowViolations
bool
可选字段。放行违反沙箱策略的行为。此特性当前支持 AppArmor 和 BPF enforcers,任何违反沙箱策略的行为都不会被拦截。(默认值:false)
modelingOptionsduration
int
动态建模的时间。(单位:分钟)[实验功能]
updateExistingWorkloads
bool
--可选字段。用于指定是否对符合条件的工作负载进行滚动更新,从而在 Policy 创建或删除时,对目标工作负载开启或关闭防护。(默认值:false)

注意:vArmor 只会对 Deployment、StatefulSet、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),用于匹配文件路径、文件名称。
permissions
string array
禁止使用的权限,其中 write 权限隐式包含 append, rename, hard link, symbol link 权限。
可用值:all(*), read(r), write(w), append(a), exec(e)
processes
FileRule array
-同上
network
NetworkRule
sockets
NetworkSocketRule array
对套接字 SOCKET(2) 创建行为进行访问控制。
egresses
NetworkEgressRule array
对外联请求进行访问控制。
ptrace
PtraceRule
strictMode
bool
可选字段。如果设置为 false,将允许进程对同一容器内其他进程执行 trace、read 操作,以及允许进程被同一容器内其他进程执行 traceby、readby 操作。如果设置为 true,则将禁止容器内所有进程的 trace、read、traceby、readby 操作。(默认值:false)
permissions
string array
禁止使用 ptrace 相关操作。
可用值: all(*), trace, read, traceby, readby
- trace: 禁止跟踪其他进程
- read: 禁止读取其他进程
- traceby: 禁止被其他进程跟踪,宿主机进程除外
- readby: 禁止被其他进程读取,宿主机进程除外
mounts
MountRule array
sourcePattern
string
任意符合策略语法的文件路径字符串(最大长度 128 bytes),用于匹配 MOUNT(2) 的 source,UMOUNT(2) 的 target,以及 MOVE_MOUNT(2) 的 from_pathname。
fstype
string
任意字符串(最大长度 16 bytes),用于匹配文件系统类型,* 代表匹配任意文件系统。
flags
string array
禁止使用的 mount flags,它们与 AppArmor 的 MOUNT 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

NetworkSocketRule

字段描述
domains
string array
可选字段。用于指定禁止使用的套接字通信域。
可用值:all(*), unix, inet, ax25, ipx, appletalk, netrom, bridge, atmpvc, x25, inet6, rose, netbeui, security, key, netlink, packet, ash, econet, atmsvc, rds, sna, irda, pppox, wanpipe, llc, ib, mpls, can, tipc, bluetooth, iucv, rxrpc, isdn, phonet, ieee802154, caif, alg, nfc, vsock, kcm, qipcrtr, smc, xdp, mctp
types
string array
可选字段。用于指定禁止使用的套接字通信语义。
可用值:all(*), stream, dgram, raw, rdm, seqpacket, dccp, packet
protocols
string array
可选字段。用于指定禁止使用的套接字特定协议。
可用值:all(*), icmp, tcp, udp

注意:protocols 和 types 字段互斥,不能同时存在。
PLACEHOLDER

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 地址。
ip
string
可选字段。任意标准的 IP 地址,支持 IPv6,用于对特定的 IP 地址进行外联限制。

注意:同一个 NetworkEgressRule 中,IP 和 IPBlock 字段互斥,不能同时存在。
port
int
可选字段。用于对指定的端口进行外联限制,当为空时,默认对(匹配 IP 地址的)所有端口进行外联限制。否则仅对特定端口进行控制。
可用值:1~65535
PLACEHOLDER