You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过IP/IP段限制Azure K8s中Keycloak管理控制台的访问?

解决方案

1. 修复真实客户端IP识别问题

Azure AKS的负载均衡器会将客户端真实IP携带在X-Forwarded-For请求头中,但Nginx Ingress默认不会信任这个头部,导致它识别到的请求来源是LB的IP而非客户端真实IP。需要修改Ingress Controller的配置来启用真实IP解析:

修改ConfigMap

找到Nginx Ingress的ConfigMap(通常位于kube-system命名空间,名称为nginx-ingress-controller),添加以下配置项:

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-ingress-controller
  namespace: kube-system
data:
  use-forwarded-headers: "true"
  # 替换为你的AKS负载均衡器实际IP段,生产环境建议精准配置,测试可临时用0.0.0.0/0
  proxy-real-ip-cidr: "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
  real-ip-header: "X-Forwarded-For"

重启Ingress Controller使配置生效

kubectl rollout restart deployment nginx-ingress-controller -n kube-system

2. 正确配置/admin路径的IP限制(解决404问题)

之前的404错误是因为Ingress路径规则未正确将请求转发至Keycloak服务,反而尝试读取Nginx本地静态文件。要实现仅限制管理控制台(/admin路径)的IP访问,需拆分创建两个Ingress资源:

管理控制台专用Ingress(带IP白名单)

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: keycloak-admin-ingress
  annotations:
    # 填入允许访问的IP/IP段,多个用逗号分隔
    nginx.ingress.kubernetes.io/whitelist-source-range: "192.168.1.0/24,10.0.0.5/32"
spec:
  ingressClassName: nginx
  rules:
  - host: account.qa.oly.nova-x.co
    http:
      paths:
      - path: /admin
        pathType: Prefix
        backend:
          service:
            name: keycloak-service # 替换为你的Keycloak服务名称
            port:
              number: 8080

公共路径Ingress(无IP限制)

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: keycloak-public-ingress
spec:
  ingressClassName: nginx
  rules:
  - host: account.qa.oly.nova-x.co
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: keycloak-service
            port:
              number: 8080

应用配置

kubectl apply -f keycloak-admin-ingress.yaml
kubectl apply -f keycloak-public-ingress.yaml

3. 验证效果

  • 从允许的IP访问https://account.qa.oly.nova-x.co/admin,可正常进入Keycloak管理控制台;
  • 从非允许IP访问上述路径,会返回403 Forbidden;
  • 访问Keycloak其他公共路径(如/auth),所有IP均可正常访问。

内容的提问来源于stack exchange,提问作者One Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 04:35:40