コンテナー ネットワーク セキュリティとは
コンテナー ネットワーク セキュリティは、コンテナー間のネットワーク トラフィックに対する制御を向上させるアドバンスト コンテナー ネットワークサービスのオファリングの 1 つです。 コンテナー ネットワーク セキュリティでは Cilium ベースのポリシーが活用されるため、従来の IP ベースの方法に比べて粒度が高くユーザー フレンドリな方法でネットワーク セキュリティを管理することができます。
コンテナー ネットワーク セキュリティの機能
現時点で提供されている、コンテナー ネットワーク セキュリティの最初の機能が FQDN フィルタリングです。 これを利用するとドメイン名に基づいてネットワーク セキュリティ ポリシーを定義できるため、より粒度の高い、ユーザー フレンドリな方法でネットワーク トラフィックを管理できます。
FQDN フィルタリングの概要
コンテナ化された環境には、固有のセキュリティ上の課題があります。 従来のネットワーク セキュリティの方法は IP ベースのフィルタリングに依存することが多く、IP アドレスが頻繁に変更されるにつれて煩雑になり、効果が低下する可能性があります。 さらに、ネットワーク トラフィック パターンを理解し、潜在的な脅威を特定することは複雑な場合があります。
FQDN フィルタリングは、ネットワーク ポリシーを管理するための効率的でユーザー フレンドリのアプローチを提供します。 IP アドレスではなくドメイン名に基づいてこれらのポリシーを定義することにより、組織はポリシー管理のプロセスを大幅に簡略化できます。 このアプローチでは、IP アドレスの変更時に通常必要となる頻繁な更新が不要になり、その結果、管理上の負担が軽減され、構成エラーのリスクが最小限に抑えられます。
Kubernetes クラスターでは、ポッドの IP アドレスが頻繁に変更される可能性があるため、IP アドレスを使用したセキュリティ ポリシーでポッドをセキュリティ保護することが困難になります。 FQDN フィルタリングを使用すると、IP アドレスではなくドメイン名を使用してポッド レベルのポリシーを作成できるため、IP アドレスが変更されたときにポリシーを更新する必要がなくなります。
Note
アドバンスト コンテナー ネットワークサービスのコンテナー ネットワーク セキュリティ機能を使用するには、Azure CNI Powered by Cilium と Kubernetes バージョン 1.29 以上が必要です。
FQDN フィルタリングのコンポーネント
Cilium エージェント: Cilium エージェントは、Azure CNI Powered by Cilium クラスター内のデーモンセットとして実行される重要なネットワーク コンポーネントです。 クラスター内のポッドのネットワーク、負荷分散、ネットワーク ポリシーを処理します。 FQDN ポリシーが適用されたポッドについては、Cilium エージェントがパケットを ACNS セキュリティ エージェントにリダイレクトして DNS 解決を行い、ACNS セキュリティ エージェントから取得した FQDN-IP マッピングを使用してネットワーク ポリシーを更新します。
ACNS セキュリティ エージェント: ACNS セキュリティ エージェントは、アドバンスト コンテナー ネットワークサービスが有効化されている Azure CNI Powered by Cilium クラスター内でデーモンセットとして実行されます。 ポッドの DNS 解決を処理し、DNS 解決が成功すると、FQDN から IP へのマッピングで Cilium エージェントを更新します。
FQDN フィルタリングのしくみ
FQDN フィルタリングが有効な場合、DNS 要求は最初に評価され、許可する必要があるかどうかが判断されます。その後、ポッドはネットワーク ポリシーに基づいて指定されたドメイン名にのみアクセスできます。 Cilium エージェントは、ポッドからの DNS 要求パケットを見つけて ACNS セキュリティ エージェントにリダイレクトします。 このリダイレクトは、FQDN ポリシーを適用しているポッドに対してのみ発生します。
ACNS セキュリティ エージェントは、DNS 要求を DNS サーバーに転送するかどうかをポリシー条件に基づいて決定します。 許可されている場合は、要求が DNS サーバーに送信され、ACNS セキュリティ エージェントは応答を受信したときに、Cilium エージェントを更新して FQDN マッピングを反映します。 これにより、Cilium エージェントはポリシー エンジン内のネットワーク ポリシーを更新できるようになります。 次の図は、FQDN フィルタリングの概要フローを示しています。
主な利点
スケーラブルなセキュリティ ポリシー管理: クラスターとセキュリティの管理者は、IP アドレスが変更されるたびにセキュリティ ポリシーを更新する必要がなく、運用が効率化されます。
セキュリティ コンプライアンスの向上: FQDN フィルタリングはゼロ トラスト セキュリティ モデルの支えとなります。 ネットワーク トラフィックは信頼されたドメインのみに制限され、不正アクセスによるリスクを軽減します。
回復性があるポリシー適用: ACNS セキュリティ エージェントを FQDN フィルタリングと共に実装することによって、DNS 解決のシームレスな継続が確実になり、Cilium エージェントがダウンした場合でもポリシーは引き続き適用された状態になります。 この実装により、動的分散環境においてセキュリティと安定性が確実に維持されます。
考慮事項:
- コンテナー ネットワーク セキュリティの機能を使用するには、Azure CNI Powered by Cilium と Kubernetes バージョン 1.29 以上が必要です。
制限事項:
- ワイルドカード FQDN ポリシーはサポートされません。 つまり、フィールド
spec.egress.toPorts.rules.dns.matchPattern
に対する*
などのパターンに基づいてトラフィックを許可または拒否するようなポリシーを作成することはできません。 - FQDN フィルタリングは、現時点ではノード ローカル DNS ではサポートされません。
- デュアル スタックはサポートされません。
- Kubernetes サービス名はサポートされません。
- その他の L7 ポリシーはサポートされません。
- FQDN ポッドが扱う要求数が 1 秒あたり 1,000 を超えるときは、パフォーマンスが低下することがあります。
- Alpine ベースのコンテナー イメージでは、Cilium ネットワーク ポリシーと共に使用されるときに DNS 解決の問題が発生することがあります。 この原因は、musl libc の検索ドメインの反復が制限されていることです。 これを回避するには、ネットワーク ポリシーの DNS ルールの中ですべての検索ドメインを明示的に、次の例のようにワイルドカード パターンを使用して定義します。
rules:
dns:
- matchPattern: "*.example.com"
- matchPattern: "*.example.com.*.*"
- matchPattern: "*.example.com.*.*.*"
- matchPattern: "*.example.com.*.*.*.*"
- matchPattern: "*.example.com.*.*.*.*.*"
- toFQDNs:
- matchPattern: "*.example.com"
価格
重要
アドバンスト コンテナー ネットワークサービスは有料オファリングです。 価格の詳細については、「アドバンスト コンテナー ネットワークサービス - 価格」を参照してください。
次のステップ
コンテナー ネットワーク セキュリティを AKS に対して有効にする方法を学習します。
オープン ソース コミュニティが Cilium ネットワーク ポリシーを構築する方法について確認します。
Azure Kubernetes Service (AKS) 用のアドバンスト コンテナー ネットワークサービスの詳細については、Azure Kubernetes Service (AKS) 用のアドバンスト コンテナー ネットワークサービスとは何かに関するページを参照してください。
アドバンスト コンテナー ネットワークサービスのコンテナー ネットワーク監視機能について「コンテナー ネットワーク監視とは」で学習します。
Azure Kubernetes Service