You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake网络策略白名单Azure DevOps URL遇IP限制问题咨询

Snowflake网络策略白名单Azure DevOps问题解答

问题背景

你尝试在Snowflake中创建网络策略白名单Azure DevOps组织URL,使用的SQL代码:

CREATE NETWORK POLICY allow_specific_urls
  ALLOWED_DOMAINS_LIST = ('dev.azure.com', 'yourorganization.visualstudio.com')
  BLOCKED_DOMAINS_LIST = ();

但从Azure DevOps流水线运行Snowflake查询时,遇到错误:

Incoming request with IP/Token 49.37.133.107 is not allowed to access Snowflake. Contact your account administrator.

以下是针对你问题的解答:

1. 这种白名单Azure DevOps URL的方式是否正确?

不正确。Snowflake的ALLOWED_DOMAINS_LIST仅用于客户端驱动通过反向DNS验证发起请求的域名,要求客户端请求的源IP能反向解析到指定域名。但Azure DevOps流水线的请求是从Azure服务器IP发起,并非从dev.azure.com或visualstudio.com域名对应的IP作为源,因此该配置无法生效,必须使用IP白名单而非域名。

2. 不同区域或服务是否需包含特定的Azure DevOps URL?

不需要,因为URL白名单本身不适用于流水线场景。但不同区域的Azure DevOps流水线使用的IP地址范围不同,你需要添加流水线所在Azure区域对应的IP段。

3. 实施该网络策略还需考虑哪些因素?

  • 代理类型:区分是Microsoft托管代理还是自托管代理,前者需要添加Azure区域IP段,后者只需添加代理的固定公网IP。
  • IP范围更新:Microsoft托管代理的IP段会每周更新,需定期同步最新范围。
  • 策略优先级:确保你的网络策略不会被更严格的账户级/用户级策略覆盖。
  • 应急访问:预留管理员或运维人员的固定IP,避免被策略拦截无法访问Snowflake。
  • 测试场景:测试环境的流水线IP也需加入白名单,避免测试失败。

4. 如何确保Azure DevOps的IP地址被纳入允许列表?

分两种代理类型处理:

  • 自托管代理:直接将代理服务器的静态公网IP添加到ALLOWED_IP_LIST,示例:
CREATE OR REPLACE NETWORK POLICY allow_ado_self_hosted
  ALLOWED_IP_LIST = ('123.45.67.89', '192.168.1.100') -- 前者是自托管代理IP,后者是管理员IP
  BLOCKED_IP_LIST = ();
  • Microsoft托管代理:
    1. 获取Azure官方发布的每周更新IP范围文件,找到流水线所在区域的AzureCloud.<区域>对应的IP段。
    2. 将这些IP段添加到ALLOWED_IP_LIST,示例(以East US区域为例):
CREATE OR REPLACE NETWORK POLICY allow_ado_microsoft_hosted
  ALLOWED_IP_LIST = ('40.76.0.0/16', '52.170.0.0/16', '192.168.1.100')
  BLOCKED_IP_LIST = ();
  1. 定期更新IP范围,保证策略有效性。

5. 如何确保所有Azure DevOps请求被允许同时限制其他请求?

通过严格的IP白名单策略实现:

  1. 仅添加Azure DevOps流水线对应的IP段/IP,加上必要的应急访问IP。
  2. 清空BLOCKED_IP_LIST,并将策略应用到账户或特定用户(根据需求选择)。
  3. 完整示例:
-- 创建仅允许Azure DevOps和管理员访问的策略
CREATE OR REPLACE NETWORK POLICY allow_ado_only
  ALLOWED_IP_LIST = ('40.76.0.0/16', '52.170.0.0/16', '192.168.1.100')
  ALLOWED_DOMAINS_LIST = () -- 无需域名白名单
  BLOCKED_IP_LIST = ();

-- 应用到整个账户(所有用户都受该策略限制)
ALTER ACCOUNT SET NETWORK_POLICY = allow_ado_only;

-- 或者仅应用到Azure DevOps使用的Snowflake用户
ALTER USER ADO_SERVICE_USER SET NETWORK_POLICY = allow_ado_only;
  1. 验证:用Azure DevOps流水线运行测试查询确认可访问,用其他未授权IP尝试访问确认被拦截。

内容的提问来源于stack exchange,提问作者Srikanth Mannepalli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 16:50:16