9.11. cert-manager Operator 的网络策略配置


cert-manager Operator for Red Hat OpenShift 提供了预定义的 NetworkPolicy 资源,通过控制其组件的入口和出口流量来增强安全性。默认情况下,这个功能被禁用,以防止在升级过程中出现连接问题或破坏更改。要使用这个功能,您必须在 CertManager 自定义资源(CR)中启用它。

启用默认策略后,您必须手动配置额外的出口规则来允许出站流量。cert-manager Operator for Red Hat OpenShift 需要这些规则才能与 API 服务器和内部 DNS 之外的外部服务通信。

需要自定义出口规则的服务示例包括:

  • ACME 服务器,例如 Let’s Encrypt
  • DNS-01 质询供应商,如 AWS Route53 或 Cloudflare
  • 外部 CA,如 HashiCorp Vault
注意

在以后的版本中预期会默认启用网络策略,这会导致在升级过程中出现连接失败。要准备此更改,请配置所需的出口策略。

9.11.1. 默认入口和出口规则

默认网络策略将以下入口和出口规则应用到每个组件。

Expand
组件Ingress 端口Egress 端口描述

cert-manager

9402

6443, 5353

允许入口流量到指标服务器和到 OpenShift API 服务器的出口流量。

cert-manager-webhook

9402, 10250

6443

允许到指标和 webhook 服务器的入口流量,以及到 OpenShift API 服务器和内部 DNS 服务器的出口流量。

cert-manager-cainjector

9402

6443

允许入口流量到指标服务器和到 OpenShift API 服务器的出口流量。

istio-csr

6443, 9402

6443

允许到 gRPC Istio 证书请求 API、指标服务器和出口流量到 OpenShift API 服务器的入口流量。

9.11.2. 网络策略配置参数

您可以通过更新 CertManager 自定义资源(CR)来为 cert-manager Operator 组件启用并配置网络策略。CR 包括启用默认网络策略和定义自定义出口规则的以下参数。

Expand
字段类型描述

spec.defaultNetworkPolicy

布尔值

指定是否为 cert-manager Operator 组件启用默认网络策略。

重要

启用默认网络策略后,您无法禁用它们。这个限制可防止意外安全降级。在启用此设置前,请确保计划网络策略要求。

spec.networkPolicies

object

定义自定义网络策略配置列表。要应用配置,您必须将 spec.defaultNetworkPolicy 设置为 true

spec.networkPolicies.componentName

string

指定此网络策略目标的组件。唯一有效的值为 CoreController

spec.networkPolicies.egress

object

定义指定组件的出口规则。设置为 {},以允许连接所有外部提供程序。

spec.networkPolicies.egress.ports

object

定义指定供应商的网络端口和协议列表。

spec.networkPolicies.name

string

指定自定义网络策略的唯一名称,用于生成 NetworkPolicy 资源名称。

9.11.3. 网络策略配置示例

以下示例涵盖了与启用网络策略和自定义规则相关的各种场景:

启用网络策略管理示例

apiVersion: operator.openshift.io/v1alpha1
kind: CertManager
metadata:
  name: cluster
spec:
  defaultNetworkPolicy: "true"
Copy to Clipboard Toggle word wrap

允许出口到所有外部签发者供应商的示例

apiVersion: operator.openshift.io/v1alpha1
kind: CertManager
metadata:
  name: cluster
spec:
  defaultNetworkPolicy: "true"
  networkPolicies:
  - name: allow-egress-to-all
    componentName: CoreController
    egress:
     - {}
Copy to Clipboard Toggle word wrap

允许到特定签发者供应商的出口示例

以下配置允许 cert-manager Operator 控制器执行 ACME 质询自我检查。此过程需要连接到 ACME 提供程序、DNS API 端点和递归 DNS 服务器。

apiVersion: operator.openshift.io/v1alpha1
kind: CertManager
metadata:
  name: cluster
spec:
  defaultNetworkPolicy: "true"
  networkPolicies:
  - name: allow-egress-to-acme-server
    componentName: CoreController
    egress:
    - ports:
      - port: 80
        protocol: TCP
      - port: 443
        protocol: TCP
  - name: allow-egress-to-dns-service
    componentName: CoreController
    egress:
    - ports:
      - port: 53
        protocol: UDP
      - port: 53
        protocol: TCP
Copy to Clipboard Toggle word wrap

9.11.4. 验证网络策略创建

您可以验证是否创建了 default 和 custom NetworkPolicy 资源。

先决条件

  • 您已在 CertManager 自定义资源中为 cert-manager Operator for Red Hat OpenShift 启用了网络策略。

流程

  • 运行以下命令,验证 cert-manager 命名空间中的 NetworkPolicy 资源列表:

    $ oc get networkpolicy -n cert-manager
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                                             POD-SELECTOR                              AGE
    cert-manager-allow-egress-to-api-server          app.kubernetes.io/instance=cert-manager   7s
    cert-manager-allow-egress-to-dns                 app=cert-manager                          6s
    cert-manager-allow-ingress-to-metrics            app.kubernetes.io/instance=cert-manager   7s
    cert-manager-allow-ingress-to-webhook            app=webhook                               6s
    cert-manager-deny-all                            app.kubernetes.io/instance=cert-manager   8s
    cert-manager-user-allow-egress-to-acme-server    app=cert-manager                          8s
    cert-manager-user-allow-egress-to-dns-service    app=cert-manager                          7s
    Copy to Clipboard Toggle word wrap

    输出中列出了默认策略以及您创建的任何自定义策略。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat