Развернул Istio 1.10 в кластере AKS. Мы используем шлюз приложений Azure в качестве интерфейса и шлюз Istio в качестве сервера. Трафик из Интернета будет маршрутизироваться следующим образом:
Трафик >> Шлюз приложений Azure >> Шлюз Istio >> Микросервис
У нас есть несколько микросервисов, которые мы хотим сделать доступными через VPN. Поэтому мы используем политику авторизации, которая будет проверять IP-адрес клиента и ограничивать доступ к микросервису на основе IP-адреса клиента.
Ниже приведенная политика авторизации ограничивает доступ к http://hostName/httpbin, если доступ осуществляется не с данного IP-адреса.
Политика авторизации:
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: ip-restriction-policy
namespace: istio-system
spec:
selector:
matchLabels:
istio: ingressgateway
action: DENY
rules:
- from:
- source:
notIpBlocks: [ "24.198.223.80" ]
to:
- operation:
paths: [ "/httpbin/*" ]
Но эта политика не применяется, как видно из журналов шлюза istio, в качестве IP-адреса клиента отправляются два ip-адреса, т. е. 24.198.223.80,172.48.28.4
К IP-адресу клиента добавляется еще один IP-адрес прокси-сервера. Кто-нибудь справляется с таким сценарием?
Если возможно, включите логи шлюза istio.