コンテンツにスキップ

MuleSoft Mule Gateway向けWallarmコネクタ

本ガイドでは、Wallarmコネクタを使用してMule Gatewayで管理されるMule APIを保護する方法について説明します。

Mule GatewayのコネクタとしてWallarmを使用するには、Wallarmノードを外部にデプロイし、MuleSoftでWallarm提供のポリシーを適用して、トラフィックを解析のためにWallarmノードへルーティングする必要があります。

Mule Gateway向けWallarmコネクタは、インラインでのトラフィック解析のみをサポートします。

Wallarmポリシーを適用したMuleSoft

ユースケース

本ソリューションは、Mule Gatewayで管理されるMule 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プラットフォームについての理解があること。

  • Anypoint PlatformのEnterpriseサブスクリプション(カスタムポリシーのデプロイおよび外部トラフィックのルーティングに必須)。

  • ホストシステムにDockerがインストールされ、稼働していること。

  • Maven (mvn)がインストールされていること。

  • MuleSoftのユーザーが、MuleSoft Anypoint Platformアカウントにアーティファクトをアップロードできる権限を持っていること。

  • [<MAVEN_DIRECTORY>/conf/settings.xml]ファイルに MuleSoft Exchangeの認証情報(ユーザー名とパスワード)が設定されていること。

  • アプリケーションとAPIが関連付けられ、Mule Gateway上で稼働していること。

  • US CloudまたはEU CloudのWallarm ConsoleでAdministratorロールを持つアカウントへのアクセス権があること。

デプロイ

1. Wallarmノードをデプロイする

WallarmノードはWallarmプラットフォームの中核コンポーネントで、デプロイが必要です。受信トラフィックを検査し、悪意あるアクティビティを検出し、脅威の緩和を行うように構成できます。

必要とする管理レベルに応じて、Wallarmがホストするノードとして、またはお客様のインフラストラクチャ内にセルフホストしてデプロイできます。

コネクタ向けのWallarmホスト型ノードをデプロイするには、手順に従ってください。

セルフホスト型ノードのデプロイに使用するアーティファクトを選び、以下の手順に従ってください:

  • ベアメタルまたはVM上のLinuxインフラ向けのAll-in-one installer
  • コンテナ化されたデプロイを使用する環境向けのDocker image
  • AWSインフラ向けのAWS AMI
  • Kubernetesを利用するインフラ向けのHelm chart

2. Wallarmポリシーを取得してMuleSoft Exchangeにアップロードする

MuleSoft ExchangeにWallarmポリシーを取得・アップロードするには、次の手順に従ってください。

  1. Wallarm Console → Security EdgeConnectorsDownload code bundleに進み、プラットフォーム用のコードバンドルをダウンロードします。

    セルフホスト型ノードを使用している場合は、コードバンドル入手のためsales@wallarm.comまでご連絡ください。

  2. ポリシーのアーカイブを展開します。

  3. pom.xmlファイル内で以下を設定します。

    1. MuleSoft Anypoint Platform → Access ManagementBusiness Groups → 組織を選択 → そのIDをコピーします。
    2. pom.xmlファイルのgroupIdパラメータにコピーしたグループIDを指定します。
    <?xml version="1.0" encoding="UTF-8"?>
        <groupId>BUSINESS_GROUP_ID</groupId>
        <artifactId>wallarm</artifactId>
    
    1. MuleSoft Anypoint Platform → Access ManagementBusiness Groups → 組織を選択 → そのIDをコピーします。
    2. pom.xmlファイルのgroupIdパラメータにコピーしたグループIDを指定します。
    3. 特定のリージョンでホストされるMuleSoftインスタンスの場合、対応するリージョンのURLを使用するようにpom.xmlを更新します。例として、欧州リージョンのMuleSoftインスタンスの場合:
    <?xml version="1.0" encoding="UTF-8"?>
        <groupId>BUSINESS_GROUP_ID</groupId>
        <artifactId>wallarm</artifactId>
    
        <properties>
            <mule.maven.plugin.version>4.1.2</mule.maven.plugin.version>
            <exchange.url>https://maven.eu1.anypoint.mulesoft.com/api/v1/organizations/${project.groupId}/maven</exchange.url>
        </properties>
    
        <distributionManagement>
            <repository>
                <id>anypoint-exchange-v3</id>
                <name>Anypoint Exchange</name>
                <url>https://maven.eu1.anypoint.mulesoft.com/api/v3/organizations/${project.groupId}/maven
                </url>
                <layout>default</layout>
            </repository>
        </distributionManagement>
    
        <repositories>
            <repository>
                <id>anypoint-exchange-v3</id>
                <name>Anypoint Exchange</name>
                <url>https://maven.eu1.anypoint.mulesoft.com/api/v3/maven</url>
                <layout>default</layout>
            </repository>
        </repositories>
    
  4. confディレクトリを作成し、その中に次の内容のsettings.xmlファイルを作成します。

    usernamepasswordを実際の認証情報に置き換えます。

    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>anypoint-exchange-v3</id>
            <username>myusername</username>
            <password>mypassword</password>
        </server>
        <server>
            <id>mulesoft-releases-ee</id>
            <username>myusername</username>
            <password>mypassword</password>
        </server>
    </servers>
    </settings>
    

    passwordパラメータにトークンを生成して指定します。

    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>anypoint-exchange-v3</id>
            <username>~~~Token~~~</username>
            <password>01234567-89ab-cdef-0123-456789abcdef</password>
        </server>
        <server>
            <id>mulesoft-releases-ee</id>
            <username>~~~Token~~~</username>
            <password>01234567-89ab-cdef-0123-456789abcdef</password>
        </server>
    </servers>
    </settings>
    
  5. 次のコマンドでポリシーをMuleSoftにデプロイします。

    mvn clean deploy -s conf/settings.xml
    

