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

推薦する

検索: 「FG戦争」は始まるのか?

国内のインターネットでは、有名な「3Q戦争」、「3B戦争」など、多くの大きな戦争がありましたが、その...

携帯電話の通信を遮断しないという政策が正式に施行される

9月29日午後、大手3社は本日同時に通知を出し、携帯電話パッケージの月間通信量を未確定にするサービス...

IDC: パブリッククラウド支出は2020年第1四半期に101億ドルに達した

[[331458]]インターナショナル・データ・コーポレーション(IDC)が6月26日に発表したレポ...

新しいウェブサイトを公開後 1 日以内にインデックス登録する方法

ほとんどのウェブマスターは、新しいウェブサイトがオンラインになったらすぐに Baidu に登録される...

Sina WeiboがWeiboプロモーションをテスト:ニュースフローに表示されるBaiduプロモーションに類似

Sina Weibo が新しい広告形式をテスト中: Weibo プロモーション (TechWeb の...

Googleの過剰最適化ペナルティアルゴリズムが正式に開始。対外貿易業界に冬が来るのか?

ここ数日は、インターネット上の人々にとって「嵐」のようだった。Baidu はアルゴリズム システムを...

インターネット マーケティングはあなたを救うために何ができるでしょうか?

インターネットが急速に発展している時代、すべての企業や個人がこのプラットフォームを通じて利益を上げる...

HarmonyOS 分散ニュース共有

[[412557]]詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したH...

釣魚島防衛事件におけるポジショニングの観点からSEOの限界について簡単に議論する

最近最もホットな話題の一つは、香港の釣魚島保護活動家らの上陸行動だ。 4月に始まった黄岩島事件を引き...

hostdare: 年間 20 ドルから、25% オフ、ロサンゼルス QN データ センター VPS、Windows オペレーティング システムをサポート

hostdare の VPS はすべて、米国西海岸のロサンゼルスにある QN データセンターでホスト...

百度SEOの今後の動向は6月28日の百度Kステーションから見ることができる

6月28日以来、「Kステーション」と「毛抜き」という言葉は、数え切れないほど多くのウェブマスターとS...

ウェブサイトがKになった後に復元する方法

検索エンジンによってウェブサイトが K 化されることは、ウェブマスターにとって最大の打撃であると言え...

マルチクラウド管理ツールとヒントをお見逃しなく

[51CTO.com クイック翻訳] マルチクラウドモデルを利用することで、企業はベンダーに縛られる...

新規出店失敗から学ぶ教訓:タオバオへの出店は焦ってはいけない

タオバオの文化にはキーワードがあり、それはスピードです。他社は7月上旬に秋服を作り始めますが、あなた...