クラウド ネイティブ ネットワークのマイクロ分離

このブログ アドレス: https://security.blog.csdn.net/article/details/130044619

1. マイクロアイソレーションの紹介

1.1. マイクロアイソレーションの概念

主体がアクションを実行するとき、主体の権限と行動が判断されます. 最も一般的なのは、ネットワーク アクセス制御、つまり、ゼロ トラスト ネットワーク アクセス (ZTNA) です。ゼロトラスト ネットワーク アクセスは、ゼロトラスト実装における非常に重要な技術分野であり、ZTNA を実現するための主要なテクノロジの 1 つとしてのマイクロセグメンテーションも、クラウドネイティブ ネットワーク セキュリティの構築において重要な役割を果たします。

マイクロアイソレーションは、よりきめ細かいネットワーク分離テクノロジーです. そのコア機能は、東西トラフィックにも焦点を当てています. 従来の環境、仮想化環境、ハイブリッド クラウド環境、コンテナ環境で東西トラフィックを分離して制御します. 焦点は次のとおりです.攻撃者がデータ センター ネットワークまたはクラウド仮想ネットワークへのアクセス権を取得すると、横方向の移動をブロックします。

マイクロセグメンテーションは、従来の境界ベースのファイアウォール分離技術とは異なります.マイクロセグメンテーション技術は通常、ソフトウェア定義の方法を採用しています.そのポリシーコントロールセンターとポリシー実行ユニットは分離されており、通常、分散と自己適応の特性を備えています. .

ポリシー コントロール センターは、マイクロ分離システムの中核となる制御ユニットであり、内部システムとビジネス アプリケーション間のネットワーク アクセス関係を視覚的に表示し、役割とラベルに従って分離する必要があるワークロードを迅速に分類およびグループ化して、効率的かつ効率的に処理できます。ワークロードとビジネス アプリケーション間の分離ポリシーを柔軟に構成します。

ポリシー実行ユニットは、主にネットワーク トラフィック データの監視と分離ポリシーの実行に使用され、通常、ホスト上の仮想化デバイスまたはエージェントとして実装されます。

1.2. クラウドネイティブ環境における 2 種類のネットワーク マイクロ分離メカニズム

1. ネットワーク ポリシーに基づく実装

ネットワーク ポリシーは、一連の Pod が相互に、および他のネットワーク エンドポイントと通信することを許可する方法を記述する Kubernetes リソースです。ネットワーク ポリシーは、ラベルを使用してポッドを選択し、選択したポッドに許可される通信ルールを定義します。各 Pod のネットワーク トラフィックには、入力 (Ingress) と出力 (Egress) の 2 つの方向があります。

デフォルトでは、すべての Pod は分離されておらず、相互に完全に通信できます。つまり、ブラックリスト通信モードが採用されています。ポッドにネットワーク ポリシーが定義されている場合、許可されたトラフィックのみが対応するポッドと通信できます。deny all通常の状況では、より効果的で正確な分離効果を実現するために、このデフォルトのブラックリスト メカニズムはホワイトリスト メカニズムに変更されます。つまり、Pod が初期化されると、ネットワーク ポリシーが設定され、サービスに従って相互通信のニーズに対応し、きめ細かなポリシーを策定し、通信可能なネットワーク トラフィックを正確に選択します。

CNI はネットワーク ポリシーに対応するインターフェイス仕様のみを策定し、Kubernetes のネットワーク ポリシー機能もサードパーティのプラグインによって実装されます。したがって、通常、ネットワーク ポリシー機能をサポートするネットワーク プラグインまたはセキュリティ プラグインのみが、 などの対応するネットワーク ポリシー構成を実行できCalicoますCilium

2. Sidecar による実装

マイクロアイソレーションを実装するもう 1 つの方法は、サービス メッシュ アーキテクチャでサイドカー方式を使用することです。サービス メッシュ (Istio など) のトラフィック管理モデルは通常、サイドカー プロキシ (Envoy など) と共にデプロイされます. メッシュ内のサービスによって送受信されるすべてのトラフィックはサイドカー プロキシを通過するため、トラフィックの制御が非常に簡単になります.サービスに変更を加えることなく、グリッド外のコントロール プレーンを使用して、マイクロ分離を簡単に実現できます。

2. 繊毛虫の紹介

オープン ソースのアドレスとドキュメント: https://github.com/cilium/cilium

2.1. コンセプト

Cilium は、オープン ソースのクラウドネイティブ ネットワーク実装ソリューションです.他のネットワーク ソリューションとは異なり、Cilium は、Kubernetes などのコンテナー管理プラットフォーム上のアプリケーション サービス間のネットワークを透過的に監視できるネットワーク セキュリティの利点を強調しています.接続は保護されています.

