IP ホワイトリスト

ポリシー名

IP ホワイトリスト

概要

IP アドレスのリストまたは範囲からのアクセス要求を許可する

カテゴリ

セキュリティ

使用可能な最初の Mule バージョン

3.8.0

返される状況コード

403 - IP は拒否されました

IP ホワイトリストポリシーは、IP アドレスのリストまたは範囲から設定されている API エンドポイントへのアクセスを許可します。

IP ホワイトリストポリシーは、ソース IP (ポリシーの設定時に指定します) が個別 IP のリストまたは IP 範囲と一致した場合に、保護対象のリソースへのアクセスを許可します。

ビジネスのニーズに応じて、Mule Runtime Engine 4 (Mule) では DataWeave 2.0 式、Mule 3 では MEL 式を指定できます。IP がポリシーで定義されている制約 IP リストに含まれているかどうかを確認するときに使用するソース IP を式で定義します。

ポリシーでホワイトリスト登録する IP アドレスの指定

ポリシーで承認する IP アドレスは、次の方法で指定できます。

  • 要求の IP アドレスに基づいてアクセスをホワイトリスト登録する。

  • 特定の DataWeave 式または MEL 式を解決することで決定される発生元 IP アドレス (x-Forwarded-For​ ヘッダーなど) に基づいてアクセスをホワイトリスト登録する

  • その他のすべての発生元をホワイトリスト登録する

要求の IP アドレスに基づいてアクセスをホワイトリスト登録する

要求の IP アドレスに基づいてアクセスをホワイトリスト登録する手順は次のとおりです。

  • 特定の IP アドレスを定義するには、そのアドレスのみを [Whitelist (ホワイトリスト)] 項目に指定します (例: ​192.168.1.1​)。

  • アドレスのサブセットを定義するには、サブセットマスクを指定します。 たとえば、192.168.3.1/30​ には、192.168.3.01​ から 192.168.3.3​ の IP アドレスが含まれます。

  • IP アドレスの範囲全体を定義するには、許可する IP アドレスの関連オクテットを指定します。

    たとえば、192.168​と設定すると、192.168.0.0​ ~ 192.168.255.255​ の IP アドレスが含まれます。

x-Forwarded-For ヘッダーの発生元 IP アドレスに基づいてアクセスをホワイトリスト登録する

クライアントが HTTP プロキシまたはロードバランサを介して API に接続している場合、要求に含まれるアドレスではなく、クライアントの特定の IP アドレス (要求の発生元 IP アドレス) をホワイトリスト登録できます。

たとえば、192.168.2.3​ (非公開 IP) をホワイトリスト登録して、HTTP プロキシを介して接続しているクライアントのアドレスが 92.40.1.255​ (公開 IP) である場合、クライアントの要求は、プロキシを使用した公開アドレスで表示されます。

通常、アプリケーションは X-Forwarded-For​ ヘッダーを使用して、エンドポイントにリダイレクトされた要求の発生元 IP アドレスを識別します。

ポリシーで DataWeave 2.0 または MEL 式を使用してサービスに x-Forwarded-For​ ヘッダー内の IP アドレスを探すように指示できます。

ポリシーパラメータの [IP expression (IP 式)] 項目で IP アドレスを指定すると、Anypoint Platform は要求の x-Forwarded-For​ ヘッダーの連結値に含まれる最初の IP アドレスを参照するように指示されます。

#[attributes.headers['x-forwarded-for']]

ポリシーのパラメータの設定

UI から IP ホワイトリストポリシーを API に適用する場合は、以下のパラメータを設定できます。

パラメータ 説明

IP 式

この API 要求から IP アドレスを抽出するタメに使用する DataWeave 2.0 または MEL 式。

ホワイトリスト

API へのアクセスを許可する IP アドレスのリストIP または IP 範囲は一度に 1 つずつ、必要なだけ何度も定義できます。 詳細は、​「ポリシーでホワイトリスト登録する IP アドレスの指定」​を参照してください。

メソッドとリソースの条件

API の一部またはすべてのメソッドとリソースを選択するための設定を追加するオプション。

Was this article helpful?

💙 Thanks for your feedback!