AWS-CLI - SQS列表队列

时间:2017-02-06 17:38:37

标签: amazon-web-services amazon-sqs

我有一个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从此队列发送和接收消息。如果我修改了对用户的权限并添加了Action为sqs:ListQueues且资源为"*"的语句,那么使用AWS CLI的list-queues命令会在响应中返回TestQueue的url。

我认为list-queue应该仅返回IAM用户被授予该行动的队列是错误的吗?

欢迎任何指导/建议!谢谢!

1 个答案:

答案 0 :(得分:3)

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

这与其他"列出"类似的行为类型方法,如ec2:DescribeInstances等。