Developer / アプリのセキュリティ

アプリの IP 許可リストが
「IP アドレス + ASN」の併用に対応
上限も 100 → 250 件へ

Dev Dashboard の IP 許可リストで、固定 IP と ASN(自律システム番号)を同じリストに登録できるようになった。固定 IP と動的 IP が混在するアプリでも設定しやすくなる。IP 許可リストは近く全ての公開アプリとカスタムアプリで必須になる予定。

このページの構成
  1. 何が変わるのか(30秒で理解)
  2. 仕組み図解 : リクエストが許可・拒否される流れ
  3. 上限値の変化
  4. 変更前と変更後の比較
  5. IP と ASN、どちらを使うべきか
  6. 対応手順(3ステップ)
  7. 技術者が押さえるべき5つのポイント
  8. 業務に活かせる3つのユースケース
  9. 提案で使える1行サマリ

1何が変わるのか

これまではアプリ設定ページの IP 許可リストで 「IP アドレス」と「ネットワーク(ASN)」のどちらか一方を選ぶ必要があった。
これからは 両方を同じ許可リストに登録できる。さらに IP アドレス/範囲の上限が 100 件から 250 件に増えた。
IP ASN

変更前 : どちらか一方だけ

IP アドレスで制限するか、ネットワーク(ASN)で制限するかを選ぶ方式。IP アドレス/範囲の上限は 100 件。

IP ASN

変更後 : 両方を併用できる

IP アドレス/CIDR 範囲(最大 250 件)と ASN(最大 10 件)を同時に登録可能。片方だけの登録もできる。

2仕組み図解 : リクエストが許可・拒否される流れ

自社サーバー 固定 IP サーバーレス 動的 IP API リクエスト アプリの IP 許可リスト IP アドレス/CIDR 範囲 : 最大 250 ネットワーク(ASN) : 最大 10 └ 国で ASN を制限 : 最大 10 か国 どれかに一致 どれにも不一致 許可 Shopify API へ到達 403 で失敗 許可リスト外
判定は「OR」 : 登録した IP または ASN の どれか 1 つに一致すれば許可。どれにも一致しなければ 403 ステータスコードで失敗する。
国の制限は ASN にだけ効く。IP アドレスには国の制限がかからない。

3上限値の変化

IP アドレス/範囲
250
従来 100 → 2.5 倍

「IP addresses or CIDR ranges」欄に登録

ASN
10
従来の上限 : 記載なし

「Networks (ASN)」欄に登録

国による ASN の制限
10
か国まで選択可

「Limit ASNs to countries」で設定

4変更前と変更後の比較

項目変更前変更後
IP と ASN の併用 どちらか一方 併用可 片方だけでも可
IP アドレス/範囲の上限 100 件 250 件
ASN の上限 記載なし 10 件
国による制限 記載なし 最大 10 か国。ASN のみに適用
許可リスト外からのリクエスト 記載なし 403 で失敗
必須かどうか 任意 近く必須化 全ての公開アプリ・カスタムアプリが対象(時期は記載なし)

5IP と ASN、どちらを使うべきか

特定の IP アドレス = 最も安全 ホスティング事業者のネットワーク 自社 他の顧客 : 通れない 自社サーバーだけがアクセストークンを使える ASN = ネットワーク全体を許可 ホスティング事業者のネットワーク全体 自社 他の顧客 : 通れてしまう 動的 IP の場合だけ使い、国で絞る
推奨

基本は特定の IP アドレス

可能な限り IP アドレスで許可する。自社サーバーだけがアプリのアクセストークンを使えるため、最も安全な方法とされている。

限定的に

ASN は動的 IP の場合だけ

サーバーレス関数のように IP が変わるリクエストにだけ ASN を追加する。その上で、アプリを動かしている国に絞って登録する。

ASN を許可すると、ホスティング事業者の他の顧客が使うアドレスも含めて、そのネットワークの全アドレスを許可することになる。

6対応手順(3ステップ)

1

設定ページを開く

Dev Dashboard でアプリの Settings ページを開き、IP allowlist セクションへ。

2

IP・ASN・国を登録

固定 IP は IP/CIDR 欄へ。動的な送信元だけ ASN 欄に登録し、国で絞る。

3

直近トラフィックで検証

強制適用(enforcement)を ON にする前に、更新した許可リストを直近のトラフィックで検証する。

