为啥我在 AWS API 上收到“无权执行:ecs:ListTasks on resource:*”异常

Posted

技术标签:

【中文标题】为啥我在 AWS API 上收到“无权执行:ecs:ListTasks on resource:*”异常【英文标题】:Why I am getting "not authorized to perform: ecs:ListTasks on resource: *" exception on AWS API为什么我在 AWS API 上收到“无权执行:ecs:ListTasks on resource:*”异常 【发布时间】:2020-04-23 13:50:42 【问题描述】:

我正在尝试从 AWS API 获取在我的 ECS 环境中运行的任务列表,但我一直收到相同的错误:

用户:arn:aws:iam::[my_id]:user/[username] 无权执行:ecs:ListTasks on resource: *


    "Version": "2012-10-17",
    "Statement": [
        
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ecs:RunTask",
                "ecs:ListTasks",
                "ecs:StartTask",
                "ecs:StopTask"
            ],
            "Resource": [
                "arn:aws:ecs:us-east-1:[my_id]:task/*",
                "arn:aws:ecs:us-east-1:[my_id]:task-definition/*",
                "arn:aws:ecs:us-east-1:[my_id]:cluster/*",
                "arn:aws:ecs:us-east-1:[my_id]:task-set/*/*/*",
                "arn:aws:ecs:us-east-1:[my_id]:container-instance/*",
                "arn:aws:ecs:us-east-1:[my_id]:service/*"
            ]
        
    ]

如您所见,我应该使用所有可用资源访问该操作。 我错过了什么?

谢谢。

【问题讨论】:

你传递给 ListTasks 的参数是什么? 【参考方案1】:

listTasks 操作仅支持 container instances 作为资源,而不支持 cluster arncluster arn 只能作为条件添加。

以下政策有效。


    "Version": "2012-10-17",
    "Statement": [
        
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "ecs:ListTasks",
            "Resource": "*",
            "Condition": 
                "ArnEquals": 
                    "ecs:cluster": "arn:aws:ecs:ap-southeast-2:[account id]:cluster/MyEcsCluster"
                
            
        
    ]

参考: Actions defined by Amazon Elastic Container Service (检查此参考中的ListTasks 操作)

希望这会有所帮助。

【讨论】:

非常感谢。我需要阅读有关 IAM 和授权控制的更多信息。

以上是关于为啥我在 AWS API 上收到“无权执行:ecs:ListTasks on resource:*”异常的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在尝试使用 fetch 连接 Api 时收到“错误请求”错误 400?

收到错误:AWS API 请求后缺少身份验证令牌

为啥我在使用 Google Maps API 时没有收到“同源政策”警告?

为啥我在 s3 上的访问被拒绝(使用适用于 Node.js 的 aws-sdk)?

为啥我在发布 API 应用程序后收到“名为‘swagger_docs’的路由已在路由集合中”?

为啥我在使用 Google Clas-s-room API 时会收到 404 错误?