据我了解,在 Pod 安全准入 (PSA) 中,没有自定义功能。我们只能选择其中一种安全级别(特权、基线或受限)
现在,有一个仅使用 CAP_NET_ADMIN 功能的 pod。但是,如您所知,PSA 的“基线”级别不包括 CAP_NET_ADMIN。因此,是否应使用“特权”级别创建此 pod?我的理解正确吗?这是使用 PSA 设置此 pod 的唯一方法吗?我很好奇,因为我认为这不利于安全。
您能分享一下您的看法吗?
答案1
pod 安全策略提供的默认安全级别无法直接更改,并且是预定义的。要定义自定义策略,您可以使用以下解决方案基韦尔诺并定义您自己的策略,该策略将“基线”策略与例外相结合,以包含“CAP_NET_ADMIN”功能。下面给出了任何示例:
kind: ClusterPolicy
metadata:
name: customized-baseline-policy
spec:
background: false
rules:
- name: enforce-baseline-policy
match:
resources:
kinds:
- Pod
validate:
message: "The pod does not comply with the customized baseline policy."
pattern:
spec:
containers:
- securityContext:
readOnlyRootFilesystem: true
hostIPC: false
hostPID: false
hostNetwork: false
<ADD MORE POLICIES HERE AS DEFINED IN THE BASELINE POLICY>
mutate:
patchStrategicMerge:
metadata:
annotations:
kyverno.io/generated-by: customized-baseline-policy
spec:
containers:
- securityContext:
capabilities:
add: ["NET_ADMIN"]