Ciliumは、強力なセキュリティと可視化されたネットワーク制御ロジックをLinux内部に動的に挿入できる新しいLinuxカーネル技術eBPFに基づいて設計および実装されており、アプリケーションコードやコンテナ構成を変更することなく、対応するセキュリティポリシーを実装することができます. その特徴は主に以下の3点です。

⬤ Kubernetes で基本的なネットワーク相互接続と相互通信機能を提供し、コンテナー クラスターでポッドとサービスを含む基本的なネットワーク接続機能を実現します。
⬤ eBPF に依存して、Kubernetes でのネットワークの可観測性と、ネットワークの分離やトラブルシューティングなどの基本的なセキュリティ戦略を実現します。
⬤ eBPF に依存することで、従来のホスト ファイアウォールが L3 および L4 マイクロ分離のみをサポートするという制限を突破し、API ベースのネットワーク セキュリティ フィルタリング機能をサポートします。Cilium は、コンテナー/ポッド ID ベースのネットワーク レイヤーとアプリケーション レイヤー (HTTP/gRPC/Kafka など) のセキュリティ ポリシーを定義および適用するためのシンプルで効果的な方法を提供します。

2.2. アーキテクチャー

Cilium は、コンテナ オーケストレーション システムと Linux カーネルの間に位置します. 上位では、オーケストレーション プラットフォームを介してコンテナのネットワークと対応するセキュリティ構成を構成できます. 下位では、コンテナ ネットワークの転送動作とセキュリティ ポリシーの実装を制御できます. Linux カーネルに eBPF プログラムをマウントします。

Cilium アーキテクチャでは、主要なコンポーネントには Cilium Agent と Cilium Operator が含まれます。

⬤ アーキテクチャ全体のコア コンポーネントとして、Cilium エージェントは、DaemonSet を介して特権コンテナーのモードでクラスターの各ホスト上で実行されます。ユーザー空間デーモンとして、Cilium エージェントは、プラグインを介してコンテナー ランタイムおよびコンテナー オーケストレーション システムと対話し、マシン上のコンテナーのネットワークおよびセキュリティ関連の構成を実行します。同時に、他のコンポーネントが呼び出すためのオープン API が提供されます。

⬤ Cilium Operator は主にクラスター内のタスクを管理する役割を担い、可能な限りクラスターがタスク処理の単位としてノードではなく単位として使用されるようにします。主に、etcd を介したノード間のリソース情報の同期と、その Pod DNS は、Cilium 管理、クラスター ネットワーク ポリシーの管理と更新などにアクセスできます。

Cilium アーキテクチャを図に示します。
ここに画像の説明を挿入

2.3. ネットワークモード

Cilium はさまざまなネットワーク モードを提供し、vxlan ベースのオーバーレイ ネットワークがデフォルトで使用されます。さらに、以下も含まれます。

⬤ BGP ルーティングにより、クラスタ間の Pod のネットワーキングと相互接続を実現
⬤ AWS の ENI (Elastic Network Interface) モードで Cilium をデプロイして使用 ⬤
Flannel と Cilium の統合デプロイ ⬤
ipvlan ベースのネットワーキングを使用デフォルトでは veth に基づいていません
⬤ クラスタ メッシュ ネットワーク、複数の Kubernetes クラスタにわたるネットワーク接続やセキュリティなどの複数のネットワーク モードを実現

2.4 観察可能

Cilium は、ネットワーク可視化コンポーネント Hubble を提供します. Hubble は Cilium と eBPF の上に構築されています. これは、ネットワーク インフラストラクチャ通信とアプリケーションの動作を完全に透過的な方法で詳細に可視化します. これは、クラウドネイティブ ワークロード用の完全分散アプリケーションです. ネットワークおよびセキュリティ オブザーバビリティ プラットフォーム。

Hubble は、Cilium が提供する eBPF データ パスを活用して、Kubernetes アプリケーションとサービス ネットワーク トラフィックを詳細に可視化できます。これらのネットワーク トラフィック情報は、Hubble CLI および UI ツールに接続でき、関連するネットワークの問題とセキュリティの問題をインタラクティブな方法で迅速に検出および診断できます。独自の監視ツールに加えて、ハッブルは、Prometheus や Grafana などの主流のクラウドネイティブ監視システムと連携して、スケーラブルな監視戦略を実装することもできます。

2.5. インストール

# 下载及解压
wget https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin

# 安装
cilium install --kube-proxy-replacement=strict

# 可视化组件
cilium hubble enable --ui

# 查看状态
cilium status

# 展示Service
cilium service list

おすすめ

転載: blog.csdn.net/wutianxu123/article/details/130044619