Разве это невозможно сделать? Согласно документам:
Системные администраторы, будьте осторожны при предоставлении доступа к созданию подов. Пользователь, которому предоставлено разрешение на создание модулей (или контроллеров, которые создают модули) в пространстве имен, может: читать все секреты в пространстве имен; прочитать все карты конфигурации в пространстве имен; и олицетворять любую учетную запись службы в пространстве имен и предпринимать любые действия, которые эта учетная запись может предпринять. Это применимо независимо от режима авторизации.
Я хотел бы, чтобы пользователь мог создать модуль, но если он укажет ServiceAccount в спецификации модуля, у которого больше разрешений, чем у них, запретите действие. Более того, им не должно быть разрешено указывать ServiceAccount, даже если у них есть разрешения на создание подов, без дополнительного специального разрешения.
Есть ли способ достичь того, что я ищу?
Вам необходимо использовать плагины допуска, чтобы контролировать спецификации, объемы и разрешенные изображения.
PodSecurityPolicy плагин допуска позволяет вам контролировать, какие тома и привилегии может содержать спецификация модуля, а ImagePolicyWebhook Плагин допуска позволяет вам контролировать, какие изображения может запускать ваш модуль:
Политика безопасности Pod - это ресурс уровня кластера, который контролирует чувствительные к безопасности аспекты спецификации Pod. В
PodSecurityPolicy
Объекты определяют набор условий, с которыми модуль должен работать, чтобы быть принятым в систему, а также значения по умолчанию для связанных полей.В
ImagePolicyWebhook
Контроллер допуска позволяет внутреннему веб-перехватчику принимать решения о допуске.
С помощью описанных выше методов вы можете предотвратить запуск привилегированных модулей и управлять повышением привилегий, контролируя чувствительные к безопасности атрибуты спецификации модуля.
РЕДАКТИРОВАТЬ:
Если монтирования привилегированных сервисных аккаунтов на подах избежать невозможно, настоятельно рекомендуется предоставить им минимально возможные разрешения. Также рекомендуется выполнить проверку разрешений в среде и удалить ненужные разрешения.
Чтобы найти какие-либо рискованные разрешения в среде, вы можете использовать КубиСкан:
Инструмент для сканирования кластера Kubernetes на предмет рискованных разрешений в модели авторизации Kubernetes Role-based Access Control (RBAC).