Cilium

Cilium Network Policy on AKS: Prerequisites & Setup Guide

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

AKSでCiliumネットワークポリシーを導入する前に確認すべき前提条件

AKSクラスターにおけるCiliumネットワークポリシーの導入は、セキュリティ強化の一環として重要ですが、実施前にはいくつかの前提条件を明確にすることが必要です。特にLinuxノード専用の要件と最新版ツールとの互換性が挙げられます。

Linuxノード限定の要件確認

CiliumネットワークポリシーはWindowsノードでは非対応であり、AKSクラスターにおいてはLinuxノードを実行している環境でのみ導入可能です。既存クラスターにWindowsノードが含まれる場合は、事前にノードプールの構成を確認してください。

注意: Azure CLIとCiliumバージョンの不一致により、ポリシー適用時にエラーが発生する可能性があります。最新版のAzure CLI(az --versionで確認)および互換性のあるCiliumバージョンを使用してください。

Azure CLI/Ciliumバージョン互換性確認手順:

  1. Azure CLIの現在バージョンを確認: az --version
  2. Ciliumの推奨バージョンを公式ドキュメント(https://docs.cilium.io/)で確認
  3. Azure Managed Ciliumリリースノート(https://github.com/Azure/azure-cilium/releases)で互換性をチェック
項目 補足
サポートOS Linux専用 Windowsノードでは動作不可
Azure CLI 2.38.0以降 最新版を導入することを推奨
Ciliumバージョン v1.14以上 Azure Managed Ciliumの公式リリースに準拠

NPMからCiliumへの移行手順

既存のネットワークポリシー(NPM)をCiliumに切り替える際は、段階的な移行が不可欠です。NPMの削除とCiliumのインストールが同時進行するため、クラスター操作時の中断リスクを最小化する必要があります。

既存NPMポリシーの評価

NPMで運用しているネットワークポリシーをyamlファイル形式でエクスポートし、ルール内容(ingress/egress)や適用範囲(namespace)を整理します。以下は例です:

評価のポイントとして以下の2点を確認してください:

  • L7レイヤーでの制御が不要な場合、Cilium導入後に不要なポリシーも同時に削除できるか。
  • namespace単位の適用範囲が明確で、移行時のエラー回避につながるか。

YAMLベースのNetworkPolicy定義例

CiliumネットワークポリシーはYAMLで定義され、Kubernetes ClusterRoleやClusterRoleBindingを通じてクラスター全体に適用されます。以下に基本構造とnamespace単位での例を示します。

基本構造のサンプル

Namespaceごとのポリシー適用範囲

namespaceを指定するには、metadataのnamespaceフィールドを使用します。以下は特定のnamespace(example-ns)にのみ適用する例です:


L7フィルタリングの設定方法

CiliumではHTTPパスやクエリパラメータレベルでの細粒度制御が可能で、セキュリティ強化の重要な要素です。

HTTPパスベースの制御例

以下は/api/v1/dataにアクセスするみことを許可し、他のパスを禁止する例です:

クエリパラメータの検証

クエリパラメータが指定された値に含まれる場合のみアクセスを許可する設定も可能です。以下はtoken=ABC123を含むリクエストに限定する例です:


ポリシー適用後の接続テストプロセス

ポリシーをクラスターに適用した後、通信動作が正常に機能しているか確認する必要があります。kubectlコマンドとcurlによる検証が有効です。

kubectlコマンドによる状態確認

以下のように、CiliumNetworkPolicyのステータスを確認します:

出力結果でSTATUS列がactiveまたはinvalidになっているかを検証し、ポリシーが正しく適用されていることを確認してください。

curlベースの通信検証

実際の通信動作をテストするには、クライアントアプリケーションやcurlコマンドを使用します。以下はHTTPリクエストへの応答例です:

L7フィルタリングが正しく設定されている場合、403 Forbiddenまたは200 OKなどの適切なレスポンスが返ってきます。


セキュリティ強化に向けたベストプラクティス

Ciliumネットワークポリシーは単なる制御ツールではなく、運用の継続的な改善を支える要素です。以下に実務で重視すべきポイントを紹介します。

最小権限原則の実装

各サービスに必要な最小限のアクセス権限を与えることで、漏洩や不正アクセスリスクを抑制できます。たとえば、/adminパスは特定の管理者アカウントのみ許可するように設定しましょう。

定期的なポリシーレビュー

運用中は定期的にネットワークポリシーを見直し、不要なルールや誤った設定がないか確認してください。変更履歴を管理できるツール(例:Git)でバージョン管理することも推奨されます。


まとめ

Ciliumネットワークポリシーの導入はLinuxノード専用であり、移行前にはNPM評価とAzure CLI/Ciliumバージョン確認が不可欠です。YAMLでのingress/egress定義に加えて、L7フィルタリングによる細粒度制御がセキュリティ強化の鍵となります。実運用後は定期的なポリシーレビューと最小権限原則を徹底することで、リスク回避につながります。


スポンサードリンク

-Cilium