MuleSoft用Wallarmコネクタ¶
MuleSoftは、サービス間のシームレスな接続とデータ統合を可能にする統合プラットフォームであり、APIゲートウェイがクライアントアプリケーションのAPIアクセスのエントリポイントとして機能します。Wallarmは、MuleSoft上で稼働するAPIの保護のためのコネクタとして機能します。
MuleSoft用のコネクタとしてWallarmを使用するには、Wallarmノードを外部にデプロイし、Wallarmが提供するポリシーをMuleSoftに適用してトラフィックをWallarmノードに転送し、解析する必要があります。
MuleSoft用Wallarmコネクタはin-lineトラフィック解析のみをサポートします:
ユースケース¶
サポートされている全Wallarmデプロイメントオプションの中で、このソリューションは、単一のポリシーでMuleSoft Anypointプラットフォーム上にデプロイされたAPIの保護に推奨されます。
制限事項¶
要件¶
デプロイを進めるため、下記の要件を満たしていることをご確認ください:
-
MuleSoftプラットフォームの理解。
-
ホストシステムにDockerがインストールされ、稼働していること。
-
Maven(
mvn
)がインストールされていること。 -
MuleSoft Exchangeのコントリビューターとしての権限が付与され、組織のMuleSoft Anypoint Platformアカウントにアーティファクトをアップロードできること。
-
MuleSoft Exchangeの認証情報(ユーザ名とパスワード)が
<MAVEN_DIRECTORY>/conf/settings.xml
ファイルに指定されていること。 -
アプリケーションとAPIがMuleSoft上で連携し、稼働していること。
-
US CloudまたはEU CloudのWallarm ConsoleでAdministratorロールのアカウントにアクセスできること。
デプロイ¶
1. Wallarmノードのデプロイ¶
WallarmノードはWallarmプラットフォームの中核コンポーネントであり、着信トラフィックを検査し、不正な活動を検知し、脅威を軽減するように構成できます。
必要なコントロールのレベルに応じて、Wallarmにホスティングされたノードまたは自己管理のインフラストラクチャにデプロイすることが可能です。
コネクタ用のWallarmホスティングノードをデプロイするには、指示に従ってください。
自己管理ノードデプロイメント用のアーティファクトを選択し、添付の手順に従ってください:
- ベアメタルまたはVM上のLinuxインフラ向けAll-in-one installer
- コンテナ化デプロイを使用する環境向けDocker image
- Kubernetesを利用するインフラ向けHelm chart
2. WallarmポリシーのMuleSoft Exchangeへの取得とアップロード¶
以下の手順に従い、Wallarmポリシーを取得し、MuleSoft Exchangeにアップロードしてください:
-
Wallarm Console → Security Edge → Connectors → Download code bundleに進み、プラットフォームに適したコードバンドルをダウンロードしてください。
自己管理ノードを使用している場合は、sales@wallarm.comに連絡しコードバンドルを入手してください。
-
ポリシーアーカイブを展開してください。
-
pom.xml
ファイル内で、以下の内容を指定してください:- MuleSoft Anypoint Platformにアクセスし、Access Management → Business Groups → 組織を選択し、そのIDをコピーしてください。
pom.xml
ファイルのgroupId
パラメーターにコピーしたグループIDを指定してください:
- MuleSoft Anypoint Platformにアクセスし、Access Management → Business Groups → 組織を選択し、そのIDをコピーしてください。
pom.xml
ファイルのgroupId
パラメーターにコピーしたグループIDを指定してください。- 特定地域でホスティングされているMuleSoftインスタンスの場合、
pom.xml
ファイルを更新し、対応する地域のURLを使用してください。例えば、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>
-
conf
ディレクトリを作成し、その中に次の内容のsettings.xml
ファイルを作成してください:username
と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>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> </servers> </settings>
-
次のコマンドを使用して、ポリシーをMuleSoftにデプロイしてください:
カスタムポリシーがMuleSoft Anypoint Platform Exchangeに利用可能になりました。
3. WallarmポリシーをAPIに適用¶
Wallarmポリシーは、すべてのAPIまたは個別のAPIに適用できます。
個別のAPIにポリシーを適用¶
個別のAPIにWallarmポリシーを適用して保護するには、以下の手順に従ってください:
-
Anypoint PlatformでAPI Managerに移動し、対象のAPIを選択してください。
-
Policies → Add policyに移動し、Wallarmポリシーを選択してください。
-
Wallarmノードインスタンスのアドレスを
http://
またはhttps://
を含めて指定してください。 -
必要に応じて、他のパラメーターを変更してください。
-
ポリシーを適用してください。
すべてのAPIにポリシーを適用¶
MuleSoftのAutomated policyオプションを使用してすべてのAPIにWallarmポリシーを適用するには、以下の手順に従ってください:
-
Anypoint PlatformのAPI Manager → Automated Policiesに移動してください。
-
Add automated policyをクリックし、ExchangeからWallarmポリシーを選択してください。
-
Wallarmノードインスタンスのアドレスを
http://
またはhttps://
を含めて指定してください。 -
必要に応じて、他のパラメーターを変更してください。
-
ポリシーを適用してください。
テスト¶
デプロイされたポリシーの機能をテストするには、以下の手順に従ってください:
-
テスト用のPath Traversal攻撃を含むリクエストをAPIに送信してください:
-
Wallarm ConsoleのUS CloudまたはEU CloudのAttacksセクションを開き、攻撃がリストに表示されていることを確認してください。
もしWallarmノードモードがblockingに設定され、トラフィック解析がin-lineの場合、リクエストはブロックされます。
トラブルシューティング¶
ソリューションが期待通りに機能しない場合は、MuleSoft Anypoint PlatformのRuntime Manager → 対象アプリケーション → LogsからAPIのログを参照してください。
また、API Managerで対象APIに移動し、Policiesタブに表示される適用ポリシーを確認することで、APIにポリシーが適用されているかどうかを検証できます。Automated policiesの場合、See covered APIsオプションを使用して、カバーされているAPIと除外理由を確認してください。
ポリシーのアップグレード¶
デプロイされたWallarmポリシーを新しいバージョンへアップグレードするには:
-
ステップ2で説明されているように、更新されたWallarmポリシーをダウンロードし、MuleSoft Exchangeにアップロードしてください。
-
新バージョンがExchangeに表示されたら、API Manager → 対象API → Policies → Wallarmポリシー → Edit configuration → Advanced optionsに移動し、ドロップダウンから新しいポリシーバージョンを選択してください。
-
新バージョンで追加のパラメーターが導入された場合、必要な値を入力してください。
例えば、2.xから3.xにアップグレードする場合:
- CLIENT HOST EXPRESSION:特に変更が必要ない限り、デフォルト値
#[attributes.headers['x-forwarded-host']]
を使用してください。 - CLIENT IP EXPRESSION:特に変更が必要ない限り、デフォルト値
#[attributes.headers['x-forwarded-for']]
を使用してください。
- CLIENT HOST EXPRESSION:特に変更が必要ない限り、デフォルト値
-
変更を保存してください。
もしWallarmポリシーがautomated policyとして適用されている場合、直接のアップグレードが不可能なことがあります。その場合は、現行ポリシーを削除し、新バージョンを手動で再適用してください。
ポリシーのアップグレードには、特にメジャーバージョンアップの場合、Wallarmノードのアップグレードが必要となることがあります。リリース更新やアップグレード手順についてはWallarm Native Node changelogを参照してください。将来的なアップグレードの簡便さと非推奨の回避のため、定期的なノードの更新を推奨します。
ポリシーのアンインストール¶
Wallarmポリシーをアンインストールするには、automated policyリストまたは個別APIに適用されているポリシー一覧のRemove policyオプションを使用してください。