Один из читателей канала подсветил один очень интересный момент касательно Policy Engines
и subresources. Этим бы я и хотел сегодня с вами поделиться ;)
Как вы знаете все в Kubernetes
это YAML
и все YAML
проходят через mutating и validating admission controllers, на которых и базируются Policy Engines
. Но есть и исключения в виде subresources
:
- pods/exec
- pods/attach
- pods/log
- pods/portforward
На просторах сети можно встретить информацию, что их нельзя обработать как другие ресурсы. И я тоже так думал....
Но оказывается они идут через операцию CONNECT
(не CREATE
, UPDATE
) в виде ресурса PodExecOptions
, дочерним для Pod
, и это можно обработать! Посмотрите:
1) Политика для Kyverno
(для Gatekeeper
должно тоже работать)
2) Статья "Using K8s Admission Controllers to Detect Container Drift at Runtime" с самописным admission controller
(исходный код)
P.S. Ну и про корректный RBAC не забывайте!
P.S.S. Когда-то еще был DenyEscalatingExec ...
>>Click here to continue<<