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

AWS Glue流作业出现AmazonS3Exception访问拒绝错误排查

排查AWS Glue流作业S3 AccessDenied(403)及无限运行问题

涉及的S3存储桶

  • checkpointLocation配置对应的检查点存储桶:错误日志直接指向该路径的权限问题
  • Glue作业配置的临时存储桶:作业运行中生成临时文件,权限不足可能间接影响检查点流程
  • Security Lake数据湖存储桶:虽读写正常,但需确认是否存在后续清理或元数据操作的权限遗漏

可能的错误原因

1. 检查点操作的权限集不完整

流作业的检查点机制需要持续执行PutObject(写入检查点文件)、GetObject(读取历史检查点)、DeleteObject(清理过期检查点)、ListBucket(遍历检查点目录)操作。仅添加DeleteObject权限会导致作业无法完成完整的检查点生命周期:要么因缺少读写权限触发403,要么因检查点状态异常进入无限重试循环。

2. 检查点桶的桶策略限制

即使作业角色已配置权限,检查点桶的桶策略可能存在显式拒绝规则,或未明确允许角色的检查点相关操作。比如桶策略仅允许特定IP或服务访问,未包含Glue作业角色的ARN。

3. 检查点桶的版本控制干扰

若检查点桶开启了版本控制,执行DeleteObject仅会添加删除标记,而非真正删除文件。Glue流作业无法识别这种状态,会持续尝试清理检查点,导致作业无限运行。

4. 临时存储桶的权限范围不足

临时存储桶需要Glue具备ListBucket、DeleteObject权限来清理运行过程中生成的临时文件。若权限缺失,临时文件堆积可能间接影响检查点的写入或读取流程。

验证与修复步骤

  • 补全检查点桶的角色权限:确保作业角色策略包含完整的检查点操作权限,示例策略如下:
    {
        "Effect": "Allow",
        "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:DeleteObject",
            "s3:ListBucket",
            "s3:GetBucketLocation"
        ],
        "Resource": [
            "arn:aws:s3:::your-checkpoint-bucket-name",
            "arn:aws:s3:::your-checkpoint-bucket-name/*"
        ]
    }
    
  • 检查检查点桶的桶策略:确认桶策略中存在针对作业角色ARN的显式允许规则,无拒绝该角色相关操作的条目。
  • 处理版本控制问题:若检查点桶开启版本控制,可临时关闭版本控制,或给角色添加s3:DeleteObjectVersion权限后重新测试。
  • 验证临时存储桶权限:确保临时存储桶的权限覆盖PutObject、GetObject、DeleteObject、ListBucket,且资源范围包含桶及桶内所有对象。
  • 定位具体错误操作:查看CloudWatch日志中403错误的详细信息,确认是PutObject/GetObject/DeleteObject中的哪一步失败,精准修复权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 11:30:19