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

如何从SageMaker笔记本实例访问IP白名单保护的API?

操作步骤

1. 获取SageMaker Notebook的访问源地址

首先在SageMaker Notebook的代码单元中执行以下命令,拿到实例访问服务的实际源IP:

!curl -s ifconfig.me
  • 如果Notebook开启了直接公网访问模式,返回的结果就是Notebook实例自身的出口公网IP
  • 如果Notebook配置为VPC模式无直接公网访问权限,返回的结果是VPC绑定的NAT网关弹性IP,也就是实际访问EKS服务的源IP

2. 定位EKS侧业务流量对应的安全组

通过eksctl创建的集群默认会生成多组安全组,不要将规则误加到EKS控制面安全组(该安全组仅用于集群管控API通信,不承载业务流量),需要定位两类承载Flask业务入口的安全组:

  • EKS工作节点组绑定的安全组,可通过以下命令查询:
    eksctl get nodegroup --cluster <你的EKS集群名称> --region <集群所在AWS区域>
    
    输出结果中SecurityGroups字段对应的ID就是节点安全组
  • 如果Flask服务通过LoadBalancer类型Service暴露、或者配置了Nginx Ingress,还需要找到对应弹性负载均衡(ELB)附加的安全组,可在EC2控制台的负载均衡页面关联信息中找到

3. 添加白名单规则

在VPC控制台的安全组页面,找到上一步定位到的所有业务安全组,添加入站规则:

  • 端口:填写Flask服务实际暴露的端口(默认80/443或你自定义的服务端口)
  • 源地址:填写第一步获取到的Notebook出口IP,格式为<IP地址>/32
  • 描述可自定义标记规则用途,保存规则即可

更稳定的内网访问配置方案(避免公网IP变动导致规则失效):
如果SageMaker Notebook和EKS集群部署在同一VPC下,可以直接通过安全组ID配置白名单,无需依赖公网IP:

  • 先在SageMaker控制台找到Notebook实例绑定的弹性网卡关联的安全组ID
  • 在EKS侧业务安全组添加入站规则时,源直接选择上述SageMaker安全组,端口填Flask服务端口即可,走VPC内网通信,不受公网IP变动影响

4. 排错注意项

  • 如果通过Helm部署Flask时,给LoadBalancer类型Service配置了loadBalancerSourceRanges字段做IP白名单,需要同步将第一步拿到的IP段添加到该字段配置中,执行helm upgrade更新应用Release,否则ELB层会直接拦截流量,即使安全组规则配置正确也无法连通
  • 如果Flask服务前端额外挂载了WAF、第三方网关组件,需要同步在对应组件的访问控制规则中添加白名单
  • 规则配置完成后,在Notebook中直接curl Flask API地址,验证连通性正常即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:42:27