DockerイメージからNative Nodeをデプロイする¶
NGINXに依存せずに動作するWallarm Native Nodeは、一部のコネクタと組み合わせてのデプロイを想定して設計されています。公式DockerイメージからNative Nodeを起動し、コンテナ化されたサービス上で実行できます。
ユースケース¶
-
自己ホスト型のLinux OSマシン上で、MuleSoft MuleまたはFlex Gateway、Akamai、Cloudflare、Amazon CloudFront、Broadcom Layer7 API Gateway、Fastly、IBM DataPower向けのコネクタソリューションの一部としてWallarmノードをデプロイする場合。
インストーラーを
connector-serverモードで使用します。 -
Istioで管理されるAPI向けにgRPCベースの外部処理フィルタが必要な場合。
インストーラーを
envoy-external-filterモードで使用します。
Native Node用のDockerイメージは、AWS ECSなどのコンテナオーケストレーションプラットフォームや、その他のDockerベース環境をすでに利用している場合に最適です。Wallarmノードはサービス内でDockerコンテナとして実行され、API管理プラットフォーム向けのセキュリティフィルタリングとトラフィック検査を提供します。
要件¶
-
ホストシステムにDockerがインストールされていること
-
API管理プラットフォームからコンテナ化環境へのインバウンドアクセス
-
コンテナ化環境から以下へのアウトバウンドアクセス:
- デプロイに必要なDockerイメージをダウンロードするための
https://hub.docker.com/r/wallarm - US/EUのWallarm Cloud向けの
https://us1.api.wallarm.comまたはhttps://api.wallarm.com -
攻撃検知ルールやAPI specificationsの更新ダウンロード、さらにallowlisted, denylisted, or graylistedの国・地域・データセンターに対する正確なIPの取得のための、以下のIPアドレス
- デプロイに必要なDockerイメージをダウンロードするための
-
Native Nodeを実行するECSインスタンスの前段にあるロードバランサーには、信頼できるSSL/TLS証明書が必要です
-
併せて、Wallarm ConsoleでAdministratorロールが付与されている必要があります
制限事項¶
-
ロードバランサーの保護に自己署名SSL証明書は使用できません。
-
カスタムブロッキングページとブロッキングコードの構成はまだサポートされていません。
-
Wallarmルールによるレート制限はサポートされていません。
-
マルチテナンシーはまだサポートされていません。
デプロイ¶
1. Dockerイメージを取得します¶
2. 設定ファイルを準備します¶
Native Node用の最小構成でwallarm-node-conf.yamlファイルを作成します:
すべての設定パラメータ(DockerイメージとNative Nodeのall-in-oneインストーラーで同一です)
3. Wallarmトークンを準備します¶
ノードをインストールするには、Wallarm Cloudにノードを登録するためのトークンが必要です。トークンの準備手順:
-
Wallarm Console → Settings → API tokens(US CloudまたはEU Cloud)を開きます。
-
使用タイプが
Node deployment/DeploymentのAPIトークンを探すか作成します。 -
このトークンをコピーします。
4. Dockerコンテナを起動します¶
Dockerイメージを実行するには、次のコマンドを使用します。wallarm-node-conf.yamlファイルをコンテナにマウントします。
| 環境変数 | 説明 | 必須 |
|---|---|---|
WALLARM_API_TOKEN | 使用タイプがNode deployment/DeploymentのAPIトークンです。 | はい |
WALLARM_LABELS | ノードインスタンスをグループ化するためのgroupラベルを設定します。例:WALLARM_LABELS="group=<GROUP>"はノードインスタンスを<GROUP>インスタンスグループ(既存。存在しない場合は作成されます)に配置します。 | はい |
WALLARM_API_HOST | Wallarm APIサーバー:
api.wallarm.com。 | はい |
WALLARM_APID_ONLY(0.12.1以降) | このモードでは、トラフィックで検知された攻撃は(有効化されていれば)ノードがローカルでブロックしますが、Wallarm Cloudへはエクスポートされません。一方で、API Discoveryや一部のその他機能は完全に動作し、APIインベントリを検出して可視化のためにCloudへアップロードします。このモードは、まずAPIインベントリを確認して機微データを特定し、そのうえで攻撃データのエクスポートを計画的に実施したい場合に適しています。ただし、Wallarmは攻撃データを安全に処理し、必要に応じて機微な攻撃データのマスキングも提供するため、攻撃データのエクスポートを無効化するケースは稀です。詳細 デフォルト: false。 | いいえ |
-
-pオプションはホストとコンテナのポートをマッピングします:- 最初の値(80)は外部トラフィックに公開されるホスト側のポートです。
- 2つ目の値(5050)はコンテナ側のポートで、
wallarm-node-conf.yaml内のconnector.addressまたはenvoy_external_filter.addressの設定と一致させる必要があります。
-
設定ファイルはコンテナ内で
/opt/wallarm/etc/wallarm/go-node.yamlとしてマウントする必要があります。
5. API管理サービスにWallarmコードを適用します¶
ノードをデプロイしたら、トラフィックをデプロイ済みノードへルーティングするため、WallarmコードをAPI管理プラットフォームまたはサービスに適用します。
-
sales@wallarm.comに連絡し、コネクタ用のWallarmコードバンドルを入手します。
-
プラットフォーム別の手順に従って、API管理プラットフォームにバンドルを適用します:
ノード動作の検証¶
ノードがトラフィックを検知していることを確認するには、ログを確認できます:
-
Native Nodeのログはデフォルトで
/opt/wallarm/var/log/wallarm/go-node.logに書き込まれ、追加の出力はstdoutにも出力されます。 -
データがWallarm Cloudへ送信されたか、検知した攻撃など、フィルタリングノードの標準ログは
/opt/wallarm/var/log/wallarmディレクトリにあります。 -
追加のデバッグには、
log.levelパラメータをdebugに設定します。
http://<NODE_IP>:9000/metrics.で公開されるPrometheusメトリクスを確認して、ノードの動作を検証することもできます。
アップグレード¶
ノードのアップグレードは手順に従います。