Kubernetes ネットワーク ポリシーの基礎

Kubernetes ネットワーク ポリシーの基礎

[[436076]]

Kubernetes を通じてアプリケーションをデプロイする前に、Kubernetes ネットワーク ポリシーを理解することが基本的な要件です。

Kubernetes を介して本番環境にデプロイされるクラウドネイティブ アプリケーションがますます増えるにつれて、セキュリティは早い段階で考慮する必要がある重要なチェックリストになります。クラウドネイティブ アプリケーションを設計するときは、事前にセキュリティ ポリシーを埋め込むことが重要です。これを怠ると、後で安全上の問題が発生し、プロジェクトの遅延を引き起こし、最終的には不必要なストレスと費用が発生する可能性があります。

長年にわたり、セキュリティはデプロイメントが本番環境にリリースされる直前まで先延ばしにされてきました。この慣行は、すべての組織が遵守すべきセキュリティ標準があり、それが無視されたり遵守されなかったりして、成果物を達成するために多くのリスクを負うことになるため、プロジェクトの納品の遅延につながります。

Kubernetesの実装を学び始めたばかりの方、Kubernetesの理解ネットワークポリシーネットワークポリシーそれは気が遠くなるかもしれません。ただし、これは、アプリケーションを Kubernetes クラスターにデプロイする前に理解しておく必要がある基本的な要件の 1 つです。 Kubernetes とクラウドネイティブ アプリケーションについて学習する際には、「セキュリティを置き去りにしないでください」ということを忘れないでください。あなたのマントラ。

ネットワークポリシーの概念

ネットワークポリシーネットワークポリシーデータセンター環境でよく使用されるファイアウォールデバイスを置き換えます。ポッドポッドコンピューティングインスタンス、ルーターとスイッチへのネットワークプラグイン、およびストレージエリアネットワーク (SAN) へのボリューム。

デフォルトでは、Kubernetesネットワークポリシーはポッドポッドどこからでもトラフィックを受信します。ポッドのセキュリティを気にしないのであれば、これで問題ないかもしれません。ただし、重要なワークロードを実行している場合は、ポッドを保護する必要があります。クラスター内のトラフィック (入力トラフィックと出力トラフィックを含む) の制御は、ネットワーク ポリシーを通じて実現できます。

ネットワーク ポリシーを有効にするには、ネットワーク ポリシーをサポートするネットワーク プラグインが必要です。そうしないと、適用したルールが役に立たなくなります。

Kubernetes.io にはさまざまなネットワーク プラグインがリストされています。

  • CNIプラグイン: フォローコンテナネットワークインターフェースコンテナネットワークインターフェース相互運用性の実現を目的とした CNI 仕様。
    • Kubernetes は CNI 仕様のバージョン v0.4.0 に準拠しています。
  • Kubernetes プラグイン: ブリッジとホストネイティブの CNI プラグインを使用して基本的なcbr0を実装します。

ネットワークポリシーの適用

ネットワーク ポリシーを適用するには、ネットワーク ポリシーをサポートするネットワーク プラグインを備えた稼働中の Kubernetes クラスターが必要です。

ただし、まず、Kubernetes 環境でネットワーク ポリシーを使用する方法を理解する必要があります。 Kubernetes ネットワーク ポリシーにより、ポッドはどこからでもトラフィックを受信できるようになります。これは理想的な状況ではありません。ポッドのセキュリティを確保するには、ポッドが Kubernetes アーキテクチャ内で通信できるエンドポイントであることを理解する必要があります。

1. ポッド間の通信にはpodSelectorを使用します。

  1. - namespaceSelector :
  2. matchLabels :
  3. project : myproject

2. 名前空間間の通信および名前空間とポッド間の通信には、 namespaceSelectorおよび/またはpodSelectornamespaceSelectorの組み合わせを使用します。 :

  1. - namespaceSelector :
  2. matchLabels :
  3. project : myproject
  4. - podSelector :
  5. matchLabels :
  6. role : frontend

