すべてのプロダクト
Search
ドキュメントセンター

API Gateway:IP アクセス制御プラグイン

最終更新日:Jun 23, 2026

API GatewayIP アドレスベースのアクセス制御プラグインは、呼び出し元のソース IP アドレスまたは IP アドレス範囲に基づいて API へのアクセスを制御します。API のホワイトリストまたはブラックリストを設定して、特定のソースからのリクエストを許可または拒否できます。

1. 概要

ホワイトリストまたはブラックリストを使用できます:

  • ホワイトリスト:IP アドレス、または appId と IP アドレスの組み合わせに基づいてホワイトリストを設定できます。API Gateway は、ホワイトリストにないソースからのリクエストを拒否します。 

    • IP ホワイトリスト:指定されたソース IP アドレスからのリクエストのみが許可されます。

    • appId が設定されている場合、ルールはそのアプリケーションにのみ適用され、他の承認済みアプリケーションに影響を与えることなく、指定された IP アドレスからのみ API にアクセスできるようになります。

  • ブラックリスト:IP ブラックリストを設定できます。API Gateway は、ブラックリストに登録されている IP アドレスからのすべてのリクエストを拒否します。

重要

IP アドレスベースのアクセス制御プラグインは、IPv4 および IPv6 アドレスをサポートしています。

2. プラグイン設定

プラグインの設定には、JSON または YAML フォーマットを使用できます。スキーマは両方のフォーマットで同じです。フォーマットを変換するには、yaml to json 変換ツールを検索できます。次の表は、YAML フォーマットのテンプレートです。

---
type: ALLOW           # コントロールモード。有効値:ALLOW (ホワイトリストの場合) および REFUSE (ブラックリストの場合)。
resource: "XFF:-1"   # オプション。このパラメーターが指定されている場合、X-Forwarded-For ヘッダーの IP アドレスがクライアントのソース IP として評価に使用されます。この例では、ヘッダーの最後の IP アドレスを使用します。
items: 
- blocks:         # IP アドレス範囲。
  - 61.3.XX.XX/24
  appId: 219810   # オプション。指定した場合、このエントリはこの appId にのみ適用されます。
- blocks:         # IP アドレス。
  - 79.11.XX.XX
- blocks:         # ユーザー VPC。
  - 192.168.XX.XX/32    # これは専用型インスタンスに適用されます。ユーザー VPC から API Gateway に送信されるリクエストの場合、API Gateway が検出するソース IP アドレスはこのアドレス範囲内にあります。

専用型インスタンスの場合、API Gateway はユーザー VPC 内からのリクエストを許可します。この場合、API Gateway は VPC 内からソース IP アドレス (例:192.168.XX.XX) を直接読み取ることができます。ホワイトリストまたはブラックリストを設定する際に、これらの内部 VPC アドレスを直接使用できます。

3. WAF によって転送されたリクエストの処理

Web Application Firewall (WAF) のようなミドルウェアサービスが API Gateway の前にデプロイされている場合、resource フィールドを使用して API レベルの IP フィルタリングを適用します。このフィールドはオプションです。このフィールドを指定しない場合、前のホップの IP アドレスが評価に使用されます。このフィールドを指定すると、X-Forwarded-For ヘッダーの値に基づいて IP 評価を行うことができます。

説明

WAF は、受信したリクエストのソース IP アドレスを X-Forwarded-For ヘッダーの末尾に追加し、リクエストを API Gateway に転送します。これにより、API Gateway は X-Forwarded-For ヘッダーの値を確認することでソース IP アドレスを特定できます。この場合、「XFF:-1」を使用して WAF の直前のホップの IP アドレスを特定することを推奨します。

resource パラメーターは XFF:index フォーマットである必要があります。index は、X-Forwarded-For ヘッダー内の IP アドレスの位置を指定します。インデックスはゼロベースで、負の値も指定できます。たとえば、X-Forwarded-For の値が IP1,IP2,IP3 の場合、インデックス 0 は IP1 を選択し、インデックス -1 は最後の IP アドレスである IP3 を選択します。

