调用 ListQueues 操作时 AccessDenied

AccessDenied when calling the ListQueues operation

这很奇怪,除非我将 Resource 的值设置为 arn:aws:sqs:*:*:*

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sqs:*",
            "Resource": "arn:aws:sqs:*:45*****65:local-*"
        }
    ]
}

我希望下面的命令应该 return 所有以 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

我是否需要更改策略或列表队列的行为是否不同?

提前致谢。

根据Actions, Resources, and Condition Keys for Amazon SQS - AWS Identity and Access Management,SQS 命令不接受条件。因此,ListQueues() 命令要么完全工作(显示 所有 匹配队列),要么不 return 任何东西(由于访问被拒绝)。限制 returned 队列的唯一方法是使用 queue-name-prefix.

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