IP ブラックリスト

ポリシー名

IP ブラックリスト

概要

単一の IP アドレスまたは IP アドレスの範囲からの API エンドポイントへのアクセスをブロックする

カテゴリ

セキュリティ

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

3.8.0

返される状況コード

403 - IP は拒否されました

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 アドレスを定義するには、そのアドレスのみを指定します (例: ​192.168.1.1​)。

  • アドレスのサブセットを定義するには、サブセットマスクを指定します。

    たとえば、192.168.3.1/30​ には、192.168.3.0​ から 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​ をブラックリスト登録して、HTTP プロキシを介して接続しているクライアントのアドレスが 92.40.1.255​ である場合、クライアントの要求は、プロキシを使用した公開アドレスで表示されます。

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

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

#[message.inboundProperties['http.headers']['X-Forwarded-For']]

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

ip+blacklist+ip_expression

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

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!