
Как мы строили безопасную микросервисную архитектуру с Service Mesh: интеграция с базами данных и масштабированиe
spbvalentine 6 минут назад Как мы строили безопасную микросервисную архитектуру с Service Mesh: интеграция с базами данных и масштабированиe Средний 9 мин 27 Блог компании Сбер Сетевые технологии * DevOps *...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: spbvalentine 6 минут назад Как мы строили безопасную микросервисную архитектуру с Service Mesh: интеграция с базами данных и масштабированиe Средний 9 мин 27 Блог компании Сбер Сетевые технологии * DevOps * Информационная безопасность * Системное администрирование * Кейс Привет, Habr! Меня зовут Валентин, я DevOps-инженер команды Platform V Kintsugi. Мы занимаемся развитием облачного сервиса и на практике регулярно сталкиваемся как с архитектурными задачами построения распределённых систем, так и с вопросами обеспечения их безопасности.
В предыдущей части мы подробно разобрали механизм делегирования TLS-соединения на уровень Service Mesh и показали, как Egress Gateway может выступать полноценным участником PostgreSQL handshake. Однако этот сценарий рассматривался в упрощённой конфигурации — один сервис, один сертификат, одно подключение. В реальной системе всё устроено иначе: разные сервисы используют разные учётные записи, разные сертификаты и обращаются к одним и тем же внешним системам.
Технические детали
Это приводит к необходимости динамически выбирать TLS-политику и корректно маршрутизировать TCP-трафик в зависимости от источника. Именно здесь начинается самое интересное! Представим сценарий, в котором несколько сервисов обращаются к одному серверу PostgreSQL, но при этом каждый сервис:использует отдельную техническую учётную запись; обладает собственным клиентским сертификатом;работает со своей логической базой данных.
Разберём, как в таких условиях выстраивается взаимодействие и какие ограничения возникают при попытке централизовать управление безопасным подключением. Смоделируем описанную ситуацию, развернув два сервиса — psql-postgres и psql-kintsugi. Каждый из них будет устанавливать защищённое соединение со своей базой данных, расположенной на сервере СУБД, при этом шифрование трафика будет выполняться на стороне Egress Gateway с использованием собственной технической учётной записи и соответствующего клиентского сертификата.
На этом этапе возникает ключевой вопрос: каким образом Egress Gateway должен определить, какой именно сертификат необходимо использовать для конкретного соединения? Предположим, что сервису psql-postgres необходимо аутентифицироваться на сервере базы данных с использованием учётной записи postgres (CN=postgres), а для сервиса psql-kintsugi создадим отдельную учётную запись kintsugi и выпустим соответствующий сертификат (CN=kintsugi). Попробуем решить эту задачу средствами Service Mesh, разделив трафик на уровне sidecar с использованием sourceLabels и subsets, и сопоставив каждому потоку свою TLS-политику.
Для этого последовательно опишем необходимые ресурсы. Регистрируем внешний PostgreSQL-сервер в реестре Istio:--- apiVersion: networking. io/v1beta1 kind: ServiceEntry metadata: name: postgres-se-tls-origin spec: endpoints: - address: 10.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





