2.4. AdminNetworkPolicy の Egress ノードとネットワークピア


このセクションでは、nodesnetworks のピアを説明します。管理者は、このセクションの例を使用して、クラスター内のノースバウンドトラフィックを制御するための AdminNetworkPolicyBaselineAdminNetworkPolicy を設計できます。

2.4.1. AdminNetworkPolicy および BaselineAdminNetworkPolicy のノースバウンドトラフィック制御

ANP と BANP では、East-West トラフィック制御のサポートに加えて、管理者がクラスターから出るノースバウンドトラフィックや、ノードからクラスター内の他のノードに向かうトラフィックを制御することもできます。エンドユーザーは次のことができます。

  • nodes Egress ピアを使用してクラスターノードへの Egress トラフィック制御を実装する
  • nodes または networks の Egress ピアを使用して Kubernetes API サーバーへの Egress トラフィック制御を実装する
  • networks ピアを使用してクラスター外の外部宛先への Egress トラフィック制御を実装する
注記

ANP および BANP の場合、nodesnetworks のピアは Egress ルールに対してのみ指定できます。

2.4.1.1. ノードピアを使用してクラスターノードへの Egress トラフィックを制御する

nodes ピアを使用すると、管理者は Pod からクラスター内のノードへの Egress トラフィックを制御できます。この利点は、クラスターにノードを追加したり、クラスターからノードを削除したりするときにポリシーを変更する必要がないことです。

次の例では、ノードセレクターピアを使用して、restrictedconfidential、または internal レベルのセキュリティーを持つ任意の namespace によるポート 6443 上の Kubernetes API サーバーへの Egress トラフィックを許可します。また、セキュリティーレベルが restrictedconfidential、または internal のいずれかである namespace からクラスター内のすべてのワーカーノードへのトラフィックも拒否します。

例2.8 nodes ピアを使用した ANP Allow Egress の例

apiVersion: policy.networking.k8s.io/v1alpha1
kind: AdminNetworkPolicy
metadata:
  name: egress-security-allow
spec:
  egress:
  - action: Deny
    to:
    - nodes:
        matchExpressions:
        - key: node-role.kubernetes.io/worker
          operator: Exists
  - action: Allow
    name: allow-to-kubernetes-api-server-and-engr-dept-pods
    ports:
    - portNumber:
        port: 6443
        protocol: TCP
    to:
    - nodes: 
1

        matchExpressions:
        - key: node-role.kubernetes.io/control-plane
          operator: Exists
    - pods: 
2

        namespaceSelector:
          matchLabels:
            dept: engr
        podSelector: {}
  priority: 55
  subject: 
3

    namespaces:
      matchExpressions:
      - key: security 
4

        operator: In
        values:
        - restricted
        - confidential
        - internal
Copy to Clipboard Toggle word wrap
1
matchExpressions フィールドを使用して、クラスター内のノードまたはノードセットを指定します。
2
dept: engr のラベルが付けられたすべての Pod を指定します。
3
ネットワークポリシーで使用されるラベルに一致する namespace を含む ANP のサブジェクトを指定します。この例は、security レベルが restrictedconfidential、または internal である namespace のいずれかに一致します。
4
matchExpressions フィールドのキー/値のペアを指定します。

2.4.1.2. ネットワークピアを使用して外部の宛先への Egress トラフィックを制御する

クラスター管理者は、networks ピアで CIDR 範囲を使用し、Pod から networks フィールドで指定された CIDR 範囲内の IP アドレスで設定された宛先に送信される Egress トラフィックを制御するポリシーを適用できます。

以下の例では、networks ピアを使用し、ANP ポリシーと BANP ポリシーを組み合わせて出力トラフィックを制限します。

重要

ANP および BANP の namespace フィールドで空のセレクター ({}) を使用する場合は注意が必要です。空のセレクターを使用する場合は、OpenShift namespace も選択します。

ANP または BANP Deny ルールで 0.0.0.0/0 の値を使用する場合は、Deny0.0.0.0/0 に設定する前に、必要な宛先に優先度の高い ANP Allow ルールを設定する必要があります。

例2.9 networks ピアを使用した ANP と BANP の例

apiVersion: policy.networking.k8s.io/v1alpha1
kind: AdminNetworkPolicy
metadata:
  name: network-as-egress-peer
spec:
  priority: 70
  subject:
    namespaces: {} # Use the empty selector with caution because it also selects OpenShift namespaces as well.
  egress:
  - name: "deny-egress-to-external-dns-servers"
    action: "Deny"
    to:
    - networks:
