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 つのリスク

推薦する

#ブラックフライデー#: Linode は新規ユーザーと既存ユーザーの両方に賞金をプレゼントします!

VPS 業界のベテラン ブランドである Linode は、このブラック フライデーにちょっとしたサプ...

第 2 世代のクラウド コンピューティング戦略とは何ですか?

現在、クラウド コンピューティングの導入は、ホスト型データ センター インフラストラクチャと同様の傾...

ファーウェイクラウドはEIインテリジェントボディを構築し、「包括的AI」の進化を促進

[51CTO.com からのオリジナル記事] クラウド コンピューティングが非常に広範囲に影響を及ぼ...

Redis分散ロックの8つの落とし穴について話す

[[425706]]序文分散システムでは、Redis 分散ロックは比較的シンプルで効率的であり、多く...

APP プロモーションに関する 10 大噂 - ASO を邪魔しないでください!

PC 時代の検索エンジンの盛衰を目の当たりにしてきた経験豊富なSEOウェブマスターとして、私は有能な...

CitrixとHuayun Dataが戦略的クラウドコンピューティングパートナーシップを締結

2018 年 4 月 10 日: Citrix は本日、Huayun Data との戦略的クラウド ...

hostdare-年間12.5ドル/512MB RAM/10GB SSD/600GBデータ転送/ロサンゼルス/quadranet

数か月の計画を経て、hostdare.com はついに年間支払いの安価な VPS を手に入れました。...

クラウド コンピューティングは、家電製品の企業の将来にどのような革命をもたらすのでしょうか?

[51CTO.com クイック翻訳] 新しいテクノロジーの出現、経済の不確実性、家電業界に対する規制...

ソフト記事のプロモーションを行う場合、Web サイトはどの程度ソフトであるべきでしょうか?

インターネット社会がますます発達し、私たちが物と接する方法も変化し多様化しています。商品のプロモーシ...

権威のあるウェブサイトが外部リンクなしで繁栄できるのはなぜでしょうか?

ご存知のとおり、SEO の最も重要な 2 つのポイントはコンテンツと外部リンクです。これは、ウェブマ...

おすすめ: Ramnode - 4月はすべてのVPSが58%オフ

ramnode が 58% 割引をリリースしました。Ramnode 生涯割引コード: NUMBERO...

超低価格をお見逃しなく、天一雲の年中プロモーションがここにあります

現在、デジタル変革はあらゆる分野において避けられない選択となっており、多くの企業がビジネスの回復力と...

「Baiduホームページに追加」の方法と原理について話す

最近、百度が新たにアップグレードした機能「百度ホームページに追加」について、皆さんも聞いたことがある...

企業ウェブサイトの最適化に関する注意事項を例を使って説明する

1か月前、友人から企業ウェブサイトの SEO 診断を依頼されました。著者は、このサイトの PR 値が...

Bilibili、Zhihu、Douban:同じ目的地への異なる道?

数年前まで遡ると、国内のインターネット市場は活況を呈し、多くの高品質なプラットフォームや企業が出現し...