当调用列表队列命令使用带有附加策略的 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
我需要更改策略中的某些内容还是列表队列的行为不同?
提前致谢。
最佳答案
根据 Actions, Resources, and Condition Keys for Amazon SQS - AWS Identity and Access Management ,SQS 命令不接受条件。因此,ListQueues()
命令要么完全工作(显示所有匹配的队列),要么不返回任何内容(由于访问被拒绝)。限制返回哪些队列的唯一方法是使用 queue-name-prefix
.Resource
策略中的属性将决定各种命令可以运行在哪个队列上,这就是为什么您能够获取匹配队列的属性 local-*
.如果您尝试获取名为 public-xxx
的队列的详细信息,会被拒绝。 (但 ListQueues
操作的是服务,而不是特定的队列。)
关于amazon-web-services - 调用 ListQueues 操作时 AccessDenied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56630756/