AccessDenied при вызове операции ListQueues - PullRequest
4 голосов
/ 17 июня 2019

Это довольно странно, когда команда списка вызовов с использованием 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

Нужно ли что-то менять в политике или поведение очереди списка отличается?

Заранее спасибо.

1 Ответ

2 голосов
/ 17 июня 2019

Согласно действиям, ресурсам и ключам условий для Amazon SQS - Управление идентификацией и доступом AWS , команды SQS не принимают условия.Поэтому команда ListQueues() либо работает полностью (показывает все совпадающие очереди), либо не возвращает ничего (из-за отказа в доступе).Единственный способ ограничить количество возвращаемых очередей - это использовать queue-name-prefix.

. Атрибут Resource в политике будет определять, в какой очереди могут выполняться различные команды, поэтому вы можете получить атрибуты.для очереди, соответствующей local-*.Если вы попытаетесь получить сведения об очереди с именем public-xxx, вам будет отказано.(Но ListQueues работает на службе , а не на определенной очереди.)

...