1

      - 8.8.8.8/32
      - 8.8.4.4/32
      - 208.67.222.222/32
    ports:
      - portNumber:
          protocol: UDP
          port: 53
  - name: "allow-all-egress-to-intranet"
    action: "Allow"
    to:
    - networks: 
2

      - 89.246.180.0/22
      - 60.45.72.0/22
  - name: "allow-all-intra-cluster-traffic"
    action: "Allow"
    to:
    - namespaces: {} # Use the empty selector with caution because it also selects OpenShift namespaces as well.
  - name: "pass-all-egress-to-internet"
    action: "Pass"
    to:
    - networks:
      - 0.0.0.0/0 
3

---
apiVersion: policy.networking.k8s.io/v1alpha1
kind: BaselineAdminNetworkPolicy
metadata:
  name: default
spec:
  subject:
    namespaces: {} # Use the empty selector with caution because it also selects OpenShift namespaces as well.
  egress:
  - name: "deny-all-egress-to-internet"
    action: "Deny"
    to:
    - networks:
      - 0.0.0.0/0 
4

---
Copy to Clipboard Toggle word wrap
1
networks を使用して、クラスター外の CIDR ネットワークの範囲を指定します。
2
リソースからのクラスター内トラフィックの CIDR 範囲を指定します。
3 4
networks 値を 0.0.0.0/0 に設定して、すべてに対して Deny Egress を指定します。Deny0.0.0.0/0 に設定する前に、必要な宛先に対して優先度の高い Allow ルールが設定されていることを確認してください。これにより、Kubernetes API および DNS サーバーを含むすべてのトラフィックが拒否されます。

network-as-egress-peer ANP と、networks ピアを使用する default の BANP を組み合わせると、次の Egress ポリシーが適用されます。

  • すべての Pod が、リストされた IP アドレスの外部 DNS サーバーと通信できない。
  • すべての Pod が、会社のイントラネットの残りの部分と通信できる。
  • すべての Pod が、他の Pod、ノード、およびサービスと通信できる。
  • どの Pod もインターネットと通信できない。最後の ANP Pass ルールと強力な BANP Deny ルールを組み合わせることで、クラスター内のトラフィックを保護するガードレールポリシーが作成されます。

2.4.1.3. ノードピアとネットワークピアを一緒に使用する

クラスター管理者は、ANP および BANP ポリシーで nodesnetworks ピアを組み合わせることができます。

例2.10 nodesnetworks ピアの例

apiVersion: policy.networking.k8s.io/v1alpha1
kind: AdminNetworkPolicy
metadata:
  name: egress-peer-1 
1

spec:
  egress: 
2

  - action: "Allow"
    name: "allow-egress"
    to:
    - nodes:
        matchExpressions:
        - key: worker-group
          operator: In
          values:
          - workloads # Egress traffic from nodes with label worker-group: workloads is allowed.
    - networks:
      - 104.154.164.170/32
    - pods:
        namespaceSelector:
          matchLabels:
            apps: external-apps
        podSelector:
          matchLabels:
            app: web # This rule in the policy allows the traffic directed to pods labeled apps: web in projects with apps: external-apps to leave the cluster.
  - action: "Deny"
    name: "deny-egress"
    to:
    - nodes:
        matchExpressions:
        - key: worker-group
          operator: In
          values:
          - infra # Egress traffic from nodes with label worker-group: infra is denied.
    - networks:
      - 104.154.164.160/32 # Egress traffic to this IP address from cluster is denied.
    - pods:
        namespaceSelector:
          matchLabels:
            apps: internal-apps
        podSelector: {}
  - action: "Pass"
    name: "pass-egress"
    to:
    - nodes:
        matchExpressions:
        - key: node-role.kubernetes.io/worker
          operator: Exists # All other egress traffic is passed to NetworkPolicy or BANP for evaluation.
  priority: 30 
3

  subject: 
4

    namespaces:
      matchLabels:
        apps: all-apps
Copy to Clipboard Toggle word wrap
1
ポリシーの名前を指定します。
2
nodes および networks ピアの場合、Egress として ANP のノースバウンドトラフィック制御のみを使用できます。
3
ANP の優先順位を指定して、評価する順序を決定します。優先度の低いルールの方が優先順位が高くなります。ANP は 0 - 99 の値を受け入れます。0 が最高の優先度、99 が最低の優先度です。
4
ポリシーのルールを適用するクラスター内の Pod のセットを指定します。この例では、すべての namespace で apps: all-apps ラベルが付いたすべての Pod がポリシーの 対象 になります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat