Chuyển đến nội dung chính

レッスン 16: ネットワーク ポリシー

NetworkPolicy を使用して Kubernetes ネットワークを保護します: ポッド セレクター、イングレス/エグレス ルール、デフォルト拒否パターン。 HTTP メソッド、パス、ヘッダーに基づく L7 ポリシーを備えた高度な Cilium ネットワーク ポリシー。

🔒 DevSecOps — レッスン 16 レッスン 16: ネットワーク ポリシー

KUBERNETES: 基本から高度まで

モジュール 4: ネットワーキング

xdev.asia_

🎯 レッスンの目的

ポッドの内外のトラフィックを制御するための NetworkPolicy を理解します。デフォルトの拒否パターンを実装し、特定のトラフィックを許可し、L7 制御に Cilium ネットワーク ポリシーを使用します。

1. NetworkPolicy が必要な理由

デフォルトでは、Kubernetes はクラスター内のすべてのポッド間のすべてのトラフィックを許可します。すべてのポッドが他のすべてのポッドを呼び出すことができます。これは重大なセキュリティ リスクです。

NetworkPolicy を使用すると、__HTMLTAG_74___ホワイトリスト ルール: 明示的に許可されたトラフィックのみが通過します。

重要: NetworkPolicy は、CNI プラグインがサポートしている場合にのみ機能します (Cilium、Calico、Weave)。 Flannel は NetworkPolicy をサポートしていません。

2.ネットワーク ポリシーの構造

___コードブロック_0___

3.デフォルトの拒否パターン — ベスト プラクティス

「すべて拒否」から始めて、必要なトラフィック ストリームをそれぞれ開きます。

3.1 デフォルトですべての進入を拒否

___コードブロック_1___

3.2 デフォルトですべての下りを拒否

___コードブロック_2___

3.3 DNS を許可する (下りを拒否する場合に重要)

___コードブロック_3___

4.特定のトラフィック パターンを許可

フロントエンド → バックエンド

___コードブロック_4___

クロス名前空間: 他の名前空間から許可__HTMLTAG_98___ ___コードブロック_5___

組み合わせ: ポッド セレクターと名前空間セレクター__HTMLTAG_100___ ___コードブロック_6___

5. Cilium ネットワーク ポリシー — L7

_標準の Kubernetes ネットワーク ポリシーは、L3/L4 (IP、ポート) のみを制御します。 Cilium CiliumNetworkPolicy により、L7 制御が可能になります。

5.1 HTTP メソッドとパス

___コードブロック_7___

5.2 DNS ベースのポリシー

___コードブロック_8___

6.ネットワーク ポリシーの確認とデバッグ

___コードブロック_9___

7.ベスト プラクティス

  • default-deny から開始: すべての実稼働名前空間に適用
  • 最低権限: 絶対に必要なトラフィックのみを開く
  • ラベルの一貫性: NetworkPolicy はラベル セレクターに依存します — ラベルを一貫して設定します
  • _運用環境に適用する前のテスト: ハッブル監査モードを使用して、どのトラフィックがブロックされるかを確認します
  • ポリシーを文書化: 各ポリシーが作成された理由を説明

概要

  • NetworkPolicy: ポッド トラフィックのホワイトリスト ルール
  • デフォルトの拒否パターン: すべてブロック → 特定を許可
  • セレクター: podSelector、namespaceSelector (項目内の AND ロジック、項目間の OR ロジック)
  • Cilium CiliumNetworkPolicy: L7 HTTP、DNS ベースのポリシー
  • CNI サポートが必要: Cilium、Calico (Flannel ではない)