私有VPC中AWS Glue Job无法写入私有S3桶求助
AWS Glue ETL无法写入私有S3桶的排查步骤
1. 校验S3 Gateway终端节点的有效性
- 确认关联的子网路由表中,已添加目标为S3私有桶所在区域前缀列表的路由条目,指向S3 Gateway终端节点。仅关联路由表但未配置路由,流量仍会走公网,无法访问私有桶。
- 确认S3桶与VPC处于同一AWS区域,Gateway终端节点仅支持同区域访问,跨区域需使用Interface类型终端节点。
2. 检查Glue任务的网络配置细节
- 确认Glue任务已启用VPC连接,并正确选择了
database-subnet与sg-1。未配置VPC连接的Glue任务默认走公网,无法访问私有S3桶。 - 若使用代理,需验证代理能正确转发S3流量,且代理所在安全组允许与S3终端节点/服务的443端口通信。同时检查代理规则是否拦截了私有S3桶的访问请求。
3. 解决aws-glue-assets访问超时问题
aws-glue-assets是Glue依赖的公共S3资源,用于存储脚本、临时文件。无代理时超时说明Glue无法通过VPC终端节点访问该资源:需为S3 Gateway终端节点添加包含该资源所在区域的S3前缀列表路由,跨场景则配置Interface终端节点。- 修正安全组
sg-1的出站规则:除允许自身TCP流量外,需明确允许443端口访问S3服务的前缀列表(而非仅自身安全组)。
4. 复核IAM角色权限
- 确认
RDSExportRole包含以下权限:s3:PutObject、s3:ListBucket,且资源范围明确指向目标私有桶(如arn:aws:s3:::your-private-bucket/*和arn:aws:s3:::your-private-bucket)- 完整的
glue:*权限,确保Glue能访问自身服务资源
- 检查是否存在权限边界或SCP服务控制策略,限制了该角色的S3写入权限。
5. 检查S3桶的私有访问配置
- 确认桶策略允许
RDSExportRole执行写入操作,IAM权限允许但桶策略拒绝时,写入会失败。 - 若桶启用了KMS服务器端加密,需确认
RDSExportRole拥有kms:GenerateDataKey权限。
6. 排查Glue任务脚本与日志
- 检查可视化编辑器生成的脚本:确认S3写入路径格式正确(如
s3://your-private-bucket/output/,注意末尾斜杠),是否存在数据过滤逻辑导致无输出。 - 查看CloudWatch日志,定位除超时外的具体错误(如权限拒绝、路径不存在、数据格式异常等)。
内容的提问来源于stack exchange,提问作者Gigitsu
相关产品推荐
相关产品推荐

