kubernetes - 基于客户端 IP 的限制授权策略不适用于 Istio 和 Azure 应用程序网关
问题描述
在 AKS 集群上部署 Istio 1.10。我们使用 Azure 应用程序网关作为前端,使用 Istio 网关作为后端。来自互联网的流量将按如下方式路由:
流量 >> Azure 应用网关 >> Istio 网关 >> 微服务
我们有一些我们希望可以从 VPN 访问的微服务。因此,我们使用授权策略将检查客户端 IP 并根据客户端 IP 限制对微服务的访问。
如果未从给定 IP 访问,则以下授权策略将限制对 http://hostName/httpbin 的访问。
授权政策:
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。有没有人处理这种情况?
解决方案
推荐阅读
- go - 如何告诉 Golang Gob 编码可以序列化包含没有导出字段的结构的结构
- reactjs - 当前日期,年份,月份通过函数做出反应
- sql-server - 创建列作为 XML 内容
- android - Android Studio 错误:构建扫描未发布
- html - 在 HTML 网站项目中调用外部 MVC 视图
- angular - Angular 5 firebase 不工作
- c# - Drools 不会向我的 c# 桌面应用程序返回任何结果
- uwp - 如何设置 InkCanvas 笔颜色的笔触不透明度?
- ember.js - 将 ember 应用程序升级到 3.0 意外令牌 <<
- keras - Keras 连接卷积层:每个卷积层所需的数据格式