Amazon web services 调用ListQueues操作时拒绝访问

Amazon web services 调用ListQueues操作时拒绝访问,amazon-web-services,amazon-sqs,aws-cli,Amazon Web Services,Amazon Sqs,Aws Cli,当使用AWS-CLI且附加策略的调用列表队列命令不起作用时,这非常奇怪,除非我将资源的值设置为arn:AWS:sqs:::: { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sqs:*", "Resource": "arn:

当使用AWS-CLI且附加策略的调用列表队列命令不起作用时,这非常奇怪,除非我将资源的值设置为
arn:AWS:sqs::::

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sqs:*",
            "Resource": "arn:aws:sqs:*:45*****65:local-*"
        }
    ]
}
我希望下面的命令应该返回所有以local-*开头的队列,但我得到了AccessDenied

aws sqs list-queues --queue-name-prefix local-*
但是对于同一个队列,我可以得到它的属性

aws sqs get-queue-attributes --queue-url https://us-west-2.queue.amazonaws.com/0****5/local-myqueue --attribute-names All
我是否需要更改策略中的某些内容,或者列表队列的行为是否不同

提前感谢。

根据,SQS命令不接受条件。因此,
ListQueues()
命令要么完全工作(显示所有匹配的队列),要么不返回任何内容(由于访问被拒绝)。限制返回哪些队列的唯一方法是使用
队列名称前缀


策略中的
Resource
属性将确定可以在哪个队列上运行各种命令,这就是为什么您可以获取与
local-*
匹配的队列的属性。如果您试图获取名为
public xxx
的队列的详细信息,它将被拒绝。(但是,
ListQueues
在服务上运行,而不是在特定的队列上。)

谢谢,@John的回答。我现在很清楚,但我希望这应该像限制队列名称前缀一样起作用,但这也不起作用。有什么原因吗?也许它也是ListQueues的子标志,这就是为什么?列表队列没有可用的条件字段,这通常是对前缀应用限制的地方。请随意尝试——这将是一个带有StringLike的条件,这将迫使用户提供前缀,否则将面临失败。