Dev Dashboard で自社サーバーの IP アドレス(または CIDR 範囲)を登録して制限を有効化すると、それ以外の場所からアプリのトークンを使った GraphQL Admin API/REST Admin API へのリクエストを Shopify が 403 で拒否する。
トークンがどこから使われても API は受け付けていた。
許可リスト外から届いたリクエストは 403 で失敗する。トークンが漏れても、許可された IP の外からは使えない。
203.0.113.0/24 のように「IP アドレス+プレフィックス長」で連続したアドレス範囲をまとめて書く記法。サーバー 1 台ずつではなく、ネットワーク単位で許可を登録できる。
アプリのトークンを使ったリクエストが許可リストで判定される。
同じく、許可リスト外からの呼び出しは 403 で失敗する。
Storefront API など Admin API 以外への適用は記載なし。
登録できるアドレス数の上限や IPv6 対応は記載なし。
利用可能なプランや追加料金の有無は記載なし。
| 項目 | 許可リストなし | 許可リストを有効化 |
|---|---|---|
| トークンが使える場所 | どこからでも | 登録した IP/CIDR のみ |
| 範囲外からのリクエスト | 通常どおり処理 | 403 で失敗 |
| トークン漏えい時の影響 | 漏えいしたトークンがそのまま使える | 許可された IP の外からは使えない |
| 設定場所 | — | Dev Dashboard > アプリの Settings > IP allowlist |
| 事前検証 | — | 可能 直近のトラフィックで登録内容をテスト |
Shopify は利用を 強く推奨 している。固定 IP のサーバーや NAT ゲートウェイ経由で API を呼んでいるなら、すぐに導入できる。
動的 IP のサーバーレス環境でホストしているアプリへの対応は 「近日対応予定」。現時点では対象外と考えておく。
Dev Dashboard のアプリ Settings ページにある IP allowlist に、サーバーのアドレスまたは CIDR 範囲を入力。
登録した範囲を最近の実際のトラフィックと照らし合わせて確認する。
enforcement を ON にすると、範囲外からのリクエストが 403 で失敗するようになる。
「トークン(持っているもの)」に「送信元 IP(いる場所)」が加わる。トークンが流出しても、許可リスト外からは Admin API を叩けない。
範囲外からのリクエストは 403。アプリ側のエラーハンドリングや監視で「権限不足」と区別して検知できるよう、ログやアラートの見直しを。
直近のトラフィックに対するテスト機能がある。バッチ・ワーカー・ステージング環境など、見落としがちな送信元をここで洗い出す。
動的 IP のサーバーレス環境は今は対象外。そうした構成では、固定の送信元 IP を持つ構成にするか、対応を待つ判断が必要。
設定はアプリの Settings ページ単位で、そのアプリのトークンを使う GraphQL Admin API と REST Admin API の両方に効く。インフラ変更(サーバー移転・NAT 変更・IP 追加)の手順に「許可リストの更新」を必ず入れること。忘れると本番の API 呼び出しがすべて 403 になる。