Amazon web services 调用ListQueues操作时拒绝访问
当使用AWS-CLI且附加策略的调用列表队列命令不起作用时,这非常奇怪,除非我将资源的值设置为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:
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的条件,这将迫使用户提供前缀,否则将面临失败。