自定义迁移 Pod 安全准入功能

自定义迁移 Pod 安全准入功能

据我了解,在 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"]

相关内容