Также увеличивается дистанция, на которой можно соединить несколько Порталов.

Почему стоит использовать Ingress?

В руководстве было пояснено, как работает Ingress и Ingress-контроллеры, приводятся примеры и схемы. Кроме того, здесь были описаны наиболее важные преимущества, которые вы можете получить, настроив в вашем кластере Ingress. Да, с помощью Ingress controller в Kubernetes можно настроить SSL/TLS шифрование. Для этого необходимо предоставить сертификаты SSL/TLS в объекте Ingress и настроить соответствующие правила и параметры. Это обеспечит безопасное соединение между клиентами и вашими сервисами. Правила маршрутизации можно настроить для различных доменных имен и путей.

Правильно работайте с сертификатами и ключами

Данная часть была написана с использованием ChatGPT-o3-mini-high, ведь найти реальные уязвимые манифесты было достаточно проблематично. А показать неправильные настройки – важно, для понимания темы. Ниже несколько реальных (и упрощённых) примеров YAML-манифестов для Istio и Linkerd, которые могут противоречить целям безопасности. Их различают по структуре и размерам кластера и количеству служб в нем. Выбор Ingress controller зависит от конкретных потребностей и требований вашего проекта.

Это гарантирует, что никакой трафик не пройдет незашифрованным и незаверенным. Так, если какой-то левый POD без sidecar попытается стучаться к сервису, он будет отвергнут. Из-за подобных настроек в Linkerd нужно с осторожностью обращаться с ServerAuthorization. По возможности держать all-authenticated режим по-умолчанию, чтобы внутренняя коммуникация шла только между прокси Linkerd (с проверкой сертификатов). А когда открываете что-то наружу, контролируйте CIDR (например, ограничьтесь подсетью вашего ingress). Проще говоря, сделать сервис общедоступным, без требования mTLS.

— Ingress в Kubernetes. Создание Ingress на Minikube

Настройка Ingress controller включает создание и настройку объектов Kubernetes, таких как Ingress и Service. Используя эти объекты, вы можете определить правила маршрутизации для доступа к различным службам в вашем кластере Kubernetes. Вместе с Ingress Controller будет автоматически создан Service типа LoadBalancer (балансировщик нагрузки) с публичным IP-адресом. По умолчанию создается балансировщик нагрузки типа Базовый с резервированием, но вы можете выбрать тип балансировщика нагрузки и настроить для него другие параметры.

Далее, необходимо привязать Ingress к сервису, обеспечивающему функциональность для обработки HTTP-запросов. Виртуальная сеть является ключевым элементом Kubernetes, который обеспечивает коммуникацию между различными сервисами и приложениями. Вместе с тем, для обеспечения связности и доступности приложений на кластере Kubernetes необходим специальный маршрутизатор. Они серьёзно подошли к вопросу изоляции и управляемости mesh. В своем выступлении на IstioCon они рассказали, что развернули Istio в режиме External Control Plane и flat network – ТЫК. Control plane (istiod) у них вынесен в отдельный кластер, а данные (прокси) работают в других.

Мы явно включили Permissive-режим для namespace prod-apps. Это значит, что мфб сервисы в этом неймспейсе будут принимать нешифрованный трафик. Возможно, админ думал, что “ну mTLS же включён, Permissive – это частично защищённый режим”. Если закрывать тему, то ingress/egress точки требуют особого внимания. Интегрированный Nginx Ingress Controller обеспечивает балансировку и терминацию SSL-трафика в сервисе Cloud Containers.

