MuleSoft Flex Gateway向けWallarmコネクタ¶
本ガイドでは、Wallarmコネクタを使用してMuleSoft Flex Gatewayで管理されているMuleおよび非MuleのAPIをどのように保護するかを説明します。
Flex GatewayのコネクタとしてWallarmを使用するには、Wallarmノードを外部にデプロイし、MuleSoftでWallarm提供のポリシーを適用して、トラフィックを解析のためにWallarmノードへルーティングする必要があります。
Flex Gateway向けWallarmコネクタは、同期(インライン)および非同期(アウトオブバンド)のトラフィック解析の両方をサポートします:
ユースケース¶
本ソリューションは、Flex Gatewayで管理されるAPIを保護するための推奨手法です。
制限事項¶
-
When deploying the Wallarm service with the
LoadBalancer
type using the Helm chart, a trusted SSL/TLS certificate is required for the domain. Self-signed certificates are not yet supported. -
Custom blocking page and blocking code configurations are not yet supported.
All blocked malicious traffic is returned with status code
403
and the default block page. -
Rate limiting by Wallarm rules is not supported.
Rate limiting cannot be enforced on the Wallarm side for this connector. If you need rate limiting, use the features built into your API gateway or cloud platform.
-
Multitenancy is not supported.
All protected APIs are managed under a single Wallarm account; separating protection across multiple accounts for different infrastructures or environments is not yet supported.
要件¶
デプロイを進めるにあたり、次の要件を満たしていることを確認してください:
-
MuleSoftプラットフォームについての理解があります。
-
お使いのアプリケーションとAPIがFlex Gateway上で連携して稼働しています。
-
ご利用のMuleSoftユーザーに、MuleSoft Anypoint Platformアカウントへアーティファクトをアップロードする権限が付与されています。
-
Wallarm ConsoleのUS CloudまたはEU CloudにあるAdministratorアカウントへアクセスできます。
-
ホストシステムにNode.js 16.0.0+と
npm
7+がインストールされています。 -
ホストシステムに
make
がインストールされています。 -
ホストシステムにAnypoint CLI 4.xがインストールされています。
-
ホストシステムにPDK CLIの前提条件がインストールされています。
-
ホストシステムにDockerがインストールされ稼働しています。
-
Native Nodeはバージョン0.16.0以上です。
デプロイ¶
1. Wallarmノードをデプロイする¶
Wallarmノードはデプロイが必要なWallarmプラットフォームの中核コンポーネントです。受信トラフィックを検査し、悪意のあるアクティビティを検出し、脅威の軽減を行うように構成できます。
Flex Gatewayコネクタの場合、ノードはお客様のインフラストラクチャ内にのみデプロイできます。
セルフホスト型ノードのデプロイ方法として適切なアーティファクトを選択し、各手順に従ってください:
-
オールインワンインストーラー: ベアメタルまたはVM上のLinuxインフラ向け
-
Dockerイメージ: コンテナ化デプロイを使用する環境向け
-
Helmチャート: Kubernetesを利用するインフラ向け
必要なNodeのバージョン
MuleSoft Flex Gatewayコネクタは、Native Nodeのバージョン0.16.0以上でのみサポートされます。
2. Wallarmポリシーを取得してMuleSoft Exchangeにアップロードする¶
MuleSoft ExchangeにWallarmポリシーを取得してアップロードするには、次の手順に従ってください:
-
sales@wallarm.comに連絡してコードバンドルを入手します。
-
ポリシーを公開するマシンがすべての必要要件を満たしていることを確認します。
-
ポリシーのアーカイブを展開します。
-
MuleSoft Anypoint Platform → Access Management → Business Groups → 組織を選択 → business group IDをコピーします。
-
展開したポリシーディレクトリで→
Cargo.toml
→[package.metadata.anypoint]
→group_id
に、コピーしたグループIDを指定します: -
ポリシーの作業を行っているのと同じターミナルセッションで、Anypoint CLIで認証します:
-
ポリシーをビルドして公開します:
これでカスタムポリシーがMuleSoft Anypoint PlatformのExchangeで利用可能になりました。
3. WallarmポリシーをAPIに適用する¶
Wallarmポリシーは、個別のAPIにも、すべてのAPIにも適用できます。
-
個別のAPIに適用するには、Anypoint Platform → API Manager → 対象APIを選択 → Policies → Add policyに進みます。
-
すべてのAPIに適用するには、Anypoint Platform → API Manager → Automated Policies → Add automated policyに進みます。
-
ExchangeからWallarmポリシーを選択します。
-
パラメーター
wallarm_node
に、http://
またはhttps://
を含むWallarmノードのURLを指定します。 -
必要に応じてその他のパラメーターを変更します。
-
ポリシーを適用します。
構成オプション¶
Flex Gateway向けWallarmポリシーの設定では、次のパラメーターを指定できます:
パラメーター | 説明 | 必須? |
---|---|---|
wallarm_node | ご利用のWallarm Nodeインスタンスのアドレスを設定します。 | はい |
real_ip_header | プロキシやロードバランサー配下にある場合に、元のクライアントIPアドレスを判定するために使用するヘッダーを指定します。デフォルト: X-Forwarded-For 。 | はい |
wallarm_mode | トラフィック処理モードを指定します: sync はトラフィックを直接Wallarm Nodeで処理し、async は元のフローに影響を与えずにトラフィックのコピーを解析します。デフォルト: sync 。 | はい |
fallback_action | Wallarmノードがダウンしている場合のリクエストの扱いを定義します。pass (すべてのリクエストを許可)またはblock (403コードで全リクエストをブロック)を指定できます。デフォルト: pass 。 | はい |
parse_responses | レスポンスボディを解析するかどうかを制御します。有効にすると、レスポンススキーマのディスカバリーや、攻撃・脆弱性検出機能が強化されます。デフォルト: true 。 | はい |
response_body_limit | Wallarmノードに送信するレスポンスボディのサイズを制限します。デフォルト: 4096 バイト。 | いいえ |
テスト¶
デプロイ済みポリシーの動作をテストするには、次の手順に従ってください:
-
テスト用のパストラバーサル攻撃を含むリクエストをAPIに送信します:
-
Wallarm ConsoleのUS CloudまたはEU Cloudの→ Attacksセクションを開き、攻撃が一覧に表示されていることを確認します。
Wallarmノードのモードがブロッキングに設定され、トラフィックがインラインで流れている場合、リクエストもブロックされます。
トラブルシューティング¶
期待どおりに動作しない場合は、MuleSoft Anypoint Platform → Runtime Manager → 対象アプリケーション → Logsにアクセスして、APIのログを確認してください。
また、API Managerで対象APIを開き、Policiesタブで適用済みのポリシーを確認することで、ポリシーがAPIに適用されているかを検証できます。自動ポリシーについては、See covered APIsオプションを使用して、対象となるAPIと除外理由を確認できます。
ポリシーのアップグレード¶
デプロイ済みのWallarmポリシーを新しいバージョンへアップグレードするには:
-
手順2に従って、更新されたWallarmポリシーをダウンロードし、MuleSoft Exchangeにアップロードします。
-
新しいバージョンがExchangeに表示されたら、API Manager → 対象API → Policies → Wallarmポリシー → Edit configuration → Advanced optionsへ進み、ドロップダウンから新しいポリシーバージョンを選択します。
-
新しいバージョンで追加のパラメーターが導入されている場合は、必要な値を入力します。
-
変更を保存します。
Wallarmポリシーが自動ポリシーとして適用されている場合、直接のアップグレードができないことがあります。その場合は、現在のポリシーを削除し、新しいバージョンを手動で再適用してください。
ポリシーのアップグレードにあたっては、特にメジャーバージョンアップの場合、Wallarmノードのアップグレードが必要になることがあります。セルフホスト型ノードのリリースノートについてはNative Nodeの変更履歴をご参照ください。非推奨化を避け、将来のアップグレードを容易にするため、ノードは定期的に更新することを推奨します。
ポリシーのアンインストール¶
Wallarmポリシーをアンインストールするには、自動ポリシー一覧または個別APIに適用されたポリシー一覧でRemove policyオプションを使用します。