Назад | Перейти на главную страницу

Как предотвратить запуск модуля Kubernetes с помощью ServiceAccount с расширенными разрешениями?

Разве это невозможно сделать? Согласно документам:

Системные администраторы, будьте осторожны при предоставлении доступа к созданию подов. Пользователь, которому предоставлено разрешение на создание модулей (или контроллеров, которые создают модули) в пространстве имен, может: читать все секреты в пространстве имен; прочитать все карты конфигурации в пространстве имен; и олицетворять любую учетную запись службы в пространстве имен и предпринимать любые действия, которые эта учетная запись может предпринять. Это применимо независимо от режима авторизации.

https://kubernetes.io/docs/reference/access-authn-authz/authorization/#privilege-escalation-via-pod-creation

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

Есть ли способ достичь того, что я ищу?

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

PodSecurityPolicy плагин допуска позволяет вам контролировать, какие тома и привилегии может содержать спецификация модуля, а ImagePolicyWebhook Плагин допуска позволяет вам контролировать, какие изображения может запускать ваш модуль:

Политика безопасности Pod - это ресурс уровня кластера, который контролирует чувствительные к безопасности аспекты спецификации Pod. В PodSecurityPolicy Объекты определяют набор условий, с которыми модуль должен работать, чтобы быть принятым в систему, а также значения по умолчанию для связанных полей.

В ImagePolicyWebhook Контроллер допуска позволяет внутреннему веб-перехватчику принимать решения о допуске.

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

РЕДАКТИРОВАТЬ:

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

Чтобы найти какие-либо рискованные разрешения в среде, вы можете использовать КубиСкан:

Инструмент для сканирования кластера Kubernetes на предмет рискованных разрешений в модели авторизации Kubernetes Role-based Access Control (RBAC).