PuppyIP 资源中心
跨境电商开发 7 分钟 发布于 2026-11-06

Shopify 公共应用 IP 白名单:11 月 12/20 日截止与配置检查

Shopify 要求公共应用配置 IP 白名单:2026 年 11 月 12 日起先影响批量操作,11 月 20 日起影响上架和新安装。先盘点应用调用 Admin API 的实际公网出口,再选择 IP/CIDR 或 ASN 规则,并用近期流量检查是否会误拦自己的请求。

Shopify Admin API IP 白名单 ASN 公共应用

服务对象与地域限制

PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。

代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。

本文要点

  • 未配置白名单的公共应用,批量查询和批量修改会在 11 月 12 日截止后受阻;11 月 20 日截止后会下架并阻止新安装,现有安装仍可运行。
  • 静态出口可填最多 100 个公网 IP/CIDR;动态出口可填最多 10 个公共 ASN,并建议限定最多 10 个运行国家。
  • 启用 Enforcement 后,来源不在列表内或 Shopify 无法确认来源地址的 Admin API 请求会返回 403;共享 ASN 也包含同一网络里的其他客户。
  • 先用 Run test 检查过去 30 天自己的请求,再启用执行;Shopify Flow 的 Send HTTP request 和 Oxygen 中的相关调用存在兼容性限制。

先分清四个日期与受影响应用

Shopify 在 2026 年 11 月 5 日公告中要求所有 public app(公共应用)配置 IP allowlist,即限制应用令牌可以从哪些网络调用 Admin API。Custom app,以及商家在 Dev Dashboard 或 Shopify admin 中创建的应用,不受这次公共应用强制要求影响;配置指南仍建议 custom app 使用白名单。

2026 年 11 月 12 日晚上 11:59(ET,美国东部时间):未配置 IP 白名单的公共应用,其 bulk queries 和 bulk mutations(批量查询与批量修改)将无法执行。2026 年 11 月 20 日晚上 11:59(ET):其应用将从 Shopify App Store 下架并阻止新安装,同时在商家 Settings > Apps 中被标记;配置指南明确现有安装仍可运行。

当前配置指南另列出后续阶段:2027 年 1 月 15 日向使用该应用的商家显示后台警告;2027 年 4 月 1 日拒绝该应用的 GraphQL Admin API 与 REST Admin API 请求。指南没有为这两个后续日期注明具体时刻或时区;不要把它们当作延长 11 月配置截止日。

有固定出口时,填写实际公网 IP 或 CIDR

先列出后台服务、队列与定时任务真正调用 Shopify 时使用的公网出口。如果服务器经过 NAT 网关,应填写网关公网地址,而非服务器的私有地址;实际通过 IPv6 访问时,也要包含相应 IPv6 地址。固定出口不等于任意购买一个代理地址就能替代应用实际出口。

IP 模式最多填写 100 个地址或网段,每行一个。CIDR 是用“地址/前缀长度”表示一段地址的写法;IPv4 要求 /16 或更窄,IPv6 要求 /32 或更窄,前缀数值越大,范围越小。不写前缀表示单个地址。

网段必须从网络地址开始。官方示例 203.0.113.0/24 展示格式,203.0.113.7/24 则不是正确的网络起点;这些是文档示例,不是可直接加入生产白名单的真实应用出口。只填写自己有权使用且确实承载应用请求的公网范围。

动态出口用 ASN 时,同时核对国家与共享范围

动态出口可按托管商的 ASN 放行。ASN 是标识一个网络的号码;最多填 10 个公共 ASN,每行一个,可带 AS 前缀,也可只填数字。私有、保留及文档示例 ASN 不允许加入。托管商可能运营多个 ASN,也可能后来新增,不能仅凭品牌名推断完整列表。

建议同时选择应用实际运行的国家,最多 10 个;不选择国家,就允许所列 ASN 在任何国家的来源。Shopify 用 MaxMind GeoLite 查询请求来源 IP 的 ASN 与国家,国家指数据给该地址定位的位置,不是网络持有者注册地。缺少 ASN 数据,或已限定国家但缺少国家数据时,请求会被拒绝。

