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

App IP allowlist が ASN に対応
固定 IP の無いサーバーレスアプリも「許可リスト」を使えるように

Dev Dashboard の IP allowlist で、IP アドレスに加えて「Networks(ASN)」を許可できるようになった。ASN は最大 10 個、国は最大 10 か国まで絞れる。IP allowlist はまもなくすべての公開アプリで必須になる。

このページの構成
  1. 何が変わったのか(30秒で理解)
  2. 仕組み図解 : リクエストが判定される流れ
  3. IP アドレス許可 vs Networks(ASN)許可
  4. 設定できる上限
  5. 設定手順(4ステップ)
  6. 自分のアプリはどうするべきか(判定フロー)
  7. 技術者が押さえるべき5つのポイント
  8. 業務に活かせる3つのユースケース
  9. 提案で使える1行サマリ

1何が変わったのか

これまで IP allowlist は「固定 IP アドレス」を登録する前提だったため、送信元 IP が変わるサーバーレス基盤のアプリでは使いづらかった。
今回、ホスティング事業者の ASN(自律システム番号)を許可できるようになり、固定 IP が無いアプリでも許可リストで API アクセスを制限できるようになった。
IP ?

これまで : IP アドレスのみ

固定 IP を持つアプリなら登録できた。送信元 IP が動的なアプリは、登録する IP を決められなかった。

ASN

これから : IP アドレス または Networks(ASN)

アプリの Settings ページにある IP allowlist で、「IP addresses」か「Networks (ASN)」を選べる。ASN では国も指定して絞り込める。

IP allowlist はまもなくすべての公開アプリで必須になる。 Shopify はすべてのアプリに IP allowlist の利用を強く推奨している。必須化の具体的な日付は記載なし。

2仕組み図解 : リクエストが判定される流れ

あなたのアプリ サーバーレス基盤 送信元 IP は動的 Shopify API を呼ぶ IP allowlist 許可 ASN 内? 許可国内? Yes リクエスト許可 通常どおり API が応答 No 403 で失敗 許可ネットワーク外からのリクエスト ※ 拒否されるのは enforcement(強制)を ON にした後
ASN(Autonomous System Number)とは : インターネット上で、ひとつの事業者が管理するネットワークのまとまりを識別する番号。
個々の IP アドレスではなく「どの事業者のネットワークから来たか」で許可するので、IP が毎回変わっても同じホスティング事業者内なら通せる。

3IP アドレス許可 vs Networks(ASN)許可

項目IP addressesNetworks (ASN)
向いているアプリ 固定 IP 静的な IP から Shopify を呼ぶアプリ 動的 IP サーバーレス等、送信元 IP が変わるアプリ
登録するもの 送信元 IP アドレス ホスティング事業者の ASN + アプリが動く国
上限 記載なし ASN 最大 10 個 / 国 最大 10 か国
許可外からのリクエスト 403 enforcement ON 後は 403 ステータスで失敗
設定場所 Dev Dashboard > アプリの Settings ページ > IP allowlist セクション

4設定できる上限

10
ASN の最大登録数
10
絞り込める国の最大数
403
許可外リクエストのステータス
IP アドレスと ASN を同時に併用できるか、IP アドレスの登録上限、対象となる API の範囲は記載なし。詳細は公式ドキュメント「Restrict API access with an IP allowlist」で確認すること。

5設定手順(4ステップ)

1

Dev Dashboard を開く

アプリの Settings ページにある IP allowlist セクションへ。

2
IP ASN

Networks (ASN) を選ぶ

ASN を最大 10 個入力し、国を最大 10 か国に絞る。

3

直近トラフィックでテスト

登録した内容を実際の最近のトラフィックに当てて確認。

4

enforcement を ON

以降、許可ネットワーク外のリクエストは 403 で失敗する。

「テスト → 強制」の 2 段階になっているので、いきなり本番トラフィックを遮断せずに済む。手順の詳細は公式ドキュメント「Restrict API access with an IP allowlist」に記載。

6自分のアプリはどうするべきか(判定フロー)

アプリの送信元 IP は? (egress IP) 固定 動的 IP アドレスを引き続き許可 静的 IP から Shopify を呼んでいるなら、そのアドレスを許可し続ける ホスティング事業者の ASN + 稼働国を許可 サーバーレス等で IP が変わるなら、事業者の ASN とアプリが動く国を登録

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

1. 公開アプリはまもなく必須

IP allowlist はすべての公開アプリで必須化予定。期日は記載なしのため、必須化を待たず早めに設定しておくのが安全。

egress

2. まず egress IP の性質を確認

固定か動的かで選ぶ方式が変わる。インフラ構成上の「Shopify へ出ていく IP」がどれかを先に棚卸しする。

10/10

3. ASN 10 個・国 10 か国の上限

マルチリージョン・マルチ事業者構成のアプリは上限内に収まるか事前に確認。国の絞り込みは稼働国だけを列挙する。

403

4. 遮断時は 403 が返る

enforcement ON 後、許可外から呼ぶと 403。アプリ側のエラーハンドリング・監視で 403 を「認可設定の問題」として識別できるようにしておく。

5. テストしてから強制する

登録内容は直近のトラフィックに当ててテストしてから enforcement を ON にできる。いきなり強制せず、テスト結果で漏れている送信元が無いかを確認する順序を運用手順に組み込む。

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

ASN
USE CASE 1

サーバーレス構成の公開アプリを、必須化の前に準備しておく

課題
サーバーレス基盤で動く公開アプリで送信元 IP が固定できず、IP allowlist を設定できていない。必須化が迫っている。
打ち手
Networks (ASN) を選び、ホスティング事業者の ASN とアプリの稼働国を登録 → 直近トラフィックでテスト → enforcement ON。
効果
固定 IP 用の追加インフラを用意せずに許可リストへ対応でき、必須化時の対応漏れを防げる。
技術メモ
ASN 最大 10 個・国最大 10 か国。登録すべき ASN の具体値はホスティング事業者側で確認(記事に具体例は記載なし)。
USE CASE 2

アクセストークン漏えい時の被害を「ネットワーク境界」で抑える

課題
アプリの認証情報が漏れた場合、どこからでも Shopify API を叩かれてしまうリスクがある。
打ち手
IP allowlist(固定 IP なら IP、動的なら ASN+国)を設定し enforcement を ON。
効果
許可ネットワーク外からのリクエストは 403 で失敗するため、認証に加えてネットワーク面の防御層が一枚増える。セキュリティ審査や顧客への説明材料にもなる。
技術メモ
ASN は事業者単位の許可なので、IP 指定よりは範囲が広い点を前提に国の絞り込みも併用する。
直近トラフィック
USE CASE 3

複数アプリを抱える開発チームの「段階的ロールアウト」

課題
受託・自社含め複数の公開アプリがあり、一斉に許可リストを強制するとどこかが 403 で止まる不安がある。
打ち手
アプリごとに egress IP の性質を棚卸し → 方式(IP/ASN)を決めて登録 → テストで漏れを確認 → 問題ないアプリから順に enforcement ON。
効果
本番停止のリスクを抑えつつ、必須化前に全アプリの対応を完了できる。
技術メモ
enforcement 後の 403 をアラート対象にし、インフラ変更(リージョン追加・事業者変更)時は許可リスト更新を変更手順に含める。

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

「IP allowlist がホスティング事業者の ASN(最大 10 個・最大 10 か国)に対応し、
固定 IP の無いサーバーレスアプリでも API アクセスを制限できるようになった。
公開アプリではまもなく必須になるので、テストしてから強制する手順で今のうちに設定を。」