Какое правильное имя профиля AppArmor соответствует политике Azure (EnforceAppArmorProfile)?
Я изо всех сил пытаюсь указать правильное значение параметра для политики Azure с именем «Переопределение или отключение контейнеров Профиль AppArmor должен быть ограничен» - параметр.
Из документов k8s я могу использовать
kubectl exec <POD_NAME> --namespace="<NAMESPACE>" -- cat /proc/1/attr/current
чтобы узнать, какие профили включены. При запуске его для нескольких модулей я вижу, что в основном включен следующий профиль:
cri-containerd.apparmor.d
Однако, когда я пытаюсь поместить это в параметр политики
allowedProfiles
(значение было
[ "cri-containerd.apparmor.d" ]
) это не делает ресурс здоровым. Я также пытался использовать значения в подсказке параметра (т.е.
[ "runtime/default", "docker/default"]
), но эффект был тот же: все равно нездоровый ресурс.
1 ответ
Во-первых, укажите разрешенные имена профилей в качестве входных данных для ограничения (политики). Вы можете использовать «среду выполнения/по умолчанию», если хотите использовать все, что предоставляется с AKS. В качестве альтернативы создайте свой собственный профиль AppArmor и передайте его как разрешено.
Во-вторых, в ваших определениях YAML (для модулей, развертываний, заданий и т. д.) вам необходимо убедиться, что вы действительно используете профиль AppArmor, то есть для модулей:
...
annotations:
container.apparmor.security.beta.kubernetes.io/pod-allowed: runtime/default
container.apparmor.security.beta.kubernetes.io/pod-allowed-sidecar: runtime/default
...