Kong Ingress Controller用Wallarmコネクタ¶
Kong Ingress Controllerによって管理されるAPIを保護するために、WallarmはKubernetes環境にシームレスに統合できるコネクタを提供します。Wallarmフィルタリングノードをデプロイし、カスタムLuaプラグインを介してKongに接続することで、着信トラフィックをリアルタイムに解析し、悪意のあるリクエストがサービスに到達する前にWallarmが軽減できるようにします。
Kong Ingress Controller用Wallarmコネクタはin-lineモードのみサポートします:
ユースケース¶
サポートされているすべてのWallarmのデプロイメントオプションの中で、このソリューションはKong API Gatewayを実行しているKong Ingress Controllerによって管理されるAPIを保護するために推奨します。
制限事項¶
本セットアップではWallarmの微調整はWallarm Console UI経由でのみ可能です。この実装では、ファイルベースの設定を必要とするWallarmの一部の機能はサポートしていません。例えば:
要件¶
デプロイを進めるには、次の要件を満たしていることを確認してください:
-
KubernetesクラスターにKong Ingress Controllerがデプロイされ、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アドレスにアクセス可能であること
-
Administratorアクセスがあり、US CloudまたはEU CloudのWallarm Consoleにアクセス可能であること
デプロイメント¶
Kong Ingress Controllerによって管理されるAPIを保護するために、以下の手順に従ってください:
-
KubernetesクラスターにWallarmフィルタリングノードサービスをデプロイします。
-
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です。 -
Kong Ingress Controller用の
values.yaml
ファイルを更新し、Wallarm Luaプラグインのロードを設定してください: -
Kong Ingress Controllerをアップグレードしてください:
-
KongClusterPlugin
リソースを作成し、Wallarmノードサービスのアドレスを指定することで、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ノードサービスがデプロイされているnamespaceです。 -
選択したサービスに対してプラグインを有効にするため、IngressまたはGateway APIルートに以下の注釈を追加してください:
テスト¶
デプロイされたコネクタの機能をテストするため、以下の手順に従ってください:
-
Wallarmポッドが正常に稼働していることを確認してください:
wallarm-node
はWallarmノードサービスがデプロイされているnamespaceです。各ポッドのステータスはSTATUS: RunningまたはREADY: N/Nである必要があります。例えば:
-
Kong Gateway
IPを取得してください(通常、LoadBalancer
サービスとして構成されます): -
テスト用のPath Traversal攻撃を使用して、ロードバランサーにリクエストを送信してください:
ノードはデフォルトでmonitoring modeで動作するため、Wallarmノードは攻撃をブロックするのではなく登録します。
-
Wallarm Consoleの→ Attacks セクションをUS CloudまたはEU Cloudで開き、攻撃がリストに表示されていることを確認してください。
Wallarm Luaプラグインのアップグレード¶
デプロイされたWallarm Luaプラグインをnewer versionにアップグレードするには:
-
Kong Ingress Controller用の更新されたWallarm Luaプラグインコードを入手するため、support@wallarm.comに連絡してください。
-
プラグインコードを含むConfigMapを更新してください:
<KONG_NS>
はKong Ingress Controllerがデプロイされているnamespaceです。
プラグインのアップグレードには、特にメジャーバージョンの更新の場合、Wallarmノードのアップグレードが必要になることがあります。リリースの更新およびアップグレード手順についてはWallarm Native Node changelogを参照してください。非推奨を回避し、将来のアップグレードを簡素化するために、定期的なノードの更新を推奨します。