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


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

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

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

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

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

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

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

Expand
ComponentIngress ポートEgress ポート説明

cert-manager

9402

6443、5353

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

cert-manager-webhook

9402、10250

6443

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

cert-manager-cainjector

9402

6443

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

istio-csr

6443、9402

6443

gRPC Istio 証明書要求 API、メトリクスサーバーへの受信トラフィックと、OpenShift API サーバーへの送信トラフィックを許可します。

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

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

Expand
フィールド説明

spec.defaultNetworkPolicy

boolean

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

重要

デフォルトのネットワークポリシーを有効にすると、無効にすることはできません。この制限により、偶発的なセキュリティーの低下を防止できます。この設定を有効にする前に、ネットワークポリシーの要件を計画してください。

spec.networkPolicies

object

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

spec.networkPolicies.コンポーネント名

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

すべての外部発行者プロバイダーへの 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 名前空間内の 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