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

AWS ECS任务执行时SQS资源访问被拒问题排查求助

问题排查与解决方案

1. 修复SQS访问策略的语法错误

你的SQS访问策略存在JSON语法问题,会直接导致策略无法生效:

  • arn:aws:iam::XXXXXXXXXXXX:root 末尾缺少逗号
  • 最后一个角色ARN arn:aws:iam::XXXXXXXXXXXX:role/XXXXXXXXXXXX/xxxxxx-task-role 末尾多了逗号

修正后的策略(建议指定具体队列ARN而非通配符,遵循最小权限原则):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::XXXXXXXXXXXX:root",
          "arn:aws:iam::XXXXXXXXXXXX:role/XXXXXXXXXXXX/xxxxxx-exec-role",
          "arn:aws:iam::XXXXXXXXXXXX:role/XXXXXXXXXXXX/xxxxxx-deploy-role",
          "arn:aws:iam::XXXXXXXXXXXX:role/XXXXXXXXXXXX/xxxxxx-task-role"
        ]
      },
      "Action": "sqs:*",
      "Resource": "arn:aws:sqs:us-east-1:XXXXXXXXXXXX:XXXXXXXXXXQueue"
    }
  ]
}

2. 聚焦ECS任务的核心权限角色

ECS任务运行时,仅通过**任务角色(task-role)**获取业务相关权限:

  • 执行角色(exec-role)仅用于任务执行层面的操作(如拉取容器镜像),部署角色(deploy-role)用于任务部署流程,这两个角色不需要配置SQS权限,可移除对应权限配置以减少冗余。
  • 仅保留xxxxxx-task-role的SQS权限即可。

3. 验证任务定义的角色配置

检查ECS任务定义,确认**任务角色(Task Role)**字段已正确设置为xxxxxx-task-role,若任务定义未关联正确的task role,任务将无法获取对应的SQS访问权限。

4. 确认权限生效时间

IAM策略与资源策略的变更通常需要1-5分钟生效,修改完成后等待几分钟再测试任务。

5. 额外排查项

  • 核对队列ARN是否与IAM角色资源配置中的arn:aws:sqs:us-east-1:ACCOUNT_NUMBER_HERE:xxx*匹配,确保队列名称符合通配符规则。
  • 若通过VPC端点访问SQS,需确认VPC端点的策略允许该任务角色访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:24:32