3. ポッドの IP ブロック通信の場合、 ipBlockを使用して、送信元と宛先を決定する IP CIDR ブロックを定義します。

  1. - ipBlock :
  2. cidr : 172.17 . 0.0 / 16
  3.         except :
  4.         - 172.17 . 1.0 / 24

ポッド、名前空間、IP ベースのポリシーの違いに注意してください。ポッドベースおよび名前空間ベースのネットワーク ポリシーでは、セレクターを使用してトラフィックを制御しますが、IP ベースのネットワーク ポリシーでは、IP ブロック (CIDR 範囲) を使用して制御を定義します。

すべてをまとめると、ネットワーク ポリシーは次のようになります。

  1. apiVersion : networking . k8s . io / v1
  2. kind : NetworkPolicy
  3. metadata :
  4. name : test - network - policy
  5.   namespace : default
  6. spec :
  7. podSelector :
  8. matchLabels :
  9. app : backend
  10. policyTypes :
  11.   - Ingress
  12.   - Egress
  13. ingress :
  14.   - from :
  15.     - ipBlock :
  16. cidr : 172.17 . 0.0 / 16
  17.         except :
  18.         - 192.168 . 1.0 / 24
  19.     - namespaceSelector :
  20. matchLabels :
  21. project : myproject
  22.     - podSelector :
  23. matchLabels :
  24. role : frontend
  25. ports :
  26.     - protocol : TCP
  27. port : 6379
  28. egress :
  29.   - to :
  30.     - ipBlock :
  31. cidr : 10.0 . 0.0 / 24
  32. ports :
  33.     - protocol : TCP
  34. port : 5978

上記のネットワークポリシーを参照し、 spec部分に注意してください。このセクションでは、ラベルapp=backendを持つpodSelectorネットワーク ポリシーのターゲットになります。つまり、ネットワーク ポリシーは、 backend呼ばれる特定の名前空間内のアプリケーションを保護します。

このセクションでは、 policyTypesも定義されています。このフィールドは、特定のポリシーが、選択したポッドへの入力トラフィック、選択したポッドへの出力トラフィック、またはその両方に適用されるかどうかを示します。

  1. spec :
  2. podSelector :
  3. matchLabels :
  4. app : backend
  5. policyTypes :
  6.   - Ingress
  7.   - Egress

次に、 IngressEgressセクションを見てみましょう。この定義は、ネットワーク ポリシーの制御を指定します。

まず、 ingress fromセクションを確認します。

この例では、ネットワーク ポリシーにより、次の場所からのポッド接続が許可されます。

  • ipBlock
    • 172.17.0.0/16 を許可する
    • 192.168.1.0/24を拒否
  • namespaceSelector
    • myproject : この名前空間から同じラベル project=myproject を持つすべてのポッドを許可します。
  • podSelector
    • frontend : ラベルrole=frontendに一致するポッドを許可します。
  1. ingress :
  2. - from :
  3.   - ipBlock :
  4. cidr : 172.17 . 0.0 / 16
  5.       except :
  6.       - 192.168 . 1.0 / 24
  7.   - namespaceSelector :
  8. matchLabels :
  9. project : myproject
  10.   - podSelector :
  11. matchLabels :
  12. role : frontend

次に、 egress toセクションを確認します。これにより、ポッドからの送信接続が決定されます。

  • ipBlock
    • 10.0.0.0/24: この CIDR への接続を許可する
    • ポート: TCP とポート 5978 を使用した接続を許可する
  1. egress :
  2. - to :
  3.   - ipBlock :
  4. cidr : 10.0 . 0.0 / 24
  5. ports :
  6.   - protocol : TCP
  7. port : 5978

ネットワークポリシーの制限

ネットワーク ポリシーだけでは Kubernetes クラスターを完全に保護することはできません。既知の制限を克服するには、オペレーティング システム コンポーネントまたはレイヤー 7 ネットワーク テクノロジを使用できます。ネットワーク ポリシーは、IP アドレスとポート レベル、つまり、オープン システム相互接続 (OSI) アーキテクチャのレイヤー 3 または 4 のセキュリティのみに対応することを覚えておく必要があります。

