【问题标题】:Whitelist an IP to access deployment with Kubernetes ingress Istio将 IP 列入白名单以使用 Kubernetes 入口 Istio 访问部署
【发布时间】:2023-03-23 17:54:01
【问题描述】:

我正在尝试将一个 IP 列入白名单以访问我的 Kubernetes 集群中的部署。

我在网上找了一些关于这个的文档,但我只找到了

ingress.kubernetes.io/whitelist-source-range

让入口授予对特定 IP 范围的访问权限。但是,我仍然无法隔离部署。

这里是入口配置 YAML 文件:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-internal
  annotations:
    kubernetes.io/ingress.class: "istio"
    ingress.kubernetes.io/whitelist-source-range: "xxx.xx.xx.0/24, xx.xxx.xx.0/24"
spec:
  rules:
  - host: white.example.com
    http:
      paths:
      - backend:
          serviceName: white
          servicePort: 80

我可以从我的白名单 IP 和手机访问部署(配置中未列入白名单的不同 IP)

有没有人使用 ingress 和 Istio 解决过同样的问题?

我们将不胜感激任何帮助、提示、文档或替代配置。

【问题讨论】:

  • 嗨@Lan 只是想知道您是否已经得到答案?

标签: kubernetes whitelist istio kubernetes-security docker-ingress


【解决方案1】:

看看annotation overview,好像whitelist-source-range不被istio支持:

whitelist-source-range:允许访问的 IP 地址的逗号分隔列表。

nginx、haproxy、流量服务器

【讨论】:

    【解决方案2】:

    我设法使用NetworkPolicy 解决了我的基于 istio 的服务(使用 istio 代理并通过公共 LB 通过 istio 入口网关公开的应用程序)的白名单 IP 地址问题。

    就我而言,这是拓扑:

    公共负载均衡器(在 GKE 中,使用 preserve clientIP mode ==> 专用的 Istio 网关控制器 Pod(请参阅我的回答 here ==> 我的 Pods(istio-proxy sidecar 容器,我的主容器)。

    所以,我设置了 2 个网络策略:

    1. 保护从 互联网连接我的 Istio Ingress Gateway 控制器 Pod 的传入连接的 NetworkPolicy。在我的网络策略配置中,我只需将 spec.podSelector.matchLabels 字段设置为 Dedicated Istio Ingress Gateway Controller Pods

    2. 的 pod 标签
    3. 另一个限制传入连接到我的部署的 NetworkPolicy -> 仅来自 Istio Ingress Gateway Controller pod/部署。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-14
      • 2020-06-23
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      • 2021-08-08
      • 1970-01-01
      • 2017-02-25
      相关资源
      最近更新 更多