AWS Glue运行作业遇Permission denied错误请求协助
AWS Glue作业权限拒绝错误(/run-xxx Permission denied)解决方案
排查与解决步骤:
1. 验证IAM角色的信任关系配置
即使角色附加了管理员权限,若Glue服务无法扮演该角色,依然会触发权限问题:
- 进入IAM控制台,找到你的Glue作业关联角色
- 切换到信任关系标签页,确认策略包含Glue服务的 AssumeRole 权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } - 若缺失,点击编辑信任策略添加上述内容并保存。
2. 检查Glue作业的临时存储配置
Glue依赖S3存储临时中间文件,若临时路径配置错误或权限不足,会 fallback 到本地目录触发权限拒绝:
- 打开Glue作业配置页面,找到**安全配置、脚本库和作业参数(可选)**区域
- 确认临时路径为有权访问的S3路径(格式:
s3://your-temp-bucket/glue-temp/) - 若未设置,手动指定一个存在且角色有权读写的S3路径;若已设置,检查该S3桶的桶策略是否未拒绝角色访问。
3. 排查作业代码是否误写本地文件系统
如果代码中直接写入本地路径而非S3,会触发本地容器/EC2实例的权限限制:
- 检查
writeDynamicFrame或df.write逻辑,确保输出路径以s3://开头 - 错误示例:
# 错误:写入本地路径 glueContext.write_dynamic_frame.from_options( frame=dynamic_frame, connection_type="file", connection_options={"path": "/run-test-output"} ) - 修正示例:
# 正确:写入S3 glueContext.write_dynamic_frame.from_options( frame=dynamic_frame, connection_type="s3", connection_options={"path": "s3://your-bucket/output/"} )
4. 检查VPC配置(若作业关联VPC)
若Glue作业配置了VPC访问,需确认网络层面的权限:
- 安全组允许出站访问S3(或配置S3网关端点)
- 子网配置NAT网关(访问公网S3桶时),或S3网关端点的策略允许角色访问。
5. 验证角色的权限边界
若角色设置了权限边界,会覆盖附加的管理员权限:
- 进入IAM角色页面,检查权限边界区域是否有配置
- 确认边界策略允许Glue相关操作与S3访问,或临时移除边界测试。
内容的提问来源于stack exchange,提问作者Ladislao Csulak
相关产品推荐
相关产品推荐

