0

我正在努力为名为“应限制覆盖或禁用容器 AppArmor 配置文件”的 Azure 策略指定正确的参数值-allowedProfiles参数。

从 k8s 文档中,我可以kubectl exec <POD_NAME> --namespace="<NAMESPACE>" -- cat /proc/1/attr/current了解启用了哪些配置文件。当针对几个 pod 运行它时,我可以看到大多数情况下启用了以下配置文件:

cri-containerd.apparmor.d

但是,当我尝试将其放入策略参数allowedProfiles(值 was [ "cri-containerd.apparmor.d" ])时,它不会使资源健康。我也在尝试使用参数提示中的值(即[ "runtime/default", "docker/default"]),但效果是一样的:仍然是不健康的资源。

4

1 回答 1

0

首先,提供允许的配置文件名称作为约束(策略)的输入。如果要使用 AKS 提供的任何内容,可以使用“运行时/默认值”。或者,创建您自己的 AppArmor 配置文件并在允许的情况下传递它。

其次,在您的 YAML 定义中(对于 Pod、部署、作业等),您需要确保您实际使用的是 AppArmor 配置文件,即对于 Pod:

...
annotations:
  container.apparmor.security.beta.kubernetes.io/pod-allowed: runtime/default
  container.apparmor.security.beta.kubernetes.io/pod-allowed-sidecar: runtime/default
...
于 2021-12-15T14:27:27.380 回答