9.11. cert-manager Operator のネットワークポリシー設定


cert-manager Operator for Red Hat OpenShift には、事前定義済みの NetworkPolicy リソースが含まれています。これは、コンポーネントの Ingress および Egress トラフィックを制御することでセキュリティーを強化するためのものです。この機能は、アップグレード中の接続の問題や重大な変更を防ぐため、デフォルトで無効になっています。この機能を使用するには、CertManager カスタムリソース (CR) で有効にする必要があります。

デフォルトポリシーを有効にした後、送信トラフィックを許可するには、追加の Egress ルールを手動で設定する必要があります。このルールは、cert-manager Operator for Red Hat OpenShift が API サーバーおよび内部 DNS 以外の外部サービスと通信するために必要です。

カスタム Egress ルールを必要とするサービスの例は次のとおりです。

  • ACME サーバー (Let’s Encrypt など)
  • DNS-01 チャレンジプロバイダー (AWS Route53 や Cloudflare など)
  • 外部 CA (HashiCorp Vault など)
注記

今後のリリースでは、ネットワークポリシーがデフォルトで有効になる予定です。これにより、アップグレード中に接続障害が発生する可能性があります。この変更に備えて、必要な Egress ポリシーを設定してください。

9.11.1. デフォルトの Ingress および Egress ルール

デフォルトのネットワークポリシーは、各コンポーネントに次の Ingress および Egress ルールを適用します。

Expand
コンポーネントIngress ポートEgress ポート説明

cert-manager

9402

6443、5353

メトリクスサーバーへの Ingress トラフィックと OpenShift API サーバーへの Egress トラフィックを許可します。

cert-manager-webhook

9402、10250

6443

メトリクスおよび Webhook サーバーへの Ingress トラフィックと、OpenShift API サーバーおよび内部 DNS サーバーへの Egress トラフィックを許可します。

cert-manager-cainjector

9402

6443

メトリクスサーバーへの Ingress トラフィックと OpenShift API サーバーへの Egress トラフィックを許可します。

istio-csr

6443、9402

6443

gRPC Istio 証明書リクエスト API およびメトリクスサーバーへの Ingress トラフィックと、OpenShift API サーバーへの Egress トラフィックを許可します。

9.11.2. ネットワークポリシー設定のパラメーター

CertManager カスタムリソース (CR) を更新することで、cert-manager Operator コンポーネントのネットワークポリシーを有効にして設定できます。この CR には、以下に示すように、デフォルトのネットワークポリシーを有効にするためのパラメーターと、カスタム Egress ルールを定義するためのパラメーターを含めます。

Expand
フィールド説明

spec.defaultNetworkPolicy

boolean

cert-manager Operator コンポーネントのデフォルトのネットワークポリシーを有効にするかどうかを指定します。

重要

デフォルトのネットワークポリシーを一度有効にすると、無効にできなくなります。この制限は、意図しないセキュリティーの低下を防止するためのものです。この設定を有効にする前に、必ずネットワークポリシーの要件を策定してください。

spec.networkPolicies

object

カスタムネットワークポリシー設定のリストを定義します。設定を適用するには、spec.defaultNetworkPolicytrue に設定する必要があります。

spec.networkPolicies.componentName

string

このネットワークポリシーの対象となるコンポーネントを指定します。有効な値は CoreController のみです。

spec.networkPolicies.egress

object

指定したコンポーネントの Egress ルールを定義します。すべての外部プロバイダーへの接続を許可するには、{} に設定します。

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

すべての外部発行者プロバイダーへの Egress を許可する例

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

特定の発行者プロバイダーへの Egress を許可する例

次の設定を使用すると、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. ネットワークポリシーの作成の検証

デフォルトおよびカスタムの NetworkPolicy リソースが作成されていることを検証できます。

前提条件

  • CertManager カスタムリソースで、cert-manager Operator for Red Hat OpenShift のネットワークポリシーを有効にした。

手順

  • 次のコマンドを実行して、cert-manager namespace 内の 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

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat