Kubernetes RBAC: как разрешить exec только определенному модулю, созданному при развертывании - PullRequest
0 голосов
/ 23 октября 2018

У меня есть пространство имен приложений с 30 сервисами.Большинство из них - развертывания без сохранения состояния, смешанные с некоторыми StatefulSets и т. Д. Достаточно стандартная вещь.

Мне нужно предоставить специальному пользователю роль, которая может быть выполнена только в определенном модуле.В настоящее время RBAC предоставляет право exec всем модулям в пространстве имен, но мне нужно его ужесточить.

Проблема заключается в том, что блоки (ы) создаются развертыванием configurator, а названия (ии) блоковтаким образом «генерируются», configurator-xxxxx-yyyyyy.Поскольку вы не можете использовать glob (т. Е. configurator-*), а роль не может предоставить exec для развертываний напрямую.

До сих пор я думал о:

  • Преобразовании развертывания в StatefulSet илипростой Pod, поэтому Pod будет иметь известное не сгенерированное имя, и glob не понадобится
  • Перемещение развертывания в отдельное пространство имен, поэтому глобальное право exec не является проблемой

Обе они работают, но ни одна не оптимальна.Есть ли способ написать правильную роль для этого?

1 Ответ

0 голосов
/ 23 октября 2018

RBAC, как он понимается сейчас, не позволяет фильтровать ресурсы по другим атрибутам, кроме пространства имен и имени ресурса.Обсуждение открыто здесь .

Таким образом, пространства имен являются наименьшей частью при авторизации доступа к модулям.Службы должны быть разделены в пространствах имен, исходя из того, что пользователям может потребоваться доступ к ним.

На данный момент оптимальным решением является перемещение этого развертывания в другое пространство имен, поскольку для него требуются другие правила доступа, чем для других развертываний в исходном пространстве имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...