Выбор ответа Middle Безопасность контейнеров обновлено

Минимальные capabilities

Вопрос

Веб-серверу в контейнере нужно слушать порт 80, больше никаких привилегий. Как правильно запустить?

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

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

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

Коротко

Правильный ответ: --cap-drop=ALL --cap-add=NETBINDSERVICE. Принцип минимальных прав: убрать все capabilities и вернуть только ту, что нужна для привязки к порту ниже 1024.

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

  1. --privileged --user nobody
  2. --cap-drop=ALL --cap-add=NET_BIND_SERVICEправильный ответ
  3. --cap-add=ALL --read-only --pids-limit=100
  4. --user root --security-opt seccomp=unconfined

Разбор

Принцип минимальных прав: убрать все capabilities и вернуть только ту, что нужна для привязки к порту ниже 1024. Ещё лучше запускать сервер на 8080 от непривилегированного пользователя и публиковать порт наружу как 80. --privileged и --cap-add=ALL дают всё, а отключение seccomp снимает фильтр системных вызовов.

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

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