ネットワーク ポリシーで処理できないセキュリティ要件に対処するには、他のセキュリティ ソリューションを使用する必要があります。ここでは、ネットワーク ポリシーを他のテクノロジーで拡張する必要がある、知っておく必要のあるユース ケースをいくつか示します。

要約する

Kubernetes ネットワーク ポリシーを理解することは重要です。これは、データ センター環境で通常使用するファイアウォール ロールを Kubernetes 用に適応させて実装する方法 (置き換えるのではなく) であるためです。これをコンテナ セキュリティの最初のレイヤーと考えてください。ネットワーク ポリシーだけに頼るのは完全なセキュリティ ソリューションにはなりません。

ネットワーク ポリシーは、セレクターとラベルを使用して、ポッドと名前空間にセキュリティを実装します。さらに、ネットワーク ポリシーでは IP 範囲ごとにセキュリティを強制できます。

ネットワーク ポリシーを適切に理解することは、Kubernetes 環境でコンテナ化を安全に導入するための重要なスキルです。

<<:  Kubernetes のマルチコンテナ Pod 設計パターン

>>:  AWS、GCP、Azure との交渉時に避けるべき 6 つのリスク

推薦する

ICTとクラウドコンピューティングの主なトレンドはエッジコンピューティングになる

[[388201]] Reply 社の新しい調査「クラウドからエッジへ」によると、2025 年までに...

分散とクラスタリングは同じものですか?こんな簡単な質問に困惑しないでください。

クラスタリングと分散は、実際にはまったく異なる概念です。 [[284886]]クラスタビジネスは複数...

bgpto: 日本の東京データセンターにある独立サーバーの簡単な評価、実際のテストデータを共有

bgp.to の日本サーバーは、東京と大阪の 2 つのデータセンターにあります。異なるデータセンター...

6 つの主要なインターネット収益モデルの完全な分析 (ケース スタディ付き)

最近では、インターネット企業が数百億、あるいは数千億の価値があると評されるニュースをよく目にし、イン...

inceptionhosting 128M xen VPS 年間19.76ドル

私は何度も inceptionhosting を推薦してきました。評判が良く、VPS の品質が保証さ...

Docker イメージの削減: 1.43G から 22.4MB へ

[[420174]]画像はBaotu.comより以下は、ReactJS プログラムの簡単なオンライン...

ユーザーエクスペリエンスがランキングを左右し、ランキングがマーケティングを左右する

SEO は最近ますます難しくなってきています。現在、SEO はキーワードのランキングだけではなく、ユ...

オンページ SEO チェックリスト

1. URLウェブリンクWeb ページのリンクが SEO フレンドリーかどうかを確認します。SEO ...

劉環斌のSEOVIP戦略の分析

劉環斌は SEO 業界の達人です。 SEO 業界に携わっている人なら、劉環斌の実務経験が素晴らしいの...

ウェブサイトは注意深く作成する必要がありますが、洗練され誠実なものでは人々に印象を与えることはできません。

2月12日、陸松松氏は以前自身のブログで宣伝していたブログコメント宣伝手法を公に否定し、「この宣伝手...

子供の日のメールマーケティングを成功させるには、3 枚のカードを正しくプレイする

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています「六月は花...

新しいウェブサイトの立ち上げを急がないでください。時間をかけて、ウェブサイトを組み込んでください。 - A5 Webmaster Network

私はしばらくウェブサイトの制作に携わっており、そこから多くのことを学びました。新しく立ち上げたウェブ...

トラフィックキャッチャー: SEO キーワード最適化

優れた Web サイトを構築するには、キーワードがトラフィックを獲得するための重要な手段であることは...

マーケティング ホットスポットを共有する場所とマーケティング ホットスポットのトラフィックを誘導する方法 (パート 1)

今日は週末で、家で暇なので、マーケティング ホットスポットについての記事を書きました。私たちの周りで...

テンセントの最後の抵抗

著者はテンセントの現在の発展における問題点を分析し、テンセントの新しい文化創造理念はそれほど普及せず...