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

隔离网络SageMaker处理作业中,Athena VPC端点查询凭证错误解决指引

隔离网络下SageMaker调用Athena的凭证与VPC端点配置方案

一、先搞定凭证错误

隔离网络里的SageMaker作业不需要手动配置access key,直接用IAM角色即可,你需要检查这两点:

  • 给SageMaker处理作业的执行角色添加权限:至少要有Athena查询权限(比如AmazonAthenaFullAccess,或更细粒度的权限),以及Athena结果存储S3桶的读写权限。
  • 代码里的session无需手动指定凭证:要么直接删掉boto3_session参数,wr会自动读取环境中的角色凭证;如果要自定义session,直接用默认链创建即可:
import boto3
session = boto3.Session()  # 自动拉取角色凭证,无需手动填写密钥

二、配置Athena VPC端点访问

隔离网络无法走公网访问Athena,需通过VPC端点实现,分两步操作:

  1. 创建Athena接口类型VPC端点:在AWS控制台的VPC服务中,选择「创建端点」,服务类型选「接口」,搜索com.amazonaws.<你的区域>.athena,关联SageMaker作业所在的VPC、子网,安全组要允许SageMaker子网发起的HTTPS(443)流量。
  2. 代码中指定VPC端点URL:AWS SDK for Pandas底层依赖boto3,只需给Athena客户端配置VPC端点URL即可(端点URL可在创建VPC端点后获取,格式类似https://athena.<区域>.vpce.amazonaws.com/<端点ID>),修改后的代码示例:
import boto3
import awswrangler as wr

# 创建绑定VPC端点的Athena客户端
athena_client = boto3.client(
    "athena",
    region_name="<你的区域>",
    endpoint_url="https://<你的Athena VPC端点完整URL>"
)

# 将客户端绑定到wr会话
wr_session = wr.Session(clients={"athena": athena_client})

# 使用该会话执行查询
recent_data_df = wr_session.athena.read_sql_query(
    sql=recent_data_sql, 
    database="default", 
    ctas_approach=False, 
    workgroup="wg"
)

三、额外注意事项

  • 必须创建S3网关类型VPC端点:Athena查询结果需要存储到S3,没有这个端点,SageMaker无法获取查询结果。
  • 检查Workgroupwg配置:确保该工作组允许VPC访问,且结果存储桶路径对SageMaker可见。
  • 打通安全组规则:SageMaker的安全组需允许出站443流量到Athena VPC端点的安全组;Athena端点的安全组需允许入站443流量来自SageMaker的安全组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:25:18