Kong Ingress Controller向けWallarmコネクタ¶
Kong Ingress Controllerが管理するAPIを保護するために、WallarmはKubernetes環境へシームレスに統合できるコネクタを提供します。Wallarmフィルタリングノードをデプロイし、カスタムLuaプラグインでKongに接続すると、受信トラフィックがリアルタイムで解析され、サービスに到達する前にWallarmが悪意のあるリクエストを軽減できます。
Kong Ingress Controller向けWallarmコネクタがサポートするモードはインラインのみです。
ユースケース¶
このソリューションは、Kong API Gatewayを実行するKong Ingress Controllerが管理するAPIの保護に推奨される構成です。
制限事項¶
このセットアップでは、Wallarmの詳細な調整はWallarm ConsoleのUI経由でのみ可能です。ファイルベースの設定を必要とする一部のWallarm機能は本実装ではサポートされません。例:
要件¶
デプロイを進める前に、次の要件を満たしていることを確認してください。
-
Kong Ingress Controllerがデプロイされ、KubernetesクラスターでAPIトラフィックを管理していること
-
Helm v3パッケージマネージャー
-
https://us1.api.wallarm.com
(US Wallarm Cloud)またはhttps://api.wallarm.com
(EU Wallarm Cloud)へのアクセス -
Wallarm Helmチャートを追加するための
https://charts.wallarm.com
へのアクセス -
Docker Hub上のWallarmリポジトリ
https://hub.docker.com/r/wallarm
へのアクセス -
攻撃検知ルールの更新をダウンロードし、さらに許可リスト、拒否リスト、グレーリストに登録した国・地域・データセンターの正確なIPを取得するために、以下のIPアドレスへアクセスできること
-
Nodeインスタンスのドメインには信頼できるSSL/TLS証明書が必要です。自己署名証明書はサポートされていません。
デプロイ¶
Kong Ingress Controllerが管理するAPIを保護するには、次の手順に従ってください。
-
WallarmフィルタリングノードをKubernetesクラスターにデプロイします。
-
Kong Ingress ControllerからWallarmフィルタリングノードへ受信トラフィックをルーティングして解析させるため、Wallarm Luaプラグインを入手してデプロイします。
1. Wallarm Native Nodeをデプロイする¶
WallarmノードをKubernetesクラスター内の独立したサービスとしてデプロイするには、手順に従ってください。
2. Wallarm Luaプラグインを入手してデプロイする¶
-
Kong Ingress Controller用のWallarm Luaプラグインのコードを入手するため、support@wallarm.comへご連絡ください。
-
プラグインコードでConfigMapを作成します:
<KONG_NS>
はKong Ingress ControllerがデプロイされているNamespaceです。 -
Wallarm Luaプラグインを読み込むように、Kong Ingress Controllerの
values.yaml
を更新します: -
Kong Ingress Controllerを更新します:
-
KongClusterPluginリソースを作成し、WallarmノードのServiceアドレスを指定して、Wallarm Luaプラグインを有効化します:
echo ' apiVersion: configuration.konghq.com/v1 kind: KongClusterPlugin metadata: name: kong-lua annotations: kubernetes.io/ingress.class: kong config: wallarm_node_address: "http://native-processing.wallarm-node.svc.cluster.local:5000" plugin: kong-lua ' | kubectl apply -f -
wallarm-node
はWallarmノードのServiceがデプロイされているNamespaceです。 -
対象サービスでプラグインを有効化するため、IngressまたはGateway APIのルートに次のアノテーションを追加します:
テスト¶
デプロイしたコネクタの動作をテストするには、次の手順に従ってください。
-
WallarmのPodが起動していることを確認します:
wallarm-node
はWallarmノードのServiceがデプロイされているNamespaceです。各Podのステータスは「STATUS: Running」または「READY: N/N」になっている必要があります。例:
-
Kong GatewayのIPを取得します(通常はLoadBalancer Serviceとして構成されています):
-
テスト用パストラバーサル攻撃のリクエストをバランサーへ送信します:
デフォルトではノードは監視モードで動作しているため、Wallarmノードは攻撃をブロックせず、記録します。
-
Wallarm Console → US CloudまたはEU CloudのAttacksセクションを開き、攻撃が一覧に表示されていることを確認します。
Wallarm Luaプラグインのアップグレード¶
デプロイ済みのWallarm Luaプラグインを新しいバージョンにアップグレードするには:
-
Kong Ingress Controller用の最新のWallarm Luaプラグインコードを入手するため、support@wallarm.comへご連絡ください。
-
プラグインコードでConfigMapを更新します:
<KONG_NS>
はKong Ingress ControllerがデプロイされているNamespaceです。
プラグインのアップグレードでは、特にメジャーバージョン更新時に、Wallarmノードのアップグレードが必要になる場合があります。リリース情報とアップグレード手順は、Wallarm Native Nodeの変更履歴を参照してください。将来のアップグレードを容易にし、非推奨による問題を避けるため、ノードを定期的に更新することを推奨します。