首页
/ Defense Unicorns UDS Core 网络配置详解

Defense Unicorns UDS Core 网络配置详解

2025-06-19 22:15:32作者:吴年前Myrtle

前言

在现代云原生环境中,网络安全性至关重要。Defense Unicorns UDS Core 项目通过精细的网络策略配置,为部署在其上的应用提供了强大的网络隔离能力。本文将深入解析 UDS Core 的网络配置机制,帮助管理员根据实际需求定制网络策略。

核心网络策略机制

UDS Core 采用"默认拒绝"的安全模型,所有网络流量在默认情况下都会被阻止。这种设计遵循最小权限原则,确保只有明确允许的通信才能发生。系统通过 Kubernetes Network Policies 实现这一机制,为每个应用创建精确的网络访问规则。

KubeAPI 出口配置

动态更新机制

UDS 操作器(operator)会动态更新使用 remoteGenerated: KubeAPI 自定义选择器的网络策略,以响应 Kubernetes API 服务器 IP 地址的变化。这种机制确保了策略在集群配置变化时保持准确性。

静态 CIDR 配置

在 API 服务器 IP 频繁变化的环境中,动态更新可能导致不必要的开销或不稳定。为此,UDS 提供了配置静态 CIDR 范围的选项:

packages:
  - name: uds-core
    overrides:
      uds-operator-config:
        uds-operator-config:
          values:
            - path: operator.KUBEAPI_CIDR
              value: "172.0.0.0/24"

最佳实践建议:

  1. CIDR 范围应尽可能严格,避免过度开放
  2. 确保配置的 CIDR 范围与实际 API 服务器 IP 匹配
  3. 定期验证网络策略的有效性

Kubernetes 节点 CIDR 配置

动态节点管理

UDS 操作器同样会动态更新使用 remoteGenerated: KubeNodes 自定义选择器的网络策略,响应集群中节点的增减变化。

静态节点配置

对于需要固定节点访问规则的环境,可以配置静态 CIDR 范围:

packages:
  - name: uds-core
    overrides:
      uds-operator-config:
        uds-operator-config:
          values:
            - path: operator.KUBENODE_CIDRS
              value: "172.28.0.2/32,172.28.0.3/32,172.28.0.4/32"

配置说明:

  • 使用逗号分隔多个 IP 地址
  • 每个 IP 地址应使用 /32 表示法
  • 适用于节点 IP 相对稳定的环境

应用特定网络策略配置

Prometheus 监控栈

Prometheus 栈默认配置了必要的网络策略。如需扩展访问权限,例如允许 Alertmanager 向外部服务发送警报:

overrides:
  kube-prometheus-stack:
    uds-prometheus-config:
      values:
        - path: additionalNetworkAllow
          value:
            - direction: Egress
              selector:
                app.kubernetes.io/name: alertmanager
              remoteGenerated: Anywhere
              description: "Alertmanager 外部通知"
              port: 443

Vector 日志收集

配置 Vector 向外部日志存储服务发送数据:

overrides:
  vector:
    uds-vector-config:
      values:
        - path: additionalNetworkAllow
          value:
            - direction: Egress
              selector:
                app.kubernetes.io/name: vector
              remoteNamespace: elastic
              remoteSelector:
                app.kubernetes.io/name: elastic
              port: 9090
              description: "Elastic 存储"

Grafana 可视化

允许 Grafana 连接额外的数据源:

overrides:
  grafana:
    uds-grafana-config:
      values:
        - path: additionalNetworkAllow
          value:
            - direction: Egress
              selector:
                app.kubernetes.io/name: grafana
              remoteNamespace: thanos
              remoteSelector:
                app.kubernetes.io/name: thanos
              port: 9090
              description: "Thanos 查询"

NeuVector 安全监控

配置 NeuVector 发送安全警报:

overrides:
  neuvector:
    uds-neuvector-config:
      values:
        - path: additionalNetworkAllow
          value:
            - direction: Egress
              selector:
                app: neuvector-manager-pod
              remoteGenerated: Anywhere
              description: "NeuVector 警报通知"
              port: 443

Keycloak 身份认证

允许 Keycloak 连接外部身份提供商:

overrides:
  keycloak:
    keycloak:
      values:
        - path: additionalNetworkAllow
          value:
            - direction: Egress
              selector:
                app.kubernetes.io/name: keycloak
              remoteCidr: 72.123.123.123
              description: "外部 IdP 连接"
              port: 443

Loki 日志存储

配置 Loki 连接外部缓存服务:

overrides:
  loki:
    uds-loki-config:
      values:
        - path: additionalNetworkAllow
          value:
            - direction: Egress
              selector:
                app.kubernetes.io/name: loki
              remoteCidr: 72.123.123.123
              description: "外部缓存连接"
              port: 6379

网络策略配置通用规范

所有网络策略扩展配置都遵循相同的结构规范:

- direction: Egress/Ingress  # 流量方向
  selector: {}               # 本地 Pod 选择器
  remoteGenerated: Anywhere  # 或特定选择器
  remoteNamespace: ""        # 远程命名空间
  remoteSelector: {}         # 远程 Pod 选择器
  remoteCidr: ""            # 远程 CIDR
  port: 443                 # 目标端口
  description: ""           # 策略描述

安全配置建议

  1. 最小权限原则:只开放必要的端口和协议
  2. 定期审计:检查网络策略的实际使用情况
  3. 环境隔离:区分开发、测试和生产环境的网络策略
  4. 文档记录:为每个自定义策略添加清晰的描述
  5. 变更管理:对网络策略变更实施严格的审批流程

总结

UDS Core 提供了灵活而强大的网络策略配置机制,既支持动态适应集群变化,也允许管理员根据特定需求进行精细控制。通过合理配置这些策略,可以在确保安全性的同时满足各种应用场景的网络需求。建议管理员充分理解业务需求后,按照最小权限原则进行配置,并建立定期审查机制,确保网络策略始终符合安全要求。

登录后查看全文
热门项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
179
263
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
869
514
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
130
183
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
295
331
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
333
1.09 K
harmony-utilsharmony-utils
harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
ArkTS
18
0
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.08 K
0
kernelkernel
deepin linux kernel
C
22
5
WxJavaWxJava
微信开发 Java SDK,支持微信支付、开放平台、公众号、视频号、企业微信、小程序等的后端开发,记得关注公众号及时接受版本更新信息,以及加入微信群进行深入讨论
Java
829
22
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
601
58