📝

ALB へのアクセスを API Gateway からのみに制限してみた

に公開

API Gateway の IP アドレスで制限しました。

1. ALB の作成

デフォルト設定で作成しました。
ターゲットグループは使用せず、固定レスポンスを返す設定です。

2. API Gateway の作成

以下の設定で作成しました。

  • REST API
  • HTTP プロキシ統合
  • エンドポイントは手順 1 で作成した ALB のデフォルト DNS

3. プレフィックスリストの作成

API Gateway の IP アドレス範囲は複数存在するため、プレフィックスリストを作成します。
まずは ip-ranges.json をダウンロードします。
以下のコマンドで東京リージョンの API Gateway の IP アドレス範囲を抽出します。

$ jq -r '.prefixes[] | select(.region=="ap-northeast-1") | select(.service=="API_GATEWAY") | .ip_prefix' < ip-ranges.json

18.180.88.0/23
3.112.162.0/23
3.112.96.160/27
35.73.115.128/25
35.75.130.0/24
35.75.131.0/26
35.77.112.0/22
35.77.124.0/23

上記で抽出した IP アドレスでプレフィックスリストを作成します。

4. 動作確認

ALB のセキュリティグループのインバウンドルールに手順 3 で作成したプレフィックスリストを追加します。

この状態で API Gateway にアクセスすると ALB からの固定レスポンスが返されます。

一方で、プレフィックスリストを許可しない場合にはタイムアウトが発生します。

まとめ

今回は ALB へのアクセスを API Gateway からのみに制限してみました。
どなたかの参考になれば幸いです。

Discussion