詳しい設定方法は公式ドキュメント 「Restrict API access with an IP allowlist」 を参照。検証の具体的な方法(どの画面・どのログを見るか)は今回の記事には記載なし。

7技術者が押さえるべき5つのポイント

403

1. 許可リスト外は 403

登録漏れのある送信元からの API 呼び出しは 403 で失敗する。アプリ側のエラーハンドリングや監視で、403 の急増を「許可リスト漏れ」の兆候として検知できるようにしておきたい。

OR

2. 判定は IP と ASN の OR

登録した IP か ASN のどれか 1 つに一致すれば許可。ASN を追加すると、それだけ許可される範囲が広がる(AND で絞り込まれるわけではない)。

3. 国の制限は ASN にしか効かない

「Limit ASNs to countries」は ASN 経由のリクエストだけを絞る。IP アドレスで登録した送信元には国の制限は適用されない。

CIDR

4. CIDR 範囲で登録できる

単一 IP だけでなく CIDR 範囲も 1 件として登録可能で、上限は 250 件。固定 IP が多いマルチリージョン構成でも、CIDR でまとめれば上限内に収めやすい。

5. 必須化に向けて、送信元 IP の棚卸しを先に進める

IP 許可リストは近く 全ての公開アプリとカスタムアプリで必須になる予定(開始時期は記載なし)。Shopify も全アプリでの利用を強く推奨している。Shopify API を呼ぶ全経路(バッチ、Webhook 処理、管理画面のバックエンド、サーバーレス関数など)の送信元を洗い出し、固定 IP にできるものは固定 IP に寄せておくのが安全。

8業務に活かせる3つのユースケース

VM λ
USE CASE 1

固定サーバーとサーバーレスが混在するアプリを 1 つの許可リストで保護

課題
メインのバックエンドは固定 IP だが、一部の処理をサーバーレス関数で動かしていて送信元 IP が変わる。従来は IP か ASN のどちらかを選ぶ必要があり、両方の経路をうまく許可できなかった。
打ち手
固定 IP のサーバーは IP/CIDR 欄に登録。サーバーレス関数の送信元だけを ASN 欄に登録し、実行している国に絞る。
効果
大半のトラフィックは最も安全な IP 指定で守りつつ、動的 IP の経路も止めずに運用できる。
技術メモ
ASN を追加すると OR 判定で許可範囲が広がる点に注意。サーバーレスでも固定の送信元 IP を持たせられる構成なら、IP 指定に寄せる方が安全。
必須化
USE CASE 2

受託開発のカスタムアプリを必須化前に棚卸し・対応

課題
複数のクライアント向けにカスタムアプリを運用しているが、どれも IP 許可リストを設定していない。近く必須化されると、設定漏れのアプリが止まるリスクがある。
打ち手
アプリごとに Shopify API を呼ぶ全経路の送信元を洗い出す → 固定 IP は IP 欄、動的 IP は ASN+国制限で登録 → 直近トラフィックで検証してから強制適用。
効果
必須化の時点で慌てず、アクセストークンの漏えい時の被害も抑えられる。保守契約の中でセキュリティ対応として提案できる。
技術メモ
必須化の開始時期は記載なし。強制適用後に許可リスト外から呼ぶと 403 で失敗するので、cron やバッチなど実行頻度の低い経路の登録漏れに特に注意。
250
USE CASE 3

マルチリージョン構成の公開アプリで、ASN に頼らず IP 指定を貫く

課題
複数リージョンにサーバーを置く公開アプリで固定 IP が 100 件を超え、IP 指定では収まらないため ASN 指定を選ばざるを得なかった。
打ち手
上限が 250 件に増えたので、IP アドレス/CIDR 範囲での指定に切り替える。どうしても動的な経路だけ ASN を残す。
効果
ホスティング事業者の他の顧客まで許可してしまう ASN 指定をやめられ、アクセストークンを使える送信元を自社サーバーだけに絞れる。
技術メモ
切り替え前に、新しい許可リストを直近トラフィックで検証すること。連続したアドレスは CIDR にまとめると件数を節約できる。

9提案で使える1行サマリ

「アプリの IP 許可リストに、固定 IP(最大 250 件)と ASN(最大 10 件)を一緒に登録できるようになった。
基本は IP 指定、動的 IP の経路だけ ASN +国制限。
近く全アプリで必須になる前に、送信元の棚卸しと検証を済ませておこう。」