Обеспечение безопасности наших внутренних инструментов

Использование Cloudflare Access для блокировки наших внутренних инструментов, размещаемых самостоятельно

В компании ente мы самостоятельно размещаем множество инструментов с открытым исходным кодом. Хотя установка и поддержка этих инструментов требует от нас некоторых усилий, это помогает сократить объем данных, которыми мы делимся с третьими сторонами. Мы используем Sentry для отчетности об ошибках, Grafana для мониторинга и Metabase для метрик продукта (чтобы помочь таким людям, как я, которые не знают SQL).

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

Я начал задаваться вопросом: «Как Cloudflare еще не решил эту проблему?» — и решил пошарить по лабиринту их сайта. И о ужас, они действительно уже решили эту проблему.

Представляем, Cloudflare — Zero Trust Access.

Проще говоря, Zero Trust Access размещает страницу входа в систему перед вашей конечной точкой, которая проверяет подлинность пользователей (по широкому спектру векторов) и сохраняет результат в cookie, который затем передается Cloudflare при каждом последующем запросе.

Верификация по электронной почте с помощью «одноразового PIN-кода» предоставляется из коробки, которая может быть объединена с правилами, специфичными для домена, чтобы служить отправной точкой.

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

Мы разместили все наши внутренние инструменты в Access, и все казалось прекрасным.

Пока.

Мы поняли, что это нарушило отчет об ошибках в Sentry. Все POST запросы от клиентов, чтобы сообщить об ошибках, начали терпеть неудачу из-за нового требования аутентификации.

Чтобы обойти эту проблему, Cloudflare предоставляет услугу аутентификации. Это просто причудливый способ сказать «передайте нам эти секреты в заголовках, и мы вас пропустим». Мы настроили Cloudflare Worker в качестве прокси-сервера, который будет передавать нам эти заголовки, и настроили Sentry SDK на использование этого Worker в качестве туннеля, и с тех пор все было хорошо.


Мы обнаружили, что Zero Trust Access — это простой способ защиты внутренних конечных точек. Позже мы узнали, что Google также уже давно участвует в этой игре с компанией Beyond Corp.

Если у вас есть идеи о том, что мы могли бы сделать лучше, дайте нам знать, написав по адресу security@ente.io. Если вы просто хотите следить за нашими попытками справиться с dev-ops, следите за нами в Twitter или поздоровайтесь в Discord.

Оцените статью
Procodings.ru
Добавить комментарий