Одной из больших проблем больших систем с их моделями прав доступа, разращениями и т.д. является переизбыток прав у субъектов (пользователей, групп, сервис аккаунтов). Чаще всего это связано с тем, что кто-то попросил права что-то сделать, доделать, исправить. А после этого данные права так и остаются у пользователя. А со временем этот снежный ком все растет. После чего данные такого пользователя компрометируются, и злоумышленник как раз благодаря тем правам "дай мне на права роли N на несколько минут" и успешно продвигается в системе. Такое можно встретить и в SAP, Oracle и т.д. и Kubernetes не исключение. Полностью исключить такие сценарии ("дай мне права на время") в реальном мире врят ли можно (Хотя, можно закопать все в бюрократической рутине, чтобы было невозможно работать). Что делать? Своевременно забирать те права что не требуются для повседневных задач вашим коллегам. Для Kubernetes можно воспользоваться таким проектом как
kube-janitor. Он делает одну простую вещь - удаляет ресурсы (а те же
RoleBinding,
ClusterRoleBinding это тоже ресурсы) в соответствии с установленным TTL (Time To Live) или датой истечения срока (expiry date). Так что данный проект может позволить не забыть забрать права, которые были даны на время. Добавив еще к проекту своевременное оповещение/напоминание до непосредственно удаления сделало бы
kube-janitor еще удобнее. Весь код на python доступен, так что добавить такую возможность не проблема.
Пример:
kubectl annotate rolebinding TempRepairBinding janitor/ttl=1h