EMR Serverless关联VPC后无法访问S3桶的问题排查求助
核心问题分析
EMR Serverless关联VPC后出现S3访问超时,本质是VPC内的网络路径未正确打通S3,即便配置了网关端点,仍可能存在以下遗漏配置:
具体排查与修复项
S3网关端点与路由表的绑定
确认S3网关端点已关联到EMR Serverless所用3个私有子网对应的路由表。需检查路由表中是否存在目标为S3服务前缀(如arn:aws:s3:::my-source-bucket-use1)或0.0.0.0/0的条目,且指向S3网关端点。只有绑定路由表,子网内的流量才能通过网关访问S3。私有子网的NAT网关配置(跨区域S3场景)
S3网关端点仅支持同区域访问,若你的S3桶是跨区域的,私有子网内的EMR Serverless任务需通过NAT网关访问公网S3。此时要给私有子网配置NAT网关,并在路由表中添加公网路由(目标0.0.0.0/0指向NAT网关)。S3网关端点的权限策略限制
检查S3网关端点的端点策略,是否允许EMR Serverless的执行角色访问目标桶。即便IAM角色有全S3权限,若端点策略拒绝该角色,仍无法访问。需在端点策略中明确允许s3:GetObject等操作针对目标桶。VPC的DNS解析配置
确认EMR Serverless关联的VPC已开启DNS解析。若VPC未启用DNS,EMR Serverless无法解析S3域名(my-source-bucket-use1.s3.amazonaws.com),直接导致连接超时。安全组的出站规则
检查EMR Serverless应用关联的安全组,是否允许HTTPS(443端口)出站。即便路由配置正确,安全组限制HTTPS出站也会导致S3连接失败,需确保安全组出站规则包含0.0.0.0/0的443端口允许。
验证步骤
- 在私有子网内启动EC2实例,执行以下命令测试S3访问:
若EC2也无法访问,说明是VPC网络配置问题;若EC2可访问,再排查EMR Serverless的角色或配置细节。aws s3 cp s3://my-source-bucket-use1/path/to/jar ./test.jar - 检查EMR Serverless执行角色的信任策略,确认允许
emr-serverless.amazonaws.com扮演该角色,保证权限传递正常。
内容的提问来源于stack exchange,提问作者ferrari16