共享 ASN 也覆盖托管商的其他客户:若他人同时拥有泄露的令牌,并在已允许的共享网络中运行服务器,仍可能调用 API。因此能使用精确 IP 时优先缩小到实际 IP;ASN 加国家也不能替代令牌保护、权限管理和泄露处置。

先测试近期流量,再开启 Enforcement

第一步,由有权管理该应用的人员打开 Dev Dashboard,进入应用 Settings,在 IP allowlist 中选择 Manage。通过 Allow requests from 选择 IP addresses 或 Networks (ASN),再填写相应地址、网段,或 ASN 与运行国家。

第二步,在 Test against recent traffic 中点击 Run test,检查过去 30 天自己的哪些地址会被阻止。对照托管商文档与自己应用的 Dev Dashboard Logs 核对实际出口,补齐遗漏后重新测试;最新请求可能过几分钟才进入测试结果。

第三步,确认规则后打开 Enforcement 并 Save。官方指南还要求从白名单之外发起一次获授权的 GraphQL Admin API 请求,确认返回 403;应在自己有权管理的应用环境中验证,并保护令牌。本文只整理官方步骤,没有访问商家日志、使用令牌或执行真实 API 测试。

Flow、Oxygen 与预览请求有不同边界

当前指南明确,白名单与 Shopify Flow 的 Send HTTP request action 中使用的访问令牌不兼容,因为 Shopify 无法确认这些请求的来源 IP,因而会拒绝。由 Oxygen 托管的 storefront 发起的 GraphQL Admin API 令牌请求,也有同样限制。使用这些路径的团队应先梳理架构,不能用放宽 CIDR 来推定问题已解决。

指南同时列出不会被该机制拒绝的请求:开发店铺上的 Dev preview 请求,以及应用嵌入页面的 Direct API access 请求。这些例外不能用来证明后台任务的真实公网出口已经通过规则检查。

这也不同于 storefront 的 Network access testing 预览:后者检查外链和外部来源声明,只发出警告;本次白名单限制的是令牌调用 Admin API 的来源网络。通过前一种预览,不等于已完成本次白名单配置。

遇到 403,先找出被拒绝的具体请求

开启执行后,Shopify 会检查使用应用令牌的 GraphQL Admin API 与 REST Admin API 请求来源;来源不在白名单内,或无法确认来源地址时,会返回 403,前述明确例外除外。先保留状态码、请求标识、时间、API 类型与实际出口,再核对地址、ASN、国家和当前规则,避免无限重试同一个被拒绝请求。

403 本身不能证明只是 IP 白名单问题,也不能证明令牌迁移或权限已经正确。应结合实际响应和当前官方说明处理;更换网络不能绕过公共应用资格、迁移期限、令牌权限或 Shopify 规则。使用新的出口前,应先确认它是获授权且已纳入规则的应用出口。

资料来源

常见问题

暂时关闭执行,会清空已填写的白名单吗?

官方指南说明,关闭 Enforcement 后 Save 会停止执行,但保留已保存的白名单,方便之后再次启用。关闭执行不代表已完成公共应用强制迁移;仍需按对应截止日与实际规则安排修复。

应用必须从商家基础设施调用 Admin API,能申请延期吗?

11 月 5 日公告允许这类团队提交截止日延期请求,同时要求尽快迁移到更能限制 Admin API 令牌暴露的架构。提交申请不等于获批;实际批准范围、期限和条件应以 Shopify 的回复为准。

这项要求只适用于美国,或者需要额外收费吗?

公告的范围是所有公共应用,并未把要求限定为美国应用;ET 只是两个 11 月截止时间的时区。已核对的公告和配置指南没有给出统一费用、套餐价格或逐账号部署状态,不能据此宣称免费或认定自己的应用已经完成配置。