Snowflake External Network Access OAuth2令牌请求超时问题求助
Snowflake External Network Access 连接超时排查建议
可能的原因及排查步骤:
网络规则配置遗漏
检查网络规则的ALLOWED_HOSTS是否明确包含带端口的目标地址domain.com:813。Snowflake默认仅允许80/443端口,非标准端口必须在规则中显式指定。同时确认网络规则方向为OUTBOUND且状态为ENABLED。
另外,如果OAuth2令牌请求需要访问第三方认证端点(比如Auth0/Okta的令牌URL),该端点的域名和端口也必须加入ALLOWED_HOSTS。目标API的防火墙限制
本地能访问不代表Snowflake执行环境的IP在目标API的白名单内。执行以下SQL获取Snowflake仓库的出口IP:SELECT SYSTEM$GET_NETWORK_IP_ADDRESS();将该IP添加到目标API的防火墙/安全组白名单中。同时用
SYSTEM$PING测试连通性:SELECT SYSTEM$PING('domain.com', 813);OAuth2认证配置问题
错误提示指向令牌请求超时,需确认:- API认证集成中配置的令牌URL是否正确,且该URL的主机已加入网络规则
- 密钥对象是否正确存储了OAuth2的Client ID和Client Secret,且认证集成已关联该密钥
UDF权限与关联配置
- 确认创建UDF时已指定外部访问集成:
CREATE OR REPLACE FUNCTION python_test(...) RETURNS ... LANGUAGE PYTHON RUNTIME_VERSION = '3.8' EXTERNAL_ACCESS_INTEGRATIONS = (你的外部访问集成名称) HANDLER = '...'; - 检查仓库使用的角色是否拥有外部访问集成的
USAGE权限:GRANT USAGE ON INTEGRATION 你的集成名称 TO ROLE 仓库角色;
- 确认创建UDF时已指定外部访问集成:
其他细节
- 若目标API使用HTTPS自签名证书,Snowflake Python环境可能无法验证,需在UDF中临时禁用证书验证(不推荐生产环境),或把证书导入Snowflake信任存储
- 核对UDF中的HTTP请求代码,确认URL包含正确的协议(http/https)、端口和路径,无拼写错误
内容的提问来源于stack exchange,提问作者frammnm
相关产品推荐
相关产品推荐