これで、カスタムポリシーがMuleSoft Anypoint PlatformのExchangeで利用可能になりました。

Wallarmポリシーを適用したMuleSoft

3. WallarmポリシーをAPIに適用する

Wallarmポリシーは個別のAPI、またはすべてのAPIに適用できます。

  1. 個別のAPIに適用するには、Anypoint Platform → API Manager → 対象APIを選択 → PoliciesAdd policyに進みます。

  2. すべてのAPIに適用するには、Anypoint Platform → API ManagerAutomated PoliciesAdd automated policyに進みます。

  3. ExchangeからWallarmポリシーを選択します。

  4. http://またはhttps://を含むWallarmノードのURLを指定します。

  5. 必要に応じて他のパラメータを調整します。

  6. ポリシーを適用します。

Wallarmポリシー

テスト

デプロイ済みポリシーの動作をテストするには、次の手順に従ってください。

  1. テスト用のパストラバーサル攻撃を含むリクエストをAPIに送信します。

    curl http://<GATEWAY_URL>/etc/passwd
    
  2. US CloudまたはEU CloudのWallarm Console → Attacksセクションを開き、攻撃が一覧に表示されていることを確認します。

    インターフェースのAttacks

    Wallarmノードのモードがblockingに設定され、トラフィックがインラインで流れている場合、リクエストはブロックされます。

トラブルシューティング

期待どおりに動作しない場合は、MuleSoft Anypoint Platform → Runtime Manager → 対象アプリケーション → Logsにアクセスし、APIのログを確認してください。

また、API Managerで対象APIを開き、Policiesタブに適用済みのポリシーを確認することで、ポリシーがAPIに適用されているかを検証できます。自動ポリシーの場合、See covered APIsオプションを使って適用対象のAPIと除外理由を確認できます。

ポリシーのアップグレード

デプロイ済みのWallarmポリシーを新しいバージョンにアップグレードするには、次のとおりです。

  1. 更新されたWallarmポリシーをダウンロードし、手順2に従ってMuleSoft Exchangeにアップロードします。

  2. 新しいバージョンがExchangeに表示されたら、API Manager → 対象API → Policies → Wallarmポリシー → Edit configurationAdvanced optionsに進み、ドロップダウンから新しいポリシーバージョンを選択します。

  3. 新しいバージョンで追加のパラメータが導入されている場合は、必要な値を入力します。

    例: 2.xから3.xにアップグレードする場合

    • CLIENT HOST EXPRESSION: 特別な変更が不要な限り、デフォルト値#[attributes.headers['x-forwarded-host']]を使用します。
    • CLIENT IP EXPRESSION: 特別な変更が不要な限り、デフォルト値#[attributes.headers['x-forwarded-for']]を使用します。
  4. 変更を保存します。

Wallarmポリシーが自動ポリシーとして適用されている場合、直接のアップグレードができないことがあります。その場合は、現在のポリシーを削除し、新しいバージョンを手動で再適用してください。

ポリシーのアップグレードでは、特にメジャーバージョン更新時に、Wallarmノードのアップグレードが必要になることがあります。セルフホスト型Nodeのリリースノートおよびアップグレード手順はNative Nodeの変更履歴を、Wallarmホスト型ノードの場合はEdgeコネクタのアップグレード手順を参照してください。将来のアップグレードを容易にし、非推奨化を避けるためにも、ノードは定期的に更新することを推奨します。

ポリシーのアンインストール

Wallarmポリシーをアンインストールするには、自動ポリシー一覧または個別APIに適用されたポリシー一覧でRemove policyオプションを使用します。