Управление правами Cluster Admin
Всем привет!
Некоторые утилиты, по умолчанию, требуют привилегий Cluster Admin. Это «удобно», но не всегда нужно и зачастую бывает избыточным.
Что можно делать в таких случаях? Вариантов несколько.
Первый – использование принципа «запрещено все, что явно не разрешено». Т.е. можно сделать Role, в которой явно прописать что и с чем можно делать. Однако, такой подход может быть достаточно ресурсоемким.
Второй вариант – использование принципа «разрешено все, что явно не запрещено». И тут появляется сложность: ролевая модель Kubernetes может давать права, но не может их отбирать. Как быть в таком случае?
Ребята из GiantSwarm решили использовать Admission Controller для решения задачи – Kyverno. Они написали политику, которая фильтровала запросы по параметрам – объект воздействия, автор запроса, действие. Таким образом, они смогли "отобрать права" на некоторые действия, даже у Cluster Admin.
Помимо рассматриваемого примера есть еще несколько use case применения Admission Controller применительно к управлению RBAC, которые описаны в статье.
Post #424
905