4. VPC 間アクセス

VPC 間アクセスのシナリオでは、API Gateway は発信元の VPC 内からソース IP アドレスを直接読み取ることができます。したがって、IP アドレスベースのアクセス制御プラグインで内部 VPC の IP アドレスを直接使用できます。API Gateway はソース VPC ID も読み取ることができるため、パラメーターベースのアクセス制御プラグインを使用して、特定の VPC からのアクセスのみを許可することもできます。

5. WAF と VPC 間トラフィックの組み合わせ

API がパブリックトラフィック (WAF 経由) と内部トラフィックの両方を処理する場合、resourceallowResourceMissing フィールドを使用して両方のシナリオを管理できます。resource フィールドを設定して、WAF トラフィックの X-Forwarded-For ヘッダーからクライアント IP を取得します。次に、allowResourceMissingtrue に設定します。これにより、X-Forwarded-For ヘッダーを持たない内部トラフィックに対して、API Gateway は前のホップの IP にフォールバックできます。

---
type: ALLOW           # コントロールモード。有効値:ALLOW (ホワイトリストの場合) および REFUSE (ブラックリストの場合)。
resource: "XFF:-1"   # オプション。このパラメーターが指定されている場合、X-Forwarded-For ヘッダーの IP アドレスがクライアントのソース IP として評価に使用されます。この例では、ヘッダーの最後の IP アドレスを使用します。
allowResourceMissing: "true"  # リソースが見つからないことを許可します。見つからない場合、前のホップの IP アドレスが評価に使用されます。
items: 
- blocks:         # IP アドレス範囲。
  - 61.3.XX.XX/24   # CIDR ブロックを指定します。
  appId: 219810   # オプション。指定した場合、このエントリはこの appId にのみ適用されます。
- blocks:         # IP アドレス。
  - 79.11.XX.XX    # IP アドレスを指定します。
- blocks:         # ユーザー VPC。
  - 192.168.XX.XX/32    # これは専用型インスタンスに適用されます。ユーザー VPC から API Gateway に送信されるリクエストの場合、API Gateway が検出するソース IP アドレスはこのアドレス範囲内にあります。

6. プラグインデータセットの使用

プラグインの設定方法の詳細については、「IP アドレスベースのアクセス制御プラグイン」をご参照ください。

6.1. プラグインデータセットの作成

  1. API Gateway コンソールにログインし、リージョンを選択します。左側のナビゲーションウィンドウで、[API の管理] > > [プラグイン] を選択します。

  2. [プラグインリスト] ページで、[プラグインデータセット] タブをクリックします。タブの右上隅にある [データセットの作成] をクリックします。表示されるダイアログボックスで、データセットの [名前] を入力し、[タイプ] ドロップダウンリストから IP_WHITELIST_CIDR を選択します。

  3. 対象のデータセットの ID をクリックして、その詳細ページに移動します。[データセットエントリの作成] をクリックします。表示されるダイアログボックスで、[データ値] (IP アドレスまたは CIDR ブロック) を入力し、[有効期間] を指定します。データエントリは自動的に有効期限切れになります。

    [有効期間] には、[短期] (有効期限を指定) または [長期] を選択できます。また、任意で [説明] を入力することもできます。

重要

プラグインデータセットは、専用型インスタンスでのみ有効です。データセットを使用するプラグインが専用型インスタンス上にない API にバインドされている場合、データセットの設定は有効になりません。

6.2. データセットを使用したプラグインの設定

IP アドレスベースのアクセス制御プラグインでプラグインデータセットを使用するには、items 配列内の item に blocksDatasetId フィールドを追加します。blocksDatasetId フィールドと blocks フィールドには互換性があります。各 item 内で、blocksDatasetIdblocks を一緒に、または個別に使用できます。

---
type: ALLOW 
items: 
- blocksDatasetId: 87b65008e92541938537b1a4a236eda5
  appId: 219810
- blocksDatasetId: 87b65008e92541938537b1a4a236eda3
  blocks:
  - 127.0.XX.XX
  - 192.168.XX.XX/24