#azure #azure-policy #azure-aks #azure-security-center
#azure #azure-policy #azure-aks #azure-security-center
Вопрос:
Я пытаюсь указать правильное значение параметра для политики Azure с именем «Переопределение или отключение профиля AppArmor контейнеров должно быть ограничено» — allowedProfiles
параметр.
Из документов 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. Привет @RobertSkarzycki, согласно встроенной политике, разрешенные значения могут быть пустыми, если вы хотите заблокировать все, или, если хотите, вы можете указать разрешенные значения способом, который вы уже используете.
2. но в соответствии с вашим вопросом, я понимаю, что AKS является существующим ресурсом, и затем вы применяете политику, которая остается без претензий даже после того, как вы указали допустимые значения. если это так, могу ли я узнать, пытались ли вы создать задачу исправления для той же политики? вы можете обратиться к этому документу Корпорации Майкрософт о том , как сделать то же самое .
3. @AnsumanBal-MT, означает ли это, что изменения в назначении политики (установка значения параметра) не применяются к существующему ресурсу? Это было бы странно, поскольку другие политики скорее проверяют существующие ресурсы…
4. да, другие политики также нуждаются в восстановлении существующих ресурсов
Ответ №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
...
Комментарии:
1. Хм … @dmusial, но что, если я не хочу явно использовать какой-либо из профилей? Я вынужден устанавливать
runtime/default
? И что такое профильcri-containerd.apparmor.d
, который я могу найти как явно включенный, но он не установлен в моих YAMLs?2. Я не знаю ни о каком механизме в k8s, который позволил бы вам неявно указывать профиль AppArmor по умолчанию для всех объектов. Чтобы применить профиль AppArmor, вам необходимо внести изменения в существующие YAMLS. Что касается cri-containerd.apparmor.d, это профиль AppArmor контейнера по умолчанию, он будет использоваться, если вы укажете ‘runtime / default’ в ваших YAMLs.