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

Snowflake对接外部OAuth时出现EXTERNAL_OAUTH_JWS_CANT_RETRIEVE_PUBLIC_KEY错误求助

该错误为Snowflake无法从配置的公钥地址获取到有效JWKS集合,可从以下维度排查解决:

  • 网络连通性校验
    个人设备可访问公钥文件不代表Snowflake服务节点可正常访问,需完成两项配置:
    1. 将Snowflake账户所属区域的公网出口IP段,添加到对应S3 Bucket的访问允许策略中,所有限制IP访问的规则需优先放行Snowflake的IP段
    2. 确认Snowflake账户的出站网络策略未限制对该S3域名的访问,如有防火墙或访问控制列表,需放行s3.us-west-2.amazonaws.com域名的443端口请求
  • 安全集成配置校验
    1. 创建安全集成时需完全替换external_oauth_jws_keys_url中的$(aws_account)、$(public_key_filename)等占位符为实际值,确保拼接后的URL可直接通过匿名HTTP请求返回正确内容
    2. 确认配置的URL无301/302等重定向配置,Snowflake不会跟随重定向跳转获取公钥,需配置为可直接返回内容的最终URL,不要使用S3静态网站托管的域名作为公钥地址,需使用S3原生对象访问域名
  • JWKS格式校验
    1. Snowflake要求external_oauth_jws_keys_url返回的必须是完整JWKS集合格式,即外层必须包含keys数组,不可直接使用单个JWK对象作为返回内容
    2. 需保证JWT头部的kid字段与JWKS中对应公钥的kid值完全一致;如JWT未携带kid字段,需同步移除JWKS中的kid配置,或在生成JWT时补充对应kid
    3. 建议在JWK中补充alg字段,值为使用的签名算法(本场景为RS256),避免算法匹配异常
  • S3存储配置校验
    1. 确认公钥文件的匿名访问权限未失效,无Bucket Policy、IAM策略限制匿名用户读取该文件
    2. 确认文件的Content-Type已正确设置为application/json,不要使用text/plain或其他类型
    3. 确认S3未开启跨域资源共享(CORS)限制,或CORS规则已允许GET请求

注意:公钥获取问题解决后,还需修正受众配置:当前JWT的aud值末尾带斜杠,安全集成配置的external_oauth_audience_list值不带斜杠,两者需完全一致,否则后续会报受众不匹配的错误。

内容的提问来源于stack exchange,提问作者Frederic PIROT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:45:00