AWS AMIでNative Nodeをデプロイする¶
Wallarm Native NodeはNGINXに依存せずに動作し、Wallarmコネクターのセルフホスト型デプロイやTCPトラフィックミラー解析のために設計されています。AWS AMIを使用してAWSインスタンス上でNative Nodeを実行できます。
AMIはDebian 12をベースとしており、all-in-oneインストーラーを同梱しています。このインストーラーはノードのデプロイと設定に使用するWallarmのスクリプトです。AMIからインスタンスを起動後、このスクリプトを実行してインストールを完了します。
AWS上でAMIからWallarm Nodeをデプロイする作業は、通常約10分で完了します。
セキュリティに関する注意
このソリューションはAWSのセキュリティベストプラクティスに従うよう設計されています。デプロイにはAWSのルートアカウントの使用を避け、必要最小限の権限のみを付与したIAMユーザーまたはロールを使用することを推奨します。
デプロイプロセスは最小権限の原則を前提としており、Wallarmコンポーネントのプロビジョニングと運用に必要な最小限のアクセス権のみを付与します。
このデプロイのAWSインフラコスト見積もりについては、AWSへのWallarmデプロイのコストガイダンスを参照してください。
ユースケースとデプロイモード¶
-
AWS上で、MuleSoft Mule Gateway、Cloudflare、Amazon CloudFront、Broadcom Layer7 API Gateway、Fastly向けコネクターソリューションの一部としてWallarmノードをデプロイする場合
イメージを
connector-server
モードで実行します。 -
TCPトラフィックミラー解析用のセキュリティソリューションが必要で、インフラがAWS上にある場合
イメージを
tcp-capture
モードで実行します。tcp-capture
モードの制限事項- このソリューションは生のTCP上の暗号化されていないHTTPトラフィックのみを解析し、暗号化されたHTTPSトラフィックは対象外です。
- HTTP keep-alive接続上のレスポンス解析はまだサポートしていません。
要件¶
-
AWSアカウント
-
AWS EC2およびSecurity Groupの理解
-
任意のAWSリージョン(Wallarmノードのデプロイに特定のリージョン制約はありません)
Wallarmは単一アベイラビリティーゾーン(AZ)およびマルチAZでのデプロイをサポートします。マルチAZ構成では、Wallarm Nodeを別々のAZに起動し、高可用性のためにロードバランサーの背後に配置できます。
-
US CloudまたはEU CloudのWallarm ConsoleでAdministratorロールを持つアカウントへのアクセス
-
すべてのコマンドをWallarmのEC2インスタンス上でスーパーユーザー(例:
root
)として実行すること -
connector-server
モードでノードを実行する場合、マシンのドメインに対して発行された信頼済みSSL/TLS証明書を秘密鍵とともにマシンへアップロードしておくこと -
tcp-capture
モードでノードを実行する場合:- トラフィックおよびレスポンスミラーリングがソースとターゲットの両方で構成され、準備したインスタンスがミラーターゲットとして選択されていること。トラフィックミラーリング構成で許可すべきプロトコルなど、特定の環境要件を満たす必要があります。
- ミラートラフィックがVLAN(802.1q)、VXLAN、またはSPANのいずれかでタグ付けされていること。
- 生のTCP上の暗号化されていないHTTPトラフィックであること(暗号化されたHTTPSトラフィックは不可)。
制限事項¶
-
connector-server
モードでNodeを使用する場合、マシンのドメインに対する信頼済みSSL/TLS証明書が必要です。自己署名証明書はまだサポートしていません。 -
カスタムのブロックページとブロックコードはまだサポートしていません。
-
Wallarmルールによるレート制限はサポートしていません。
-
マルチテナンシーはまだサポートしていません。
インストール¶
1. Wallarm Nodeインスタンスを起動する¶
Wallarm Native Node AMIを使用してEC2インスタンスを起動します。
推奨構成:
-
入手可能な最新のAMIバージョン
-
任意のAWSリージョン
-
EC2インスタンスタイプ:
t3.medium
またはt3.large
(詳細はコストガイダンスを参照) -
インフラに応じた適切なVPCとサブネット
-
Security Groupのインバウンドで、ノード設定で定義したポートへのアクセス
-
Security Groupのアウトバウンドで以下へのアクセス:
- Wallarmインストーラーをダウンロードするための
https://meganode.wallarm.com
- US/EUのWallarm Cloudへ接続するための
https://us1.api.wallarm.com
またはhttps://api.wallarm.com
-
攻撃検出ルールやAPI仕様の更新をダウンロードし、またallowlisted、denylisted、graylistedの国・地域・データセンターの正確なIPを取得するための以下のIPアドレス
- Wallarmインストーラーをダウンロードするための
-
インスタンスへアクセスするためのSSHキーペア
2. SSHでノードインスタンスへ接続する¶
稼働中のEC2インスタンスへ接続するには、選択したSSHキーを使用します:
インスタンスへ接続するにはユーザー名admin
を使用します。
3. Wallarmトークンを準備する¶
ノードをWallarm Cloudに登録するにはAPIトークンが必要です:
-
Wallarm Console → Settings → API tokens(US CloudまたはEU Cloud)を開きます。
-
使用タイプが
Node deployment/Deployment
のAPIトークンを見つけるか作成します。 -
このトークンをコピーします。
4. TLS証明書をアップロードする¶
connector-server
モード用に、インスタンスのドメインに対して信頼済みTLS証明書と秘密鍵を発行してください。これらのファイルはインスタンス内からアクセスでき、以降の設定で参照される必要があります。
証明書と鍵ファイルはscp
、rsync
などでEC2インスタンスにアップロードします。例:
5. 設定ファイルを準備する¶
EC2インスタンス上でwallarm-node-conf.yaml
という名前のファイルを作成し、以下の最小構成のいずれかを記述します:
6. ノードのインストールスクリプトを実行する¶
EC2インスタンス上でインストーラーを実行します:
# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.14.0.x86_64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=./wallarm-node-conf.yaml --host us1.api.wallarm.com
# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.14.0.x86_64.sh -- --batch --token <API_TOKEN> --mode=connector-server --go-node-config=./wallarm-node-conf.yaml --host api.wallarm.com
# US Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.14.0.x86_64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=./wallarm-node-conf.yaml --host us1.api.wallarm.com
# EU Cloud
sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.14.0.x86_64.sh -- --batch --token <API_TOKEN> --mode=tcp-capture --go-node-config=./wallarm-node-conf.yaml --host api.wallarm.com
-
WALLARM_LABELS
変数は、ノードを追加するgroup(Wallarm Console UI上でノードを論理的にグルーピングするため)を設定します。 -
<API_TOKEN>
には、使用タイプがNode deployment/Deployment
の生成済みAPIトークンを指定します。 -
--go-node-config
には、事前に用意した設定ファイルのパスを指定します。
指定した設定ファイルは/opt/wallarm/etc/wallarm/go-node.yaml
にコピーされます。
必要に応じて、インストール完了後にコピーされたファイルを変更できます。変更を反映するには、sudo systemctl restart wallarm
でWallarmサービスを再起動します。
7. インストールを完了する¶
ノードのデプロイ後、次の手順として、デプロイ済みノードへトラフィックをルーティングするために、API管理プラットフォームまたはサービスへWallarmコードを適用します。
- sales@wallarm.comへ連絡し、使用するコネクターのWallarmコードバンドルを入手します。
-
プラットフォーム別の手順に従って、API管理プラットフォームへバンドルを適用します:
ノード動作の検証¶
ノードがトラフィックを検出しているかを確認するには、ログを確認します:
-
Native Nodeのログは既定で
/opt/wallarm/var/log/wallarm/go-node.log
に書き込まれます。 -
データがWallarm Cloudへ送信されたか、攻撃が検出されたかなど、フィルタリングノードの標準ログは
/opt/wallarm/var/log/wallarm
ディレクトリにあります。 -
追加のデバッグには、
log.level
パラメータをdebug
に設定します。
また、http://<NODE_IP>:9000/metrics.
で公開されているPrometheusメトリクスを確認してノードの動作を検証できます。
インストーラーの起動オプション¶
AMIには次の起動オプションを持つインストーラスクリプトが含まれています:
-
スクリプトのヘルプを表示:
-
インストーラーを対話モードで実行し、最初のステップで必要なモードを選択:
-
ノードをAPI Discoveryのみモードで使用できます。このモードでは、ノードの組み込み機構で検出される攻撃や追加構成が必要な攻撃(例: クレデンシャルスタッフィング、API仕様違反試行、denylistedおよびgraylisted IPからの悪意ある活動)を含む攻撃はローカルで検出・ブロック(有効化時)されますが、Wallarm Cloudへはエクスポートされません。Cloudに攻撃データが存在しないため、Threat Replay Testingは動作しません。whitelisted IPからのトラフィックは許可されます。
一方で、API Discovery、APIセッション追跡、セキュリティ脆弱性の検出は引き続き完全に機能し、関連するセキュリティエンティティを検出してCloudへアップロードし、可視化します。
このモードは、まずAPIインベントリのレビューと機微なデータの特定を行い、その後に攻撃データのエクスポートを計画的に行いたい方を対象としています。ただし、Wallarmは攻撃データを安全に処理し、必要に応じて機微な攻撃データのマスキングを提供しているため、攻撃のエクスポートを無効化するケースは稀です。
API Discoveryのみモードを有効にするには:
-
/etc/wallarm-override/env.list
ファイルを作成または修正します:次の変数を追加します:
-
ノードのインストール手順に従います。
API Discoveryのみモードが有効な場合、
/opt/wallarm/var/log/wallarm/wcli-out.log
には次のメッセージが出力されます: -