NetworkPolicy

Istio може за бажанням розгортати ресурси Kubernetes NetworkPolicy для своїх компонентів. Це корисно в кластерах, які застосовують мережеву політику default-deny, що є поширеною вимогою в захищених середовищах.

Коли цю функцію увімкнено, ресурси NetworkPolicy створюються для istiod, istio-cni, ztunnel та шлюзів, встановлених через Helm, визначаючи вхідні порти, необхідні кожному компоненту. Весь вихідний трафік типово дозволений, оскільки таким компонентам, як istiod, потрібно підключатися до визначених користувачем точок доступу (наприклад, JWKS URL). Шлюзова NetworkPolicy автоматично включає службові порти, налаштовані у Helm-значеннях шлюзу.

Увімкнення NetworkPolicy

Щоб увімкнути NetworkPolicy, встановіть global.networkPolicy.enabled=true під час інсталяції.

За допомогою istioctl:

$ istioctl install --set values.global.networkPolicy.enabled=true

З Helm передайте налаштування кожному чарту:

$ helm install istiod istio/istiod -n istio-system --set global.networkPolicy.enabled=true
$ helm install istio-cni istio/cni -n istio-system --set global.networkPolicy.enabled=true
$ helm install ztunnel istio/ztunnel -n istio-system --set global.networkPolicy.enabled=true
$ helm install istio-ingressgateway istio/gateway -n istio-ingress --set global.networkPolicy.enabled=true

Перегляд згенерованих політик

NetworkPolicy кожного компонента дозволяє вхідний трафік на конкретних портах, необхідних цьому компоненту, і дозволяє весь вихідний трафік (оскільки таким компонентам, як istiod, потрібно підключатися до визначених користувачем точок доступу, таких як JWKS URL).

Ви можете переглянути точні ресурси NetworkPolicy, які будуть створені, за допомогою helm template:

$ helm template istiod istio/istiod -n istio-system --set global.networkPolicy.enabled=true -s templates/networkpolicy.yaml
$ helm template istio-cni istio/cni -n istio-system --set global.networkPolicy.enabled=true -s templates/networkpolicy.yaml
$ helm template ztunnel istio/ztunnel -n istio-system --set global.networkPolicy.enabled=true -s templates/networkpolicy.yaml

Щоб переглянути політики після інсталяції:

$ kubectl get networkpolicy -n istio-system

Налаштування NetworkPolicy

Ресурси NetworkPolicy, створені Istio, навмисно широкі — правила вхідного трафіку використовують порожні селектори from, тобто трафік дозволений з будь-якого джерела на вказаних портах. Це тому, що джерело легітимного трафіку (наприклад, kube-apiserver, Prometheus, podʼи застосунків) відрізняється між кластерами.

Якщо вам потрібні суворіші політики, ви можете вимкнути вбудовану NetworkPolicy від Istio та створити власні, використовуючи вихідні дані helm template як відправну точку.

Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

Дякуємо за ваш відгук!