アプリケーションの設定¶
会社に複数のアプリケーションがある場合、会社全体のトラフィック統計だけでなく、各アプリケーションごとの統計を個別に閲覧できると便利です。アプリケーションごとにトラフィックを分離するには、Wallarmシステムの「アプリケーション」エンティティを使用できます。
アプリケーションを使用すると、次のことが可能です。
-
各アプリケーションごとのイベントと統計を閲覧する
-
特定のアプリケーション向けにトリガー、ルール、その他のWallarm機能を構成する
-
環境(本番、テストなど)を個別のアプリケーションとして扱う
環境の分離
アプリケーションとして管理される環境は、現在のWallarmアカウントのすべてのユーザーがアクセスできます。特定のユーザーのみにアクセスを制限したい場合は、アプリケーションではなくmultitenancy機能を使用してください。
Wallarmがアプリケーションを識別できるようにするには、ノードの設定で適切なディレクティブを使って各アプリケーションに一意の識別子を割り当てる必要があります。識別子はアプリケーションのドメインにもドメインパスにも設定できます。
デフォルトでは、Wallarmは各アプリケーションを識別子(ID)-1
のdefault
アプリケーションとして扱います。
アプリケーションの追加¶
-
(任意)Wallarm Console → Settings → Applicationsでアプリケーションを追加します。
管理者アクセス
ロールがAdministratorのユーザーのみがSettings → Applicationsセクションにアクセスできます。
-
ノードの設定で次のいずれかの方法により、アプリケーションに一意のIDを割り当てます。
- WallarmがNGINXモジュール、クラウドマーケットプレイスイメージ、設定ファイルをマウントしたNGINXベースのDockerコンテナ、サイドカーコンテナとしてインストールされている場合は、ディレクティブ
wallarm_application
を使用します。 - WallarmがNGINXベースのDockerコンテナとしてインストールされている場合は、環境変数
WALLARM_APPLICATION
を使用します。 - WallarmがIngressコントローラーとしてインストールされている場合は、Ingress annotation
wallarm-application
を使用します。 - Native Nodeのall-in-oneインストーラー、Dockerイメージ、AWS AMIの場合は、
route_config.wallarm_application
パラメータを使用します。 - Native NodeのHelm chartの場合は、
config.connector.route_config.wallarm_application
パラメータを使用します。 - Edgeのインラインまたはコネクタのセットアップウィンドウでアプリケーションを設定します。
値は
0
を除く正の整数に設定できます。指定したIDのアプリケーションがWallarm Console → Settings → Applicationsに追加されていない場合、自動的に一覧に追加されます。アプリケーション名は指定した識別子に基づいて自動生成されます(例: IDが
-1
のアプリケーションはApplication #1
)。名前は後でWallarm Consoleから変更できます。 - WallarmがNGINXモジュール、クラウドマーケットプレイスイメージ、設定ファイルをマウントしたNGINXベースのDockerコンテナ、サイドカーコンテナとしてインストールされている場合は、ディレクティブ
アプリケーションが正しく構成されている場合、そのアプリケーションを対象とした攻撃の詳細にアプリケーション名が表示されます。アプリケーションの構成をテストするには、アプリケーションのアドレスにテスト攻撃を送信できます。
アプリケーションの自動識別¶
次の基準に基づいてアプリケーションの自動識別を構成できます。
-
特定のリクエストヘッダー
-
NGINXの
map
ディレクティブを使用した特定のリクエストヘッダーまたはURLの一部
NGINXのみ
ここで説明する方法は、NGINXベースのセルフホスト型ノードのデプロイにのみ適用されます。
特定のリクエストヘッダーに基づくアプリケーション識別¶
この方法は次の2ステップで構成します。
-
各リクエストにアプリケーションIDを含むヘッダーが追加されるようにネットワークを構成します。
-
このヘッダーの値を
wallarm_application
ディレクティブの値として使用します。以下の例を参照してください。
NGINX設定ファイルの例:
server {
listen 80;
server_name example.com;
wallarm_mode block;
wallarm_application $http_custom_id;
location / {
proxy_pass http://upstream1:8080;
}
}
攻撃リクエストの例:
このリクエストは次のように処理されます。
-
攻撃と見なされ、Attacksセクションに追加されます。
-
IDが
222
のアプリケーションに関連付けられます。 -
該当するアプリケーションが存在しない場合、Settings → Applicationsに追加され、自動的に
Application #222
という名前が付けられます。
NGINXのmap
ディレクティブを使用し、特定のリクエストヘッダーまたはURLの一部に基づくアプリケーション識別¶
NGINXのmap
ディレクティブを使用して、特定のリクエストヘッダーやエンドポイントURLの一部に基づきアプリケーションを追加できます。ディレクティブの詳細はNGINXのドキュメントを参照してください。
アプリケーション別のイベントと統計の表示¶
アプリケーションを設定したら、次の内容をアプリケーションごとに個別に表示できます。
-
関心のあるアプリケーションだけに関連するAPI sessions
-
関心のあるアプリケーションだけに関連するdashboardsの統計
アプリケーション別のWallarm機能の設定¶
アプリケーションを設定したら、次のWallarm保護機能をアプリケーションごとに個別に構成できます。
Wallarmの機能をアプリケーションに割り当てることは、それらの機能を適用する条件を指定し、インフラストラクチャの各部分に対して設定を差別化する最も簡単な方法です。
アプリケーションの削除¶
Wallarmシステムからアプリケーションを削除するには、ノードの設定ファイルから該当するディレクティブを削除します。Settings → Applicationsセクションからのみアプリケーションを削除した場合は、一覧に復元されます。