AWS-CLI - SQS 列表队列

AWS-CLI - SQS List Queues

我有一个针对 IAM 用户的策略,该策略是为发送和接收来自特定 SQS 队列的消息而创建的。使用 AWS CLI 并发出 list-queues 命令时,出现错误:

An error occurred (AccessDenied) when calling the ListQueues operation: Access to the resource https://queue.amazonaws.com/ is denied.

我有一个关于 IAM 用户的自定义策略来指定权限,如下所示:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1485992560000",
            "Effect": "Allow",
            "Action": [
                "sqs:ReceiveMessage",
                "sqs:SendMessage",
                "sqs:ListQueues"
            ],
            "Resource": [
                "arn:aws:sqs:us-east-1:XXXX:TestQueue"
            ]
        }
    ]
}

有了这个策略,我已经验证我可以使用 AWS CLI 发送和接收来自这个队列的消息。如果我修改用户的权限并添加一个语句,其中操作是 sqs:ListQueues 并且资源是 "*" list-queues 命令使用 AWS CLI returns url 用于响应中的 TestQueue。

我认为 list-queue 应该 return 只有 IAM 用户被授予该操作的队列吗?

任何 guidance/advice 欢迎!谢谢!

诸如sqs:ListQueues之类的命令不能限制其资源。它们必须具有 * 的资源规范。这也意味着您不能限制 return 值:它们将始终 return 所有队列,即使用户无法对它们执行操作。

这与其他 "listing" 类型的方法类似,例如 ec2:DescribeInstances