Поэтому mTLS – не панацея, если не защитить ключи и правильно всё настроить. Нужно применять принцип наименьших привилегий, разграничивать доступ сервисов (Authentication+Authorization, о чём ниже) и иметь план на случай компрометации сертификатов (отзыв, замена). Istio по-умолчанию использует UID 1337 для Envoy-процесса и если запустить основное приложение с тем же UID 1337, оно может избежать перенаправления торговля на форекс не по новостям (iptables думает, что это уже прокси). Без должного контроля разработчики (или злоумышленники, эксплуатировавшие уязвимость в приложении) могут намеренно исключить свой под из-под контроля mesh.

  • Например, дополнительно ограничить трафик между неймспейсами стандартными NetworkPolicy (сетевая политика перехватит трафик, даже если mesh по какой-то причине пропустит).
  • Представим, вы установили Istio и хотите постепенно включать mTLS.
  • Ingress – это один из многих способов предоставления доступа к службам в кластере.

Уязвимости Ingress и Egress (границы mesh)

Контроллер Kubernetes Ingress – это реализация Ingress API, которая выполняет функции балансировщика нагрузки и обратного прокси в кластере Kubernetes. Контроллер интерпретирует и реализует правила в соответствии со спецификацией ресурса Ingress. Он следит за изменениями ресурсов кластера и динамически меняет свои настройки, чтобы маршрутизация входящего трафика функционировала правильно. Kubernetes Ingress – это ресурс, который определяет правила маршрутизации внешнего трафика для кластера.

Ingress — механизм, который обеспечивает маршрутизацию входящего трафика на уровне приложения (L7), предоставляется через Ingress Controller. Ingress Controller — прокси-сервер, развернутый в кластере Managed Kubernetes. Выбор контроллера зависит от требований приложений, размещенных в кластере Managed Kubernetes. Таким образом, настройка и использование ingress контроллера позволяет нам предоставить доступ к нашему приложению извне, обеспечивая удобную и гибкую маршрутизацию трафика. В одном кластере может быть запущено несколько ingress-контроллеров. Кроме того, существует несколько различных реализаций ingress-контроллеров, например, NGINX Ingress Controller, Kong Ingress, HAProxy и Traefik.

Компрометация mTLS и сертификатов

  • Нужно применять принцип наименьших привилегий, разграничивать доступ сервисов (Authentication+Authorization, о чём ниже) и иметь план на случай компрометации сертификатов (отзыв, замена).
  • Ingress-контроллер – это точка входа для внешнего запроса, который поступает в кластер.
  • Контроллер Ingress во многом похож на другие контроллеры Kubernetes, например, Deployments, ReplicaSets и StatefulSets.
  • Шифрование и аутентификация сервис-сервис по TLS – основа Zero Trust.

Она включает и корректную конфигурацию самого mesh, и общие DevSecOps-подходы. При правильной настройке следует писать AuthorizationPolicy правила позитивно, перечисляя разрешённые пути, методы, свечи в трейдинге сервисы. Либо сначала создать политику-DENY для конкретного чувствительного маршрута, а затем ALLOW для остального – но нужно тщательно следить, чтобы новые функции тоже попадали под защиту. Общий совет от экспертов и ChatGPT – избегать notPaths и подобных негативных критериев ТЫК.

Прежде чем можно будет использовать Ingress, необходимо установить Ingress Controller. В данном примере мы рассмотрим установку NGINX Ingress Controller, одного из самых популярных решений. Четырехугольник не сработает — надо будет делить его еще одной связью.Внутри поля невозможно делать связи. Есть несколько шаблонов, по которым рекомендуется связывать порталы для наиболее быстрой прокачки.

DaemonSet идеально использовать как единственный Ingress Controller, что бы реверсивное прокси слушало на всех IP адресах воркеров. При этой установке возможно установить несколько Ingress Controller. Уничтожайте Связи врага, атакуя резонаторы на его Связанных Порталах. Для этого используйте бустер/бомбу (XMP) чтобы нанести урон резонатору и уменьшить уровень его ХМ. Когда уровень ХМ всех резонаторов упадет ниже критического уровня Связь разрушится, портал станет нейтральным и вы сможете его захватить, поставив туда свои резонаторы. Чем ближе портал к центру взрыва, тем больше он получит урона.