Публичным делают входной reverse proxy или балансировщик, бэкенд размещают в закрытом сегменте, базу — в отдельном с доступом только нужных сервисов. Между зонами разрешают конкретные потоки, остальное запрещают. Браузерный JavaScript работает у пользователя: его обращения к API идут через публичный вход и требуют аутентификации и авторизации.
Как сегментировать сеть веб-приложения с фронтендом, бэкендом и базой данных?
Публичная точка входа, закрытые сервисы и БД, минимальные разрешённые потоки. Почему браузерный фронтенд нельзя считать доверенным сетевым сегментом.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Сначала уточните, что означает фронтенд. Сервер выдачи HTML и статических файлов можно разместить за публичным входом, но JavaScript в браузере выполняется на устройстве пользователя и не является доверенным внутренним узлом.
Базовая схема:
- Входная зона: reverse proxy или балансировщик принимает HTTPS из интернета. Административные интерфейсы здесь не публикуют.
- Зона приложений: backend доступен от входного компонента и явно разрешённых сервисов по необходимым портам. Для внешнего клиента маршрут к API проходит через публичный вход.
- Зона данных: СУБД принимает соединения только от нужных приложений и отдельно контролируемого административного доступа. Браузер напрямую к ней не подключается.
OWASP рассматривает сегментацию как ограничение нежелательного перемещения между частями системы. Одна только разница подсетей не обеспечивает запрет: нужны реально применяемые сетевые правила и проверка разрешённых потоков.
Для каждого потока фиксируют источник, назначение, протокол и причину. Отдельно учитывают DNS, обновления, мониторинг, резервное копирование и исходящие интеграции, не открывая им безусловный доступ ко всему.
Сегментация дополняет аутентификацию, прикладную авторизацию и минимальные права БД, но не заменяет их. Скомпрометированный backend уже находится в разрешённой зоне. Для отказоустойчивости проектируют резервирование входа и маршрутов, а изменения правил проверяют вместе с планом отката.