Выбор ответа Senior ConfigMap и Secret обновлено

Право создавать поды и секреты

Вопрос

Разработчику запретили get secrets в namespace prod, но разрешили создавать поды. Может ли он прочитать секрет базы?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Да: создать под, который смонтирует секрет как том или переменную, и вывести значение. Под получает доступ к любому Secret своего namespace по ссылке, и проверка прав на сам Secret при этом не выполняется для пользователя, создавшего под.

Варианты ответа

  1. Нет: RBAC запрещает ему get secrets, и под не сможет смонтировать секрет от его имени
  2. Только если секрет помечен immutable, иначе kubelet проверит права создателя пода
  3. Нет: значения секретов видит только kubelet, в под они попадают в зашифрованном виде
  4. Да: создать под, который смонтирует секрет как том или переменную, и вывести значениеправильный ответ

Разбор

Под получает доступ к любому Secret своего namespace по ссылке, и проверка прав на сам Secret при этом не выполняется для пользователя, создавшего под. Поэтому право создавать поды (или Deployment, Job) в namespace фактически даёт доступ к его секретам. Защита: разносить секреты по namespace, ограничивать права на создание рабочих нагрузок, использовать внешние хранилища с собственной авторизацией.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.