コンテンツにスキップ

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、CloudflareAmazon CloudFrontBroadcom Layer7 API GatewayFastly向けコネクターソリューションの一部として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トラフィックは不可)。

制限事項

インストール

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アドレス

      node-data0.us1.wallarm.com - 34.96.64.17
      node-data1.us1.wallarm.com - 34.110.183.149
      us1.api.wallarm.com - 35.235.66.155
      34.102.90.100
      34.94.156.115
      35.235.115.105
      
      node-data1.eu1.wallarm.com - 34.160.38.183
      node-data0.eu1.wallarm.com - 34.144.227.90
      api.wallarm.com - 34.90.110.226
      
  • インスタンスへアクセスするためのSSHキーペア

2. SSHでノードインスタンスへ接続する

稼働中のEC2インスタンスへ接続するには、選択したSSHキーを使用します:

ssh -i <your-key.pem> admin@<your-ec2-public-ip>

インスタンスへ接続するにはユーザー名adminを使用します。

3. Wallarmトークンを準備する

ノードをWallarm Cloudに登録するにはAPIトークンが必要です:

  1. Wallarm Console → SettingsAPI tokensUS CloudまたはEU Cloud)を開きます。

  2. 使用タイプがNode deployment/DeploymentのAPIトークンを見つけるか作成します。

  3. このトークンをコピーします。

4. TLS証明書をアップロードする

connector-serverモード用に、インスタンスのドメインに対して信頼済みTLS証明書と秘密鍵を発行してください。これらのファイルはインスタンス内からアクセスでき、以降の設定で参照される必要があります。

証明書と鍵ファイルはscprsyncなどでEC2インスタンスにアップロードします。例:

scp -i <your-key.pem> tls-cert.crt tls-key.key admin@<your-ec2-public-ip>:~

5. 設定ファイルを準備する

EC2インスタンス上でwallarm-node-conf.yamlという名前のファイルを作成し、以下の最小構成のいずれかを記述します:

version: 4

mode: connector-server

connector:
  address: ":5050"
  tls_cert: path/to/tls-cert.crt
  tls_key: path/to/tls-key.key

connector.tls_certおよびconnector.tls_keyには、マシンのドメイン用に発行された信頼済み証明書と秘密鍵のパスを指定します。

version: 4

mode: tcp-capture

goreplay:
  filter: 'enp7s0:'
  extra_args:
    - -input-raw-engine
    - vxlan

goreplay.filterパラメータには、トラフィックをキャプチャするネットワークインターフェイスを指定します。ホストで利用可能なネットワークインターフェイスを確認するには次を実行します:

ip addr show

すべての設定パラメータ

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コードを適用します。

  1. sales@wallarm.comへ連絡し、使用するコネクターのWallarmコードバンドルを入手します。
  2. プラットフォーム別の手順に従って、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には次の起動オプションを持つインストーラスクリプトが含まれています:

  • スクリプトのヘルプを表示:

    sudo ./aio-native-0.14.0.x86_64.sh -- --help
    
  • インストーラーを対話モードで実行し、最初のステップで必要なモードを選択:

    sudo env WALLARM_LABELS='group=<GROUP>' ./aio-native-0.14.0.x86_64.sh
    
  • ノードをAPI Discoveryのみモードで使用できます。このモードでは、ノードの組み込み機構で検出される攻撃や追加構成が必要な攻撃(例: クレデンシャルスタッフィング、API仕様違反試行、denylistedおよびgraylisted IPからの悪意ある活動)を含む攻撃はローカルで検出・ブロック(有効化時)されますが、Wallarm Cloudへはエクスポートされません。Cloudに攻撃データが存在しないため、Threat Replay Testingは動作しません。whitelisted IPからのトラフィックは許可されます。

    一方で、API DiscoveryAPIセッション追跡セキュリティ脆弱性の検出は引き続き完全に機能し、関連するセキュリティエンティティを検出してCloudへアップロードし、可視化します。

    このモードは、まずAPIインベントリのレビューと機微なデータの特定を行い、その後に攻撃データのエクスポートを計画的に行いたい方を対象としています。ただし、Wallarmは攻撃データを安全に処理し、必要に応じて機微な攻撃データのマスキングを提供しているため、攻撃のエクスポートを無効化するケースは稀です。

    API Discoveryのみモードを有効にするには:

    1. /etc/wallarm-override/env.listファイルを作成または修正します:

      sudo mkdir /etc/wallarm-override
      sudo vim /etc/wallarm-override/env.list
      

      次の変数を追加します:

      WALLARM_APID_ONLY=true
      
    2. ノードのインストール手順に従います。

    API Discoveryのみモードが有効な場合、/opt/wallarm/var/log/wallarm/wcli-out.logには次のメッセージが出力されます:

    {"level":"info","component":"reqexp","time":"2025-01-31T11:59:38Z","message":"requests export skipped